CN107885599A - 用一组并行运行的计算资源模拟3d场景的方法、程序和系统 - Google Patents
用一组并行运行的计算资源模拟3d场景的方法、程序和系统 Download PDFInfo
- Publication number
- CN107885599A CN107885599A CN201710917902.5A CN201710917902A CN107885599A CN 107885599 A CN107885599 A CN 107885599A CN 201710917902 A CN201710917902 A CN 201710917902A CN 107885599 A CN107885599 A CN 107885599A
- Authority
- CN
- China
- Prior art keywords
- subregion
- computing resource
- subregions
- load
- scenes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/16—Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/52—Parallel processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
- Architecture (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
本发明显著地涉及用于对3D场景进行模拟的计算机实现的方法。模拟是利用一组并行运行的计算资源来执行的。该方法包括:将3D场景划分成多个分区。每个分区被确定大小为满足该组中的一个计算资源的实时计算约束。该方法包括:将多个分区中的每个分区分配给计算资源;计算每个计算资源的负载的估值,并且确定一个或多个计算资源是否过载或欠载;针对每个分区,计算分区对于该分区被分配给的计算资源的负载的贡献;将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源,重新分配因利用组合优化算法计算出的分区的贡献而产生。
Description
技术领域
本发明涉及计算机程序和系统的领域,以及更具体地,涉及利用一组并行运行的计算资源来模拟3D场景的方法、系统和程序。
背景技术
3D模拟在过去的三十年中在各种且大量受众的用户中得到了巨大成功:从对处于设计阶段的系统在现实中表现如何进行验证的工程师,到探索或展示理论概念的科学家,再到玩视频游戏或享受3D动画片的一般公众。3D模拟在过去的三十年中得到许多演变,并且仍然具有增长的势头。这是为了回应受众对于更复杂且更真实的行为(多刚体动力学、人体模拟、织物模拟、粒子模拟...)的需求,以用于更广泛的群体和对象类型,以及更广泛的规模。
3D模拟必须满足实时需求,更具体地,这在视频游戏产业中是通过开发用于支持大量用户在大规模虚拟世界中进行交互的特定技术而发起的。必须随时向连接的用户提供实时响应,而不管用户的数量如何,并且不管由解决和显现应用而引起的计算成本。
大型多用户在线应用(MMO)允许大量用户同时使用诸如真实世界现象模拟器、沉浸式应用等的应用。类似地,大型多用户在线游戏(MMOG)允许大量游戏玩家同时玩视频游戏。MMO和MMOG显著地依赖计算机网络(例如,互联网),以允许用户或玩家连接到应用或视频游戏。贯穿本说明书,词语“应用”和“视频游戏”将被理解为是同义的,并且术语MMO和MMOG将无差别地使用。
MMO涉及复杂且庞大的虚拟环境,期望该虚拟环境以尽可能多的细节、尽可能接近实时地显现,以便于向用户或游戏玩家提供更真实的体验。MMO专门设计用于3D场景的表示和操纵,并且典型地在终端用户的计算机上用于需要交互的、连续的、实时的3D场景生成的应用。当用户与3D场景进行交互时,计算机足够快速地重绘3D表示,以向用户传达用户正在其中参与的持续的、不间断的现实的感觉。场景由许多分离的对象组成,这些对象能够由用户在与3D场景交互时进行操纵。因此,MMO涉及大数据量,一般需要高数据速率和高数据复杂度,以便于对在空间复杂且高度详细的虚拟环境中实时参与的大量用户进行管理。
MMO典型地用于在计算机模型内模拟真实世界现象;例如,多刚体动力学、人体模拟、织物模拟、粒子模拟。模拟需要描述真实世界现象的准确的数据和算法,例如,在制造过程中使用的材料以及用于创建过程的模拟和使用中的产品的模拟的产品的物理性质(强度、弹性等)。3D CAD/CAM(计算机辅助设计、计算机辅助制造)工具允许创建产品或部件零件的3D表示。MMO也被称为3D体验,即,其中工程师研究对象的行为的虚拟环境;典型地,所模拟的环境是工业环境。
MMO正如MMOG,必须是可扩展的,以便动态地适应永久变化的工作负载,从而维持实时性能。可扩展性显著地包括能够同时使用应用的用户的数量,用于对模拟进行计算的计算资源的数量,应用所允许的3D场景中的对象之间的同时交互的数量等。
对于MMOG,用户的数量以及所有包含的动态对象的位置属性和图形属性可能显著地变化。尽管如此,在游戏开始之前,针对所有类型的动态对象设置一次周围布景,并且所支持的行为类别是预定义的。换言之,MMOG中的3D场景包括强烈地限制计算资源的需求的多个预确定的特性;从而改进可扩展性。因此,预测计算资源的需求是可能的。
相反,对于先进的MMO,3D场景的布景和群体类型能够演变并且丰富,特别是在应用正在运行时。实际上,MMO旨在对真实世界现象进行模拟,其中,对象的行为是动态的并且排除预定义的行为类。因此,MMO中的3D布景不能像MMOG那样使用预定义的特性。
因此,即使3D体验具有与MMOG相同种类的实时且大量的约束,其对于更加精细、真实、且准确的物理行为也具有特定且严格的需求,因此要求计算能力。
由于单个求解器无法实时处理所有的求解计算,因此需要并行化技术。简言之,3D体验被划分成所谓的部分或分区,其中的每个部分或分区对3D场景的特定空间区域进行处置。由于这些部分的计算成本随着时间变化——因为它们的对象群体演变,以及因为其中进行的交互的量改变——有必要在求解器之间动态地对所有这些部分进行分发,以便实现CPU资源的最佳使用以用于准许实时响应。这种需求通常被称为动态负载平衡。
考虑可应用于实时性的技术(大部分用于MMOG中),这些技术不适合于3D体验的目的。MMOG的负载平衡以用户不觉得奇怪的方式自由地更改场景的现象:能够将用户转移到另一部分,能够从高负载部分移除对象,能够在高负载部分中对交互进行中和。所以,侵入游戏的物理效果以调整到硬件限制,因此失去更多的真实性。对于3D体验,物理效果明确是要满足的约束,其具有固定程度的真实性,并且因此不能被视为调整参数。
负载平衡问题还在诸如有限元方法等领域中得以解决,有限元方法提出了宽范围的高效解决方案。但是,由于实时性不在考虑范围内,所以这些调整策略中的全部都不基于明确与计算时间性能有关的调节参数,而是基于取决于所使用的求解算法的自组织调节,基于模型的几何特性(例如,网格),以及基于特定于所研究的用例的瞬态数值性质(例如,非线性)。
在该上下文中,仍然需要改进的方法、计算机程序和系统,以便在最佳数量的求解器之间实现公平的负载平衡,以其最佳容量来运行,避免易于破坏3D场景的模拟的实时响应的开销。
发明内容
因此,提供了一种用于对3D场景进行模拟的计算机实现的方法,模拟是利用一组并行运行的计算资源来执行的。该方法包括:
-将3D场景划分成多个分区,每个分区被确定大小为满足该组中的一个计算资源的实时计算约束;
-将多个分区中的每个分区分配给计算资源;
-计算每个计算资源的负载的估值,并且确定一个或多个计算资源是否过载或欠载;
-针对每个分区,计算该分区对于该分区被分配给的计算资源的负载的贡献;
-将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源,重新分配因利用组合优化算法计算出的分区的贡献而产生。
该方法可以包括以下中的一个或多个:
-一个或多个分区重新分配给另一计算资源是根据以下标准中的一个或多个来执行的:计算资源的数量最少;重新分配给另一计算资源的分区的数量最少;一个或多个分区被重新分配给另一计算资源,该另一计算资源已经针对作为被重新分配的一个或多个分区的邻居的分区执行计算;
-一个或多个分区重新分配给另一计算资源被执行,以使得每个计算资源的结果负载(λi')验证
λmin≤λi'≤λmax,其中,λmin是计算资源的最小负载,λmax是计算资源的最大负载;
-每个计算资源的负载(λi)的估值是利用关系式λi(%)=100.(Tmax-Ti)/Tmax来计算的,
其中,λi(%)是所估计的负载λi的百分比,Tmax是分派给计算资源用于计算模拟的时间步长的最大时间,Ti是由计算资源用于计算模拟的时间步长所使用的经过的时间;
-分区的贡献(£Aj)是利用公式£Ai=μi.λi计算的,
其中,μi是具有属于范围]0;1]的值的权重因子;
-权重因子μi是根据在以下之间选择的一个或多个来估计的:分区中的面或体;分区中的多个动态对象;具有负载λi的计算机资源的分析模型;
-多个分区中的一个或多个分区是2D分区,其中,2D分区是3D场景中的2D面;
-多个分区中的一个或多个分区是3D分区,其中,3D分区是3D场景中的3D体;
-计算负载(λi)的估值的步骤以及确定一个或多个计算资源是否过载或欠载的步骤是在模拟的每P个时间步长执行的,其中,P是自然数;
-分区的贡献(£Aj)在一个或多个计算资源被确定为过载或欠载之后进行计算;
-所有计算资源是等同的。
-将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源还包括:由具有待重新分配的分区的计算资源来识别3D场景中的位于待重新分配的分区内的对象;由接收待重新分配的分区的计算资源来实例化所识别出的对象;由具有待重新分配的分区的计算资源来抑制所识别出的对象;将分区重新分配给接收该分区的计算资源。
还提供了一种计算机程序,其包括用于执行该方法的指令。
还提供了一种计算机可读存储介质,其上记录有计算机程序。
还提供了一种系统,其包括耦合到存储器的处理器,该存储器在其上记录有计算机程序。
附图说明
现在将通过非限制性示例的方式并且参考附图来描述本发明的实施例,在附图中:
-图1示出了方法的示例的流程图;
-图2至图6示出了方法的示例;以及
-图7示出了系统的示例。
具体实施方式
参考图1的流程图,提出了用于模拟3D场景的计算机实现的方法。该模拟是利用一组并行运行的计算资源来执行的。该方法包括将被模拟的3D场景划分成多个分区。执行划分以使得每个分区(标记为Aj)满足该组计算资源中的一个计算资源(标记为Si)的(多个)实时计算约束。该方法还包括将多个分区中的每个分区分配给计算资源;然后计算资源负责执行与该分区相关的计算。该方法还包括计算每个计算资源的负载的估值(标记为λi)。然后,该方法包括确定一个或多个计算资源是否过载或欠载。过载表示在模拟的时间步长期间要执行的计算的量超出计算资源的容量。欠载表示在模拟的时间步长期间要执行的计算的量远低于计算资源的容量。该方法还包括针对每个分区计算分区对于该分区被分配给的计算资源的负载的贡献(标记为£Aj)。该方法还包括将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源。被确定为过载或欠载的计算资源也称为离开计算资源。一个或多个分区向其重新分配的计算资源也称为接收计算资源。重新分配因利用组合优化算法计算出的分区的贡献而产生。
这种方法在最佳数量的求解器之间实现公平的负载平衡,以其最佳容量来运行,避免易于破坏3D场景的模拟的实时响应的开销。显著地,当在多服务器架构中与求解器一起使用时,该方法开放3D场景的无限制扩展,因为其使得将运行的3D场景从源物理架构平滑地转移到更大的目标架构成为可能。该方法易于实现,并且能够以高效的方式来执行,同时在求解器之间准许计算负载的可行的公平平衡。公平平衡通过对以下二者进行组合来实现:每个分区对于该分区被分配给的计算资源的负载的贡献的推断信息,以及使用组合优化算法来找出用于利用最佳时间帧来重新分配一个或多个分区的最佳解决方案。
该方法是计算机实现的。这表示该方法的步骤(或大体上所有步骤)由至少一个计算机或任何相似的系统来执行。因此,该方法的步骤由计算机可能全自动或半自动地执行。在示例中,可以通过用户-计算机交互来执行该方法的步骤中的至少一些步骤的触发。所需要的用户-计算机交互水平可能取决于预见的自动化水平,并且与实现用户意愿的需求保持平衡。在示例中,该水平可以是用户定义的和/或预定义的。
例如,划分3D场景的步骤可以由用户例如通过使用专用工具来执行。另一示例,一个或多个分区重新分配给另一计算资源可以根据用户的(多个)约束来执行,例如,用户能够决定给定资源必须保持过载或欠载。另外的示例,提供待模拟的3D场景的步骤可以在划分步骤之前,并且可以在进行用户选择时执行;用户可以经由诸如键盘、鼠标、触笔等的触觉设备来执行选择。例如,在双按键鼠标中,左侧按键可以用于在场景的列表中选择场景。该系统还可以默认地识别场景,即,不需要用户选择。
该方法的计算机实现方式的典型示例是利用适用于该目的的系统来执行该方法。该系统包括耦合到存储器的处理器,存储器在其上记录有计算机程序,计算机程序包括用于执行该方法的指令。存储器还可以存储数据库。存储器是适用于这种存储的任何硬件,可能包括若干物理不同的部分(例如,一部分用于程序,并且可能一部分用于数据库)。这样的系统在最佳数量的求解器之间实现公平的负载平衡,以其最佳容量来运行,避免易于破坏3D场景的模拟的实时响应的开销。该系统还可以包括适于显示3D场景和3D场景内的对象的图形用户界面(GUI)。GUI在与存储器和处理器耦合的显示设备上显示。
“数据库”表示被组织用于进行搜索和检索的任何数据(即,信息)的集合。当存储在存储器上时,数据库允许由计算机进行快速搜索和检索。实际上,数据库被结构化以有助于结合各种数据处理操作对数据进行存储、检索、修改、以及删除。数据库可以由能够被分解为记录的文件或文件集合构成,这些记录中的每一个记录由一个或多个字段构成。字段是数据存储的基本单位。用户可以主要通过查询来检索数据。使用关键字和排序命令,用户能够根据正在使用的数据库管理系统的规则来对许多记录中的字段进行快速搜索、重新排列、分组、以及选择,以便检索或创建关于特定数据聚合体的报告。
在该方法的情况下,数据库包括3D场景、3D场景中的一个或多个对象、以及与多个分区有关的信息。一个或多个对象存储在数据库上,并且可以独立于场景地存储。数据库还可以包括计算机程序,计算机程序包括用于由系统执行的指令。指令适用于执行本方法的步骤。
该方法一般对处于3D场景中的建模对象进行操纵。建模对象是由例如存储在数据库中的数据定义的任何对象。引申开来,表达方式“建模对象”指定数据本身。根据系统的类型,建模对象可以由不同种类的数据定义。系统实际上可以是CAD系统、CAE系统、CAM系统、PDM系统、和/或PLM系统的任何组合。在这些不同的系统中,建模对象由对应的数据定义。本领域技术人员可以相应地提及CAD对象、PLM对象、PDM对象、CAE对象、CAM对象、CAD数据、PLM数据、PDM数据、CAM数据、CAE数据。然而,这些系统不是互相排斥的,因为建模对象可以由对应于这些系统的任何组合的数据来定义。该系统还可以是其中对3D场景和/或3D建模对象进行模拟的MMO或MMOG系统。
CAD系统附加地表示至少适用于在建模对象的图形表示的基础上来设计建模对象的任何系统,例如,CATIA。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。例如,CAD系统可以使用边或线(在某些情况下使用表面或面)来提供CAD建模对象的表示。可以以诸如非均匀有理B样条(NURBS)的各种方式来表示线、边、或面。特别地,CAD文件包含规格,根据规格可以生成几何结构,这接下来允许生成表示。建模对象的规格可以存储在单个CAD文件或多个CAD文件中。表示CAD系统中的建模对象的文件的典型大小在每个零件一兆字节的范围内。并且建模对象典型地可以是成千上万个零件构成的组装件。
在本发明的上下文中,建模对象典型地可以是3D建模对象,例如,表示诸如零件或零件构成的组装件的产品,或者可能是产品构成的组装件。“3D建模对象”表示由允许其3D表示的数据建模的任何对象。3D表示允许从所有角度来查看该零件。例如,当对3D建模对象进行3D表示时,可以围绕其轴中的任一个轴或围绕显示该表示的屏幕中的任何轴来对3D建模对象进行处理并转动。这显著地排除了非3D建模的2D图标。3D表示的显示有助于进行设计(即,提高了设计人员统计地完成其任务的速度)。因为产品的设计是制造过程的一部分,所以这加速了工业中的制造过程。
所模拟的3D场景以及3D场景中的3D建模对象可以表示以下产品的几何结构,该产品在利用例如CAD软件解决方案或CAD系统完成其虚拟设计之后将在真实世界中进行制造:例如,(例如,机械的)零件或零件构成的组装件(或者等同地,零件构成的组装件,因为零件构成的组装件从该方法的观点可以看作零件本身,或者该方法可以独立地应用于组装件中的每个零件),或者更一般地任何刚性体组装件(例如,移动机构)。CAD软件解决方案允许对各种且不受限制的工业领域中的产品进行设计,包括:航空航天、建筑、建造、消费品、高科技设备、工业装备、运输、船舶、和/或海上石油/天然气生产或运输。因此,通过该方法设计的3D建模对象可以表示可以是任何机械零件的工业产品,例如,陆地交通工具的一部分(包括例如汽车和轻型卡车装备、赛车、摩托车、卡车和电机装备、卡车和公共汽车、火车)、航空交通工具的一部分(包括例如机身装备、航空航天装备、推进装备、国防产品、飞机装备、空间装备)、航海交通工具的一部分(包括航海装备、商船、近海装备、游艇和工作船、船舶装备)、一般机械零件(包括例如工业制造机械、重型移动机械或装备、安装装备、工业装备产品、制造金属产品、轮胎制品等)、机电或电子零件(包括例如消费电子、安全和/或控制和/或仪表化产品、计算和通信装备、半导体、医疗设备和装备)、消费品(包括例如家具、家居和园艺产品、休闲用品、时尚产品、硬商品零售商的产品、软商品零售商的产品)、包装(包括例如食品和饮料和烟草、美容和个人护理、家用产品包装)。
CAD系统可以是基于历史的。在这种情况下,建模对象由包含几何特征的历史的数据来进一步定义。实际上,建模对象可以由自然人(即,设计人员/用户)使用标准建模特征(例如,挤压、旋转、切割、和/或削圆)和/或标准铺面特征(例如,扫掠、混合、放样、填充、变形、和/或平滑)来设计。许多支持这种建模功能的CAD系统是基于历史的系统。这意味着设计特征的创建历史典型地通过非周期数据流进行保存,非周期数据流通过输入链接和输出链接将所述几何特征链接在一起。自80年代初以来,基于历史的建模范例是公知的。通过以下两种持久性数据表示来描述建模对象:历史和B-rep(即,边界表示)。B-rep是在历史中定义的计算的结果。当建模对象被表示时,在计算机的屏幕上显示的零件的形状是B-rep(例如,其细分曲面(tessellation))。零件的历史是设计意图。基本上,历史收集了关于建模对象已经经历的操作的信息。B-rep可以与历史一起保存,以便更容易地显示复杂的零件。历史可以与B-rep一起保存,以便允许根据设计意图对零件进行设计改变。
PLM系统附加地表示适用于对表示物理制造的产品(或要制造的产品)的建模对象进行管理的任何系统。因此,在PLM系统中,由适于制造物理对象的数据来定义建模对象。这样的数据典型地可以是尺寸值和/或公差值。为了正确制造对象,实际上最好具有这样的值。
CAM解决方案附加地表示适用于对产品的制造数据进行管理的任何解决方案、软件或硬件。制造数据一般包括与要制造的产品、制造过程、以及所需要的资源有关的数据。CAM解决方案用于计划和优化产品的整个制造过程。例如,CAM解决方案能够给CAM用户提供关于可行性、制造过程的持续时间或者可以用于制造过程的特定步骤的资源(例如,特定的机器人)的数量的信息;并且因此允许做出关于管理或所需要的投资的决策。CAM是CAD过程和潜在的CAE过程之后的后续过程。这样的CAM解决方案由Dassault Systèmes以商标提供。
CAE解决方案附加地表示适用于对建模对象的物理行为进行分析的任何解决方案、软件或硬件。公知且广泛使用的CAE技术是有限元方法(FEM),其典型地涉及将建模对象分为能够通过方程对物理行为进行计算并仿真的元素。这样的CAE解决方案由DassaultSystèmes以商标提供。另一种发展中的CAE技术涉及对由不具有CAD几何数据的不同物理领域的多个组件所构成的复杂系统进行建模与分析。CAE解决方案允许进行仿真并且因此对要制造的产品进行优化、改进以及、验证。这样的CAE解决方案由DassaultSystèmes以商标提供。
PDM代表产品数据管理。PDM解决方案表示适用于对与特定产品有关的所有类型的数据进行管理的任何解决方案、软件、或硬件。PDM解决方案可以由产品生命周期中所涉及的所有参与者使用:主要是工程师,但是也包括项目经理、财政人员、销售人员、以及买方。PDM解决方案一般基于面向产品的数据库。PDM解决方案允许参与者共享关于其产品的一致性数据,并且因此防止参与者使用分歧性数据。这样的PDM解决方案由Dassault Systèmes以商标提供。
图7示出了系统的示例,其中系统是客户端计算机系统,例如,用户的工作站。该系统可以是服务器,例如,包括数据库的服务器。可以由连接到执行该方法的剩余步骤的服务器的客户端计算机来执行步骤中的一个或多个。客户端和计算机可以通过计算机网络(例如,互联网、WAN、LAN等)连接。
图7的示例的客户端计算机包括连接到内部通信总线(BUS)1000的中央处理单元(CPU)1010,和同样连接到总线的随机存取存储器(RAM)1070。客户端计算机进一步设置有图形处理单元(GPU)1110,图形处理单元(GPU)1110与连接到总线的视频随机存取存储器1100相关联。在本领域中,视频RAM 1100也被称为帧缓冲器。大容量存储设备控制器1020管理对诸如硬盘驱动器1030的大容量存储设备的访问。适于有形地体现计算机程序指令和数据的大容量存储设备包括所有形式的非易失性存储器,举例来说,包括诸如EPROM、EEPROM、以及闪速存储器设备的半导体存储器设备;诸如内部硬盘和可移除盘的磁盘;磁光盘;以及CD-ROM盘1040。前述任一项可以由特别设计的ASIC(专用集成电路)进行补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触觉设备1090,例如,光标控制设备、键盘等。在客户端计算机中光标控制设备用于允许用户选择性地将光标定位在显示器1080上的任何期望的位置处。另外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括用于向系统输入控制信号的若干信号生成设备。典型地,光标控制设备可以是鼠标,鼠标的按键用于生成信号。可替代地或附加地,客户端计算机系统可以包括触敏板和/或触敏屏。
计算机程序可以包括能够由计算机执行的指令,该指令包括用于使得上述系统执行该方法的模块。程序可以记录在包括系统的存储器的任何数据存储介质上。例如,可以以数字电子电路,或者以计算机硬件、固件、软件、或以其组合来实现程序。程序可以被实现为装置(例如,有形地体现在机器可读存储设备中的产品),以用于由可编程处理器执行。方法步骤可以由执行指令的程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行该方法的功能。因此,处理器可以是可编程且耦合的,以接收来自数据存储系统的至少一个输入设备的数据和指令,并且向数据存储系统的至少一个输出设备发送数据和指令。应用程序可以以高级过程语言或面向对象的编程语言来实现,或者如果需要则以汇编语言或机器语言来实现。在任何情况下,语言都可以是编译语言或解释语言。程序可以是完全安装程序或更新程序。在任何情况下将程序应用于系统都会产生用于执行该方法的指令。
“模拟3D场景”指定运行模型的过程。该模型模仿真实世界系统随着时间进行的操作。例如,3D场景包括3D建模对象,并且每个3D建模对象再现(也能够称为建模)由3D场景建模的系统的一部分。3D建模对象可以表示产品的几何结构,在利用例如CAD软件解决方案或CAD系统完成其虚拟设计之后,并且在利用例如MMO应用完成其模拟之后,该产品要在真实世界中进行制造。
该方法可以包括在制造过程中,其可以包括在创建3D场景之后对3D场景进行模拟。然后,可以产生所模拟的3D场景,即,产生对应于建模系统的物理产品。在任何情况下,通过该方法模拟的3D场景可以表示制造对象。因为该方法改进了3D场景的模拟,所以该方法还改进了产品的制造,并且因此提高了制造过程的生产率。
现在参考图1,在步骤100处,将3D场景划分成多个分区。步骤100发生于运行模拟之前。每个分区(标记为Aj)被确定大小为满足一组并行运行的计算资源中的一个计算资源(标记为Si)的(多个)实时计算约束。可以理解,在执行步骤100之前已经提供了3D场景,例如,3D场景可用于执行该方法的系统。
分区也称为基元部分,并且步骤100可以称为基元划分。步骤100的目的在于将整个3D场景分解成基元部分。在任何情形下,每个基元部分都能够在求解器上实时地运行。术语“实时”表示在严格的时间约束内提供保证响应。定量地,这表示在计算资源上模拟这样的分区应当占用不超过该分区在其上运行的计算资源的100%。换言之,在对3D场景进行模拟的时间步长期间用于对分区进行模拟的计算量不会超过计算资源的容量:在任何情况下并且在任何时候,计算资源都具有足够的资源来对分区进行模拟。
求解器是能够由模拟3D场景的计算机程序执行的一段代码。因此,求解器的集合模拟完整的3D场景。假设每个求解器在其自己的专用计算资源上运行,其范围为(但不限于)从多核CPU上的求解线程、多CPU计算机上的进程、到服务器CPU上的服务器进程。并且因此,“求解器”和“计算资源”的视角在负载和性能方面是严格相等的。因此,表达方式“计算资源”是术语“求解器”的同义词。
事实上,计算资源是等同的,即,用于模拟给定分区的时间在一组并行运行的计算资源中的每个计算资源上是相同的。这有助于本发明的公平负载平衡,因为将分区重新分配给另一计算资源不需要考虑计算资源的容量。这还有助于利用附加且等同的计算资源来进行物理扩展。注意,否则,当计算资源具有不同的容量时,可能依赖于利用与每个计算资源相关联的一组适当的权重因子而归一化的公共容量。
可以设想不同的解决方案来确定符合该实时需求的分区。例如,基本的经验解决方案由测试和尝试的迭代过程构成,其中对每个分区的几何结构(即,其大小)手动地进行调整,并且然后在求解器上对每个分区单独地进行模拟,检查CPU总是低于100%。对于这种单独的情况,有必要设想可能最临界的情况以设置容量限制(其永远不会被越过),最临界的情况具有尽可能多的对象,以及尽可能多的交互。另一解决方案在于使用3D场景的划分方法,其在于2012年12月21日提交、并且于2014年06月25日公开的公开号为EP2745892(A1)的文件EP12306654.0中描述。应当理解,能够使用用于划分3D场景的任何其它合适的方法,只要其允许创建遵守实时需求的分区。
在确定3D场景的N个分区后,认为当在N个计算资源上运行时,3D场景将总是满足实时需求。然而,由于分区被设计为使得它们能够抵抗最临界的情况,并且由于这种临界的情况不太可能发生,所以在大多数情况下,少于N个计算资源是足够的。
3D场景是其中描述对象之间的空间关系的空间。场景由至少两个对象组成,并且对象可以是但不限于建模对象或3D建模对象。3D建模对象是3D空间中的对象的描述。3D场景是物理世界的模型,其可以通过借助于坐标描述3D空间中的每个点的几何结构来从数学上进行表示。3D场景典型地是被模拟的真实世界,其中对象之间的真实交互被模拟。表达方式真实交互表示所模拟的交互反映了真实世界的交互,例如,物理定律反映力/作用力(重力、磁力、接触力),控制定律反映信息流、控制事件……一个或多个对象在3D场景中演变并服从所模拟的真实世界的定律,例如,两个对象不能彼此相交。3D场景包括能够被修改以用于特定情境的目的的布局。情境描述3D场景中的一个或多个对象的至少可预见的交互。因此,情境描述3D场景用于或被设想用于活动的上下文的一种方式。每个特定情境在布局上进行模拟。应当理解,该情境可以由用户定义。
3D场景的分区可以是3D场景的对象可以处于的2D平面。因此,该分区是具有一定面积的大小的2D分区。例如,场景的布局能够分为分区。在这种情况下,在2D分区上或2D分区上方的对象属于该分区:这意味着对该分区的模拟包括对该分区中的对象的模拟。分区能够是3D场景中的体。3D场景被分为N个3D体。在这种情况下,位于体内的对象属于该体。优选地,体被确定为使得对象不与体进行交互;如果对象与体进行交互,则对象属于哪个体是任意确定的。
优选地,分区具有规则的几何结构,这使得划分3D场景更容易。例如,3D分区可以是立方体。因此,分区是具有一定体积大小的3D分区。经划分的3D场景可以由2D分区和3D分区的组合组成。3D场景具有边界,并且不是无限的;因此,分区的数量N是有限数。
图3示出了将3D场景基元划分成分区的示例。这里,“3D体验”(其为表达方式“3D场景”的同义词)被分为N个2D分区,并且每个分区与N个计算资源中的一个相关联。每个计算资源上的负载等于或小于计算资源能够支持的最大计算负载的100%。
术语“负载”表示计算资源执行的计算工作量的测量。考虑到执行任务的可用时间,负载的测量能够是执行所述任务所消耗的时间。
现在执行步骤110至190。这些步骤能够被称为基元负载平衡,其当在求解器上运行模拟时发生,其中在每个模拟时间步长之后对求解器的负载进行监测,并且其中基元部分偶尔在求解器之间进行重新分发以调整其负载。虽然步骤100属于模拟的构建时(built-time),但是步骤110至190属于模拟的运行时。图2示出了构建时(或基元划分)与运行时(或基元负载平衡)之间的关系:一旦执行了构建时,就会触发运行时。
在步骤110处,将每个分区分配给计算资源。优选地,将一个分区分配给一个计算资源。这是如本领域已知地执行的,并且由模拟器进行管理,模拟器是执行运行时和/或构建时的计算机程序。作为步骤110的结果,每个基元部分已经分发到求解器上。
然后,执行步骤120至190。这些步骤的目标之一在于在N个可用的计算资源(由利用划分获得的分区确定的)之间选择足够运行3D场景的适当数量M个计算资源。
这些M个求解器Si必须以公平的负载分配运行,即,其负载λi必须接近但小于100%;而N-M个求解器Si是未激活的,其中负载λj等于0%。然而,为了承受负载可能的突然变化,能够设置安全范围,并且公平平衡的实际条件能够由关系式(1)表达为
λmin≤λi'≤λmax<100% (1)
其中,λmin是计算资源必须支持的最小负载,λmax是计算资源必须支持的最大负载。
步骤120至190旨在提供以下两个功能。第一功能是通过周期性地监测求解器负载并且通过检查公平负载的条件(1)是否不再被验证来检测不平衡情况。第二功能是调整求解器之间的分区分布,如果检测到不平衡情况,则求解器负载返回到关系式(1)的条件被验证的公平平衡。
步骤120至130旨在执行对不平衡情况的检测。
在步骤120处,计算每个计算资源(Si)的负载(λi)的估值。只能够计算估值,因为不可能直接测量计算资源上(即,求解器上)的负载。能够根据由计算资源Si花费的用于计算模拟的时间步长所经过的时间Ti来对计算资源的负载λi的估值进行计算。
Ti测量能够如下仪表化:计算资源Si软件代码调用CPU系统功能,以恰好在其开始其求解周期之前得到开始时间戳,并且再次调用CPU系统,以恰好在其求解周期终止时得到结束时间戳。经过的时间Ti是这两个时间戳之间的差。
经过的时间Ti能够被认为与计算资源Si的负载λi成比例,提醒注意每个计算资源在其自己的计算资源上运行,并且假设在没有中断的情况下一次进行地计算求解周期。
计算资源Si用于在模拟步骤内进行计算的最大持续时间Tmax可以是固定的:在该最大持续时间Tmax之上,计算资源Si不再满足其实时需求。
最大持续时间Tmax的选择主要取决于被模拟的模型,并且更一般地,取决于需要模拟的应用的类型。例如,对于MMOG中的视频游戏而言,为了流畅的动画必须每1/50秒(s)对场景进行刷新。因此,每个计算资源应当在不超过1/50s的时间段内返回其计算的结果。作为在MMO应用中模拟的多刚体动力学的另一示例,该最大持续时间Tmax小于视频游戏中的情况,并且将取决于对象的惯性性质和所规定的结果的数值精度。
因此,按照惯例,Tmax对应于计算资源Si的负载容量的100%,对于模拟的给定时间步长,计算资源的负载λi的估值以百分比来表示并且标记为λi(%),其能够通过关系式或公式(2)从计算资源的经过的时间Ti导出:
λi(%)=100(Tmax-Ti)/Tmax (2)
为了说明的目的,图4示出了模拟的时间线的示例。在该示例中,示出了三个模拟时间步长,每个在时间点400处开始。对于第一模拟时间步长和第三模拟时间步长,求解器在Tmax经过之前已经完成了计算;而对于第二模拟时间步长,在时间Tmax经过时完成计算。计算的结束由线410表示。
有趣的是,在Tmax和下一模拟时间步长之间经过的时间段给予模拟器重新分配一个或多个分区的时间。该时间段还由模拟器用于收集模拟的结果,并且显现模拟的结果。因此,可以进一步选定Tmax,以便于确保模拟器正确运行。
然后,在步骤130处,确定一个或多个计算资源是否过载或欠载。根据对在步骤120处计算出的计算资源的负载λi的估值,针对每个计算资源执行该确定。
因此,当λmax≤λi时,计算资源Si临界接近其对于实时性的容量限制,并且有必要将其负载的一部分转移到另一求解器;计算资源被认为是过载的。而当λi<λmin时,计算资源Si被使用,并且可能能够通过将其内容转移到一个或多个其它激活的求解器而将该计算资源去激活。计算资源是欠载的。本领域技术人员可以理解,这种情况并不是临界情况,其可能照样持续而不会危害模拟的实时性能。
当确定没有任何计算资源过载或欠载时,重复步骤120。可以针对模拟的每第P个时间步长来执行步骤120和130的重复,其中P是自然数。关于P的值,其主要取决于被模拟的模拟类型。例如,对于经典情境而言,在多刚体动力学的情况下,按照经验将P设置在8左右给出良好的结果。因此,当模拟中涉及多刚体动力学时,P优选地属于6至8的范围(包括边界)。更一般地,P的良好值的选择与建模现象的带宽(例如,碰撞精度、最大速度、对象的出现率等)有关。还可能由于提供数值关系加载时间导数对特定场景特性时间导数的经典识别方法来确定P。
针对模拟的每个时间步长重复步骤120和130确保在可用的N个求解器之间的适当数量M个求解器是最佳的。然而,在模拟的每个时间步长执行这些步骤120和130对于执行模拟的计算机系统而言具有在CPU和存储器使用方面的成本。减少执行这些步骤120和130的次数降低该成本,但是可能导致其中数字M不再适当的情况,从而不利于模拟。
当一个或多个计算资源被确定为是过载或欠载的时,暂时停止重复120和130的步骤,并且一旦已经计算并执行重新分配,则再次开始重复120和130的步骤。
在步骤140处,针对每个分区Aj,计算分区对该分区被分配给的计算资源的负载的贡献分区Aj的贡献评估分区对该分区被分配给的计算资源的负载的单独的贡献。
运行数量Q个分区Aj的求解器Si的当前负载λi是Q个分区的单独的贡献的总和。假设分区Aj的单独的贡献与给定的权重因子μj之间的关系式(3),使得:
因此,是Aj与μj之间的乘积。权重因子具有属于范围]0;1]的值。
能够以许多方式来估计权重因子μj。权重因子能够与由计算资源Si管理的2D分区中的面成比例。权重因子能够与由计算资源Si管理的3D分区中的体成比例。权重因子能够与由计算资源管理的分区内的动态对象的群体成比例。动态对象是能够在3D场景中潜在地移动的对象。因此,动态对象与静止对象相反,静止对象从不在3D场景中移动并且不能被另一对象穿过。因此,3D场景可以被设想为包括静态对象的布局和在所述布局中移动/演变的一组动态对象。权重因子还能够基于求解器性能的分析模型,或者基于其计算的模拟模型的定量特性。
因此,计算资源的每个分区的权重因子表示该分区在被分配给该计算资源的其它分区之间的优势。因此,分配给计算资源的分区的权重因子μj的总和等于1。
图5示出了步骤140的示例。分区A1、A2、以及A3已经被分发给求解器S1,并且分区A4和A5已被分发给求解器S2。在求解器S1和S2二者上执行一个模拟时间步长之后,已经对求解器上的负载进行监测,即,已经执行了步骤120和130。由于求解器Si中的至少一个已经被确定为是过载或欠载的,所以执行步骤S140:计算分区A1、A2、以及A3对于求解器S1上的负载λ1的贡献,以及分区A4和A5对于求解器S2上的负载λ2的贡献,如图5右侧所示。
在图5的示例中,每个求解器S1和S2负责对对象510、520进行模拟。对象510在分区A2上方,而对象520在分区A4上方。因此,分区A2和A4具有比其它分区的权重因子大的权重因子(分别为μ2和μ4)。
因此,在步骤150处,具有计算资源的当前负载λi的估值以及在计算资源上运行的分区的当前负载负载平衡由将一个或多个分区Aj从求解器移动到另一求解器构成。将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源是根据利用组合优化算法计算出的分区的贡献来执行的。组合优化旨在在考虑当前负载λi的估值和当前负载时能够获得的重新分配的所有组合之间找出最佳重新分配。即,算法根据分区的贡献和分区的负载λi的估值来计算分区的所有可能的组合。存在N!种在N个计算资源之间分发N个分区的方式,或者换言之,针对N个分区中的每一个在N个计算资源中选择一个计算资源。
为了确定组合之间的最佳解决方案并且为了限制要计算的组合的数量,算法可以采用表示要达到的目标的一个或多个标准。能够根据一个或多个标准使用目标函数来确定最佳解决方案。在以下标准之间选择至少一个标准:
-活动地计算并行模拟的计算资源的数量最少。这允许限制欠载的计算资源的数量;
-重新分配给另一计算资源的分区的数量最少。这允许限制执行模拟的系统的CPU/存储器使用,并且还使得模拟器对负载平衡进行管理更容易,因为在重新分配中涉及较少的分区;
-将一个或多个分区重新分配给另一计算资源,该另一计算资源已经针对作为被重新分配的一个或多个分区的邻居的分区中的一个或多个执行计算。这对于其中许多对象从分区移位到另一分区的3D场景的模拟是有用的。更容易对模拟进行管理。
优选地,一个或多个分区重新分配给另一计算资源被执行,以使得每个计算资源的结果负载(λi')对关系式(1)进行验证
λmin≤λi'≤λmax<100% (1)
直到N=10,仍然可能在短时间量内针对所有3.328.300个组合广泛地评估3个目标,并且然后选择一个最佳解决方案。然而,可以使用比较可扩展的技术;例如,能够使用诸如蚁群算法的组合优化算法来在合理的时间帧内找出最佳的解决方案。应当理解,能够使用任何其它合适的组合优化算法。
从现在起,已经在一组组合之间选择了重新分配的组合。现在,在步骤160至190处执行重新分配。
在步骤160处,对待重新分配的分区进行管理的计算资源识别3D场景中的位于待重新分配的分区内的对象。该计算资源也称为离开计算资源,并且被重新分配的分区称为离开分区。
然后,在步骤170处,接收离开分区的计算资源实例化在步骤160处识别出的对象。接收离开分区的计算资源也称为目的地计算资源。对象的两个实例(一个在离开分区上,而一个在目的地分区上)被计算,但是只有离开计算资源的实例在模拟中运行。
接下来,在步骤180处,离开计算资源抑制其所识别出的对象的实例。
并且然后,在步骤190处,目的地分区接收该分区,即,对象的实例在模拟中运行,以及分区被重新分配。
能够重复步骤120至190,直到模拟运行为止。
模拟的显现和/或显示可以在执行模拟的系统上执行。可替代地,模拟显示的显现和/或显示可以在另一系统上执行,例如,在连接到执行模拟的服务器的客户端计算机上执行。
Claims (15)
1.一种用于对3D场景进行模拟的计算机实现的方法,所述模拟是利用一组并行运行的计算资源来执行的,包括:
-将3D场景划分(100)成多个分区,每个分区(Aj)被确定大小为满足所述组中的一个计算资源(Si)的实时计算约束;
-将所述多个分区中的每个分区分配(110)给计算资源;
-计算(120)每个计算资源(Si)的负载(λi)的估值,并且确定(130)一个或多个计算资源是否过载或欠载;
-针对每个分区(Aj),计算所述分区对于所述分区被分配给的计算资源的所述负载的贡献(£Aj);
-将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源,所述重新分配因利用组合优化算法计算出的分区的贡献而产生。
2.根据权利要求1所述的计算机实现的方法,其中,一个或多个分区重新分配给另一计算资源是根据以下标准中的一个或多个来执行的:
-计算资源的数量最少;
-重新分配给另一计算资源的分区的数量最少;
-一个或多个分区被重新分配给另一计算资源,所述另一计算资源已经针对作为被重新分配的一个或多个分区的邻居的分区执行计算。
3.根据权利要求1或2所述的计算机实现的方法,其中,一个或多个分区重新分配给另一计算资源被执行,以使得每个计算资源的结果负载(λi')验证
λmin≤λi'≤λmax
其中,λmin是计算资源的最小负载,λmax是计算资源的最大负载。
4.根据权利要求1至3中任一项所述的计算机实现的方法,其中,每个计算资源的所述负载(λi)的所述估值是利用关系式λi(%)=100.(Tmax-Ti)/Tmax来计算的,
其中,λi(%)是所估计的负载λi的百分比,Tmax是分派给计算资源用于计算所述模拟的时间步长的最大时间,Ti是由计算资源用于计算所述模拟的时间步长所使用的经过的时间。
5.根据权利要求1至4中任一项所述的计算机实现的方法,其中,分区的所述贡献(£Aj)是利用公式£Ai=μi.λi计算的,
其中,μi是具有属于范围]0;1]的值的权重因子。
6.根据权利要求5所述的计算机实现的方法,其中,所述权重因子μi是根据在以下之间选择的一个或多个来估计的:
-分区中的面或体;
-分区中的多个动态对象;
-具有负载λi的计算机资源的分析模型。
7.根据权利要求1至6中任一项所述的计算机实现的方法,其中,所述多个分区中的一个或多个分区是2D分区,其中,2D分区是所述3D场景中的2D面。
8.根据权利要求1至7中任一项所述的计算机实现的方法,其中,所述多个分区中的一个或多个分区是3D分区,其中,3D分区是所述3D场景中的3D体。
9.根据权利要求1至8中任一项所述的计算机实现的方法,其中,计算所述负载(λi)的所述估值的步骤以及确定一个或多个计算资源是否过载或欠载的步骤是在所述模拟的每P个时间步长执行的,其中,P是自然数。
10.根据权利要求9所述的计算机实现的方法,其中,分区的所述贡献(£Aj)是在一个或多个计算资源被确定为过载或欠载之后计算的。
11.根据权利要求1至10中任一项所述的计算机实现的方法,其中,所有计算资源是等同的。
12.根据权利要求1至11中任一项所述的计算机实现的方法,其中,将过载或欠载的计算资源的一个或多个分区重新分配给另一计算资源还包括:
-由具有待重新分配的分区的计算资源来识别所述3D场景中的位于待重新分配的所述分区内的对象;
-由接收待重新分配的所述分区的计算资源来实例化所识别出的对象;
-由具有待重新分配的分区的计算资源来抑制所识别出的对象;
-将所述分区重新分配给接收所述分区的计算资源。
13.一种计算机程序,其包括用于执行权利要求1-12中任一项所述的方法的指令。
14.一种计算机可读存储介质,其上记录有权利要求13所述的计算机程序。
15.一种系统,其包括耦合到存储器的处理器,所述存储器在其上记录有权利要求13所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP16306291.2A EP3301572B1 (en) | 2016-09-30 | 2016-09-30 | Method, program and system for simulating a 3d scene with a set of computing resources running in parallel |
EP16306291.2 | 2016-09-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885599A true CN107885599A (zh) | 2018-04-06 |
CN107885599B CN107885599B (zh) | 2023-07-28 |
Family
ID=57136810
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710917902.5A Active CN107885599B (zh) | 2016-09-30 | 2017-09-30 | 用一组并行运行的计算资源模拟3d场景的方法、程序和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10504271B2 (zh) |
EP (1) | EP3301572B1 (zh) |
JP (1) | JP7071810B2 (zh) |
CN (1) | CN107885599B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3340181A1 (en) * | 2016-12-21 | 2018-06-27 | Dassault Systèmes | Automatic partitioning of a 3d scene into a plurality of zones processed by a computing resource |
EP3671492A1 (en) * | 2018-12-21 | 2020-06-24 | Dassault Systèmes | Adaptive compression of simulation data for visualization |
US20230215108A1 (en) * | 2021-12-31 | 2023-07-06 | Samsung Electronics Co., Ltd. | System and method for adaptive volume-based scene reconstruction for xr platform applications |
CN115905135B (zh) * | 2023-03-14 | 2023-06-06 | 武汉芯云道数据科技有限公司 | 多帧3d文件处理方法及装置 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685391A (zh) * | 2002-01-04 | 2010-03-31 | 微软公司 | 管理计算系统中协处理器的计算资源的方法和系统 |
US20110016200A1 (en) * | 2009-07-17 | 2011-01-20 | Honeywell International Inc. | System for providing demand response services |
US20110242125A1 (en) * | 2010-04-05 | 2011-10-06 | Jesse David Hall | Bindless memory access in direct 3d |
US20120117625A1 (en) * | 2010-11-09 | 2012-05-10 | Microsoft Corporation | Security system for computing resources pre-releases |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
CN103210412A (zh) * | 2011-02-18 | 2013-07-17 | 索尼公司 | 在分布式计算中营销与销售贡献资源 |
US20140071836A1 (en) * | 2012-09-13 | 2014-03-13 | Alcatel-Lucent Usa Inc. | Enhanced inter-cell interference control |
CN103886638A (zh) * | 2012-12-21 | 2014-06-25 | 达索系统公司 | 在划分为多个区域的三维场景中对对象的物理行为仿真 |
CN103971416A (zh) * | 2012-12-21 | 2014-08-06 | 达索系统公司 | 将3d场景分割为由计算资源处理的多个区域 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271985A (ja) * | 2002-03-14 | 2003-09-26 | N Technology Kk | 並列画像処理方法及びそのシステム |
JP4122379B2 (ja) * | 2002-05-24 | 2008-07-23 | 独立行政法人情報通信研究機構 | ラジオシティの並列処理方法及びその装置 |
US20050060590A1 (en) * | 2003-09-16 | 2005-03-17 | International Business Machines Corporation | Power-aware workload balancing usig virtual machines |
EP1687732A4 (en) * | 2003-11-19 | 2008-11-19 | Lucid Information Technology Ltd | METHOD AND SYSTEM FOR A MULTIPLEXED 3D GRAPHIC PIPELINE VIA A PC BUS |
US20080104609A1 (en) * | 2006-10-26 | 2008-05-01 | D Amora Bruce D | System and method for load balancing distributed simulations in virtual environments |
US8250578B2 (en) * | 2008-02-22 | 2012-08-21 | International Business Machines Corporation | Pipelining hardware accelerators to computer systems |
US20100113159A1 (en) * | 2008-11-06 | 2010-05-06 | International Business Machines Corporation | Method and apparatus for partitioning virtual worlds using prioritized topic spaces in virtual world systems |
KR101519825B1 (ko) * | 2008-12-05 | 2015-05-13 | 삼성전자주식회사 | 데이터 처리 장치 및 그 제어 방법 |
US8887172B2 (en) * | 2009-12-31 | 2014-11-11 | Microsoft Corporation | Virtualized management of remote presentation sessions using virtual machines having load above or below thresholds |
-
2016
- 2016-09-30 EP EP16306291.2A patent/EP3301572B1/en active Active
-
2017
- 2017-09-28 US US15/719,267 patent/US10504271B2/en active Active
- 2017-09-29 JP JP2017190751A patent/JP7071810B2/ja active Active
- 2017-09-30 CN CN201710917902.5A patent/CN107885599B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101685391A (zh) * | 2002-01-04 | 2010-03-31 | 微软公司 | 管理计算系统中协处理器的计算资源的方法和系统 |
US20110016200A1 (en) * | 2009-07-17 | 2011-01-20 | Honeywell International Inc. | System for providing demand response services |
US20110242125A1 (en) * | 2010-04-05 | 2011-10-06 | Jesse David Hall | Bindless memory access in direct 3d |
US20120117625A1 (en) * | 2010-11-09 | 2012-05-10 | Microsoft Corporation | Security system for computing resources pre-releases |
CN103210412A (zh) * | 2011-02-18 | 2013-07-17 | 索尼公司 | 在分布式计算中营销与销售贡献资源 |
CN102662639A (zh) * | 2012-04-10 | 2012-09-12 | 南京航空航天大学 | 一种基于Mapreduce的多GPU协同计算方法 |
US20140071836A1 (en) * | 2012-09-13 | 2014-03-13 | Alcatel-Lucent Usa Inc. | Enhanced inter-cell interference control |
CN103886638A (zh) * | 2012-12-21 | 2014-06-25 | 达索系统公司 | 在划分为多个区域的三维场景中对对象的物理行为仿真 |
CN103971416A (zh) * | 2012-12-21 | 2014-08-06 | 达索系统公司 | 将3d场景分割为由计算资源处理的多个区域 |
Non-Patent Citations (4)
Title |
---|
KYUNGMIN ET AL: "A Scalable Dynamic distrbuted scheme for multi-server with highly-skewed user distribution", 《PROCEDDINGS OF THE 10TH ACM SYMPOSIUM ON VIRTUAL REALITY SOFTWARE AND THCHNOLOGY 》 * |
RUIYUE LIN ET AL: "An Equitable Allocation of Fixed Costs and Resources: A DEA Approach", 《2006 6TH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION》 * |
周文平等: "一种环境理解的分布式群体仿真任务划分方法", 《电子学报》 * |
许建豪: "云计算中基于拍卖的虚拟机动态供应和分配算法", 《重庆邮电大学学报(自然科学版)》 * |
Also Published As
Publication number | Publication date |
---|---|
EP3301572A1 (en) | 2018-04-04 |
JP7071810B2 (ja) | 2022-05-19 |
EP3301572B1 (en) | 2023-05-24 |
CN107885599B (zh) | 2023-07-28 |
US20180096514A1 (en) | 2018-04-05 |
JP2018092607A (ja) | 2018-06-14 |
US10504271B2 (en) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11087052B2 (en) | Automatic partitioning of a 3D scene into a plurality of zones processed by a computing resource | |
JP6359826B2 (ja) | 計算資源によって処理される複数のゾーンに3dシーンを区切るパーティション | |
Johansson et al. | Real-time visualization of building information models (BIM) | |
JP6386225B2 (ja) | 複数のゾーンに分割された3dシーン内におけるオブジェクトの物理的な挙動のシミュレーション | |
CN107885599A (zh) | 用一组并行运行的计算资源模拟3d场景的方法、程序和系统 | |
Liu et al. | Meshless simulation of brittle fracture | |
US20110282641A1 (en) | Method and system for real-time particle simulation | |
US10229228B2 (en) | Simulation of an assembly of fabric pieces | |
Hung et al. | Automatic clustering method for real-time construction simulation | |
Yong et al. | GVM based intuitive simulation web application for collision detection | |
Merrell et al. | Constraint-based model synthesis | |
Zhang et al. | Immersive product configurator for conceptual design | |
Hesham et al. | Explicit modeling of personal space for improved local dynamics in simulated crowds | |
Wu et al. | Visual simulation for granular rocks crush in virtual environment based on fractal geometry | |
Joselli et al. | An architecture for real time crowd simulation using multiple gpus | |
Yang et al. | S tudy on the Influence of Exit Width Change on Heterogeneous Passengers Evacuation Based on the Social Force Model | |
Van Gestel | Procedural destruction of objects for computer games | |
Seeman et al. | Histogram smoothing for bilateral filter | |
Nylén et al. | The Red-Black Physics Engine: A Parallel Framework for Interactive Soft Body Dynamics | |
Wang et al. | Lattice Boltzmann flow simulation with particle system | |
Yong et al. | Real-time crowd rendering and interactions on gpu | |
Catanese et al. | A framework for designing 3d virtual environments | |
Greuter | Undiscovered worlds, real-time procedural generation of virtual three-dimensional spaces | |
Skorupski et al. | Interactive Thin Shells–A Model Interface for the Analysis of Physically-based Animation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |