CN107657131A - 一种基于GPUs集群的流体交互仿真方法及系统 - Google Patents
一种基于GPUs集群的流体交互仿真方法及系统 Download PDFInfo
- Publication number
- CN107657131A CN107657131A CN201710972384.7A CN201710972384A CN107657131A CN 107657131 A CN107657131 A CN 107657131A CN 201710972384 A CN201710972384 A CN 201710972384A CN 107657131 A CN107657131 A CN 107657131A
- Authority
- CN
- China
- Prior art keywords
- gpus
- fluid
- particle
- clusters
- interactive simulation
- 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.)
- Pending
Links
- 239000012530 fluid Substances 0.000 title claims abstract description 81
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000004088 simulation Methods 0.000 title claims abstract description 49
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 37
- 239000002245 particle Substances 0.000 claims abstract description 117
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 238000005070 sampling Methods 0.000 claims abstract description 6
- 230000008878 coupling Effects 0.000 claims abstract description 5
- 238000010168 coupling process Methods 0.000 claims abstract description 5
- 238000005859 coupling reaction Methods 0.000 claims abstract description 5
- 239000007787 solid Substances 0.000 claims description 67
- 230000003993 interaction Effects 0.000 claims description 23
- 238000012546 transfer Methods 0.000 claims description 17
- 238000004422 calculation algorithm Methods 0.000 claims description 16
- 230000003044 adaptive effect Effects 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000005433 particle physics related processes and functions Effects 0.000 claims description 3
- 238000000205 computational method Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000011161 development Methods 0.000 abstract description 6
- 230000008901 benefit Effects 0.000 abstract description 5
- 238000010276 construction Methods 0.000 abstract description 3
- 230000008846 dynamic interplay Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 5
- 230000018109 developmental process Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000010521 absorption reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000005520 cutting process Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012827 research and development Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- -1 OpenMP Chemical compound 0.000 description 1
- 241001632422 Radiola linoides Species 0.000 description 1
- 241001274961 Rubus repens Species 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000004907 flux Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000009916 joint effect Effects 0.000 description 1
- 239000007788 liquid Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000155 melt Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000000149 penetrating effect Effects 0.000 description 1
- 230000010399 physical interaction Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000000452 restraining effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
-
- 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/56—Particle system, point based geometry or rendering
-
- 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/61—Scene description
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Processing Or Creating Images (AREA)
Abstract
一种基于GPUs集群的流体交互仿真方法及系统,用于多种基于拉格朗日方法的流体动画的建模,交互仿真方法的步骤包括:(1)对3D模型进行采样,基于粒子移动速度的方法提取覆盖物体表面的边界粒子;(2)对于场景间的动态交互,设计惩罚力和密度耦合的方式,计算流体与交互场景中的物体的位置与相对关系;(3)设计基于GPUs集群的并行结算器,根据计算复杂性自适应划分计算负载;(4)利用异步数据传输策略,优化数据传输开销;(5)定义高度抽象的开发框架接口,实现对流体动画场景的快速构建与模拟。本发明提出的交互仿真方法及系统具有易构建、轻量级、普适性等优点。
Description
技术领域
本发明涉及一种针对自然界中常见的流体现象的高效建模和逼真模拟技术,特别是基于GPUs集群构建普适的物理交互方法,属于计算机虚拟现实和计算机图形学技术领域,主要应用于流体相关的三维动画场景的逼真模拟和快速构建。
背景技术
真实世界中的流体现象随处可见,如晶莹的露珠、绚烂的烟火、美丽的云彩和澎湃的海洋等。随着计算机性能和计算流体动力学(Computational Fluid Dynamics,CFD)的发展,研究人员开始将计算流体力学引入到流体仿真中,开展更为逼真的物理仿真研究。它遵循流体动力学原理,从流体动力学基本方程——纳维-斯托克斯(Navier-Stokes,N-S)方程组出发,通过设置边界条件,对方程进行一系列的近似和简化,以数值方法求解流场,最终实现流体效果。为了克服网格法的问题,新一代数值方法,特别是光滑粒子流体动力学(Smoothed Particle Hydrodynamics,SPH)作为一种基于物理的无网格方法,受到很多学者的关注。它在流体建模方面具有很大的优越性,包括可以很好的处理自由表面、变形边界、运动交界面以及大变形问题;SPH方法在流体仿真的准确性、适应性和稳定性方面都得到了很大的改进,方法日趋成熟;从微观世界到宏观再到天文学尺度,都获得广泛应用。文献1-Matthias M,David M.G.Particle-based Fluid Simulation for InteractiveApplications[C].Published in:Proceedings ACM SIGGRAPH/Eurographics Symposiumon Computer Animation.AirelaVille:Eurographics Association,2003:154-159首先将SPH方法应用到计算机图形学流体仿真中,然而由于受当时计算机性能的影响,该方法无法实时满足大规模及复杂交互细节流体的模拟。文献2-Müller M.,Schirm S.,Teschner M.,et al,Interaction of Fluids with Deformable Solids[J].Journal of ComputerAnimation and Virtual Worlds(CAVW),2004,15(3-4):159-171采用SPH方法模拟流固交互,固体用多边形网格表示,使用有限元方法计算固体的变形,设置特殊的边界,在变形体的边界处放置镜像粒子,由高斯插值推导出粒子的位置和权值,用于计算穿透、滑移、反作用力三个边界条件,实现了医学仿真中的流体和固体实时交互,然而该方法不能实现统一的粒子表示。文献3-Solenthaler B,J,Pajarola R.A Unified Particle Modelfor Fluid-Solid Interactions[J].Computer Animation and Virtual Worlds.2007,18(1):69-82提出了一种统一的粒子架构下多种类型流体交互方法,该架构基于SPH方法对液体、变形体、刚体进行交互仿真,与以往方法相比,此方法满足多种流固交互仿真,融化和凝固现象也能够被处理。然而该方法在场景交互时容易发生穿越和折叠现象,且不易在并行集群上执行。除了流体表现形式之外,计算的复杂性也是流体仿真的一个挑战,这种局限导致很多流体仿真不能实时进行。SPH方法具有很好的并行性,标准的SPH公式数据依赖小,通过适当的修改即可实现并行。GPU(Graphics Process Unit,GPU)具有很强的并行计算能力,除了计算机图形学外,已经进入了通用计算领域。与欧拉法相比,粒子法具有数据依赖小,程序简单等优点,非常适合在GPU设备上并行执行。文献4-Y.Zhang,B.Solenthaler,R.Pajarola.Adaptive Sampling and Rendering of Fluids on the GPU[C]//Proceedings of IEEE/EG Symposium on Volume and Point-Based Graphics,Crete,137-146,2008.最早开始研究SPH并行化方法,设计了高效的邻域粒子搜索与数据结构算法,实现了自适应采样及表面粒子绘制的并行化,改工作为后续并行流体技术发展奠定了基础。文献5-E.Hermann E,B.Raffin,F.Faure.Interactive Physical Simulation onMulticore Architecture[C]//Proceedings of Eurographics Workhop on ParallelGraphics and Visualization,NY,1-10,2009.基于多核多处理器设备架构,提取了任务依赖关系图,将其划分到不同的处理器上执行,并结合OpenMP技术实现了有限元法在变形体上的并行计算,显著提高了计算性能。多核的CPU和众核的GPUs已经成为计算机中最重要的两种加速处理器。CUDA、OpenCL、Pthreads等并行设计语言,以及消息传递标准MPI的出现,使得基于多线程的并行计算在文献6-R.Thomas.Smoothed Particle Hydronamics in aMultithreaded Environment[R].Austria,2008中得到广泛的研究与应用。文献7-A.Mokos,D.Rogers.Multi-phase SPH Modelling of Violent Hydrodynamics on GPUs[J].Computer Physics Communications,196,304-316基于多GPUs系统研发了面向流体并行仿真的框架DualSPHysics,该框架实现了对SPH方法的并行化设计。然而该架构主要用于物理工程领域,场景结构单一,且没有复杂的交互,不合适图形学流体动画特效建模。
发明内容
本发明的技术解决问题:克服现有技术的不足,提供一种基于GPUs集群的并行流体交互仿真方法及系统,基于发明提出的交互仿真方法及系统可以满足用户高效应用仿真和快速构建。在场景构建方面,本发明提出的交互仿真方法及系统采用统一粒子建模的形式,既可以摆脱传统网格和粒子混合建模的复杂度,又可以方便场景物理精确交互及并行化。在精确物理交互中,设计了一种精确的流固耦合方法,有效的解决了穿透、重叠等虚假问题,可以满足稳定的物理交互。在并行化方面,搭建了基于GPUs集群的并行化平台,对粒子方法并行化结构和方式进行了高度抽象和设计,自适应的进行负载均衡及优化加速策略。此外本发明提出的交互仿真方法及系统具有易构建、轻量级、普适性等优点。
本发明提供了一种基于GPUs集群的流体交互仿真方法,其特点在于步骤如下:
(1)首先对3D流体场景模型进行粒子化;
(2)然后采用惩罚力和密度耦合的方式,计算流体与交互场景中的物体的相对位置,所述交互场景中的物体为固体;
(3)设计基于GPUs集群的并行结算器,根据计算模型的物理复杂度,自适应划分计算负载;
(4)基于硬件特性,通过异步数据传输策略,优化数据传输开销;
(5)最后基于光滑粒子流体动力学方法的并行特点,对统一消息传递层进行抽象,实现对流体动画场景的快速构建与模拟。
所述步骤(1)中,为了使流体与交互场景中的物体其他固体自由交互,在基于距离场采样的基础上,采用基于粒子移动速度的固体表面粒子提取算法,获得完全覆盖固体表面的边界粒子,完成对流体和固体的统一表示。
所述步骤(2)中,如果交互场景中的物体为动态固体,通过限制粒子密度的方式,单独计算流体与固体之间的相互压力,并校正固体的质心位置控制模型的相对位置,再通过修正密度计算方法控制不均区域的体积变化,产生一种排斥力,防止固体间的重叠现象。
所述步骤(3)中,针对GPUs集群的和粒子物理计算的特点,结合一维空间面片剖分与正交递归二分法(Orthogonal Recursive Bisection,ORB)相结合的策略将计算负载自适应的分配到相应的计算节点,保证了集群节点间的负载均衡。
所述步骤(4)中,为减少数据开销,利用GPU并行运算平台(Compute UnifiedDevice Architecture,CUDA)提供的多线程机制,针对粒子的特性,通过设计异步数据传输方式,优化数据传输开销。
所述步骤(5)中,基于集群的统一消息传递模式,面向粒子算法进行抽象和设计,定义了高级的开发接口,隐藏集群具体硬件细节,以组件和插件的形式封装引擎,使得开发者将精力主要投入算法本身的研发中。通过对统一消息传递层进行抽象,按照实例化与组件化方式进行快速构建与模拟。
本发明还提供了一种用于实现上述交互仿真方法的交互仿真系统,包括:
场景生成模块,用于对3D流体场景模型进行粒子化;
物理交互引擎模块,用于采用惩罚力和密度耦合的方式,计算流体与交互场景中的物体的相对位置,所述交互场景中的物体为固体;
GPUs集群系统模块,用于基于GPUs集群的并行结算器,根据计算模型的物理复杂度,自适应划分计算负载;
数据传输模块,用于通过异步数据传输,优化数据传输开销;
任务分发与调度模块,用于基于光滑粒子流体动力学方法的并行特点,对交互仿真系统中的统一消息传递层进行抽象,实现对流体动画场景的快速构建与模拟。
本发明与现有技术相比的优点在于:
(1)本发明实现GPUs集群上的粒子流体统一建模方法,针对流体物理建模及粒子间的交互,根据计算的特点,设计满足可以在GPUs集群上的相关方法,能够实现高效的数据交互及划分。
(2)仿真速度快,本发明的所有步骤均可以直接在GPUs集群上执行,最大利用了GPU单指令多线程(SIMT)的特点,并行程度高,设计了负载划分方法,并隐藏了额外开销,最大程度的提高仿真性能达到最优。
(3)支持大规模场景仿真,本发明能够满足亿万级别上的大粒子量流体并行仿真。
(4)本发明提供的交互仿真方法及系统框架面向易构建的角度,方便各种物理引擎的集成和高效配置。能够通过组件、插件等形式快速构建满足用户的应用示范。
(5)本发明算法可移植性强,本发明所述步骤均可以在满足CUDA的较低版本GPU硬件设备上实现,对硬件要求低,便于不同平台的移植。
附图说明
图1为本发明流体交互仿真方法的实现流程步骤图;
图2为物体表面粒子提取算法流程图;
图3A多GPUs集群下的空间划分示意图;
图3B单节点内ORB方法划分示意图;
图3C负载均衡正交递归二分树形结构示意图;
图4为开发接口框架设计示意图;
图5为采用本发明流体交互仿真方法及系统实现快速系统框架构建的一个实施例。
具体实施方式
如图1所示,本发明基于GPUs集群的流体交互仿真方法的实现流程步骤如下:
步骤S101,3D流体场景模型粒子化。为了确保流体和固体的逼真交互,生成固体粒子需要考虑以下两个特点:1)精确性。固体粒子必须完全覆盖模型表面,只有这样才可能有效的避免流体粒子穿越固体表面的现象。2)高效性。为了降低计算开支,在生成固体粒子时,只需要产生固体表面最外层的粒子。首先,我们利用模型构建的距离场得到初始表面粒子;然后使用MC(MarchingCube)方法在这些粒子上重建均匀的表面三角网格,每个三角网格的顶点位置表示为控制点,控制点直接控制固体表面,并约束其它粒子的运动,同时计算每个三角面片的法向量接着在三角网格内均匀采样,获取初始的固体粒子,这里称之为种子粒子。确定控制点和种子粒子后,计算种子粒子的初速度种子粒子在控制点以及周围种子粒子的影响下运动。使用种子粒子移动的方法能很精确的将粒子以任意的偏移量分布在固体模型的外侧、表面以及内部。计算初始,所有种子粒子有一个初始速度沿表面法向方向运动,种子点的速度受到周围控制点的影响而变化,当的值小于某一阈值时算法停止,此时所有的固体粒子近似各向同性得均匀分布在固体表面,算法流程如图2所示。物体表面粒子提取的过程如下:1)根据场景模型,构建模型内任意位置到表面的距离场,建立归一化的模型;2)使用表面生成方法(MC)在物体表面生成均匀的三角网格;3)根据生成的三角网格计算顶点(控制点)位置和法向量;4)在三角网格内进行均匀采样,获得种子粒子,计算其速度,当满足条件时得到物体表面粒子。其中更新的种子粒子的速度为式中表示粒子的速度,和分别是粒子在距离场和控制点约束下的速度。式中表示该粒子的距离场值,表示该粒子所在三角网格的法向量。种子粒子按照上面的算法计算,当满足约束时,最终的种子粒子被固定在交互场景中的物体表面上。
步骤S102,场景物理动态交互。在场景物理动态交互中,使用SPH方法处理边界,通常是在固体粒子上施加约束力的方式。然而,由于边界附近的粒子较少,容易导致流体粒子吸附在固体表面上,产生视觉误差。本框架在固体粒子表面添加一层凝固粒子来控制流体粒子吸附在固体表面,这些粒子在计算中看作流体,且保持静止不动。如果在固体粒子上施加的惩罚力过大容易造成固体粒子在边界处震荡并发生穿越现象,本发明为了避免流体粒子的穿越,首先基于惩罚力的方式进行计算,但在计算的过程中,要求固体粒子的初始密度要大于流体粒子的初始密度。然后,采用相同的方法更新固体粒子和流体粒子的物理量,只是在计算流体与固体之间相互压力上采用单独的方式进行计算。定义了作用于固体粒子上的压力公式和作用于流体上的压力公式,分别为和其中是固体的初始密度,为流体的初始密度。保持压力总是正数,因此会形成一个排斥力使得流体粒子向远离固体的方向运动,从而阻止流体粒子渗入到固体中。在更新粒子的位置后固体粒子相对于质心的位置会发生变化,因此需要对固体粒子的位置进行校正以强化固体粒子的刚性。采用的方法是,在仿真前计算所有固体粒子相对质心的位置当所有固体粒子更新后计算此时固体的质心位置。假设固体粒子具有相同的质量,则更新后质心的位置为其中N为固体粒子的总数量,是更新后固体粒子的位置,最终固体粒子的位置为:通过限制固体初始密度的方式避免了流体粒子的穿越固体的问题。由于密度计算的不均匀,当邻域内只存在固体粒子时会发生固体间重叠的问题,本框架首先对密度计算方式进行了修正,考虑了边界粒子对其他流体粒子的影响。因此,流体的密度被定义为:δi=∑Wij,它根据周围的物体自适应的调整密度为:最终流体的密度由自身与周围交互场景中的物体的边界粒子共同影响所得:ρ=ρfluid+ρboundary,Wij对应流体邻域内边界粒子的核函数。同时,在固体粒子高密度的采样区域上边界粒子的体积变小,在稀疏密度的区域边界粒子的体积变大,这里需要考虑边界粒子体积的贡献,边界粒子对流体粒子的体积贡献可用:ρ=ρfluid+Vbρboundary,其中Vb=1/δi表示边界粒子的体积。当边界粒子移动时,移动的粒子和所有邻域内的所有边界粒子的体积需要被重新计算以处理固体重叠的情况。
步骤S103计算模型并行化。计算模型并行化中,改进传统单GPU上的计算,针对GPUs集群的和粒子物理计算的特点,采用空间面片剖分与正交递归二分法(OrthogonalRecursive Bisection,ORB)相结合的策略将计算负载自适应的分配到相应的计算节点上执行。在集群节点之间采用如图3A所示的空间面片方式划分粒子数据到4个工作节点上,3B为单个节点内采用正交递归二分方法将数据划分到6个GPUs。3A图中白色区域表示内部粒子域,灰色区域表示边界粒子域,在每个时间步中,这些边界粒子需要被传输到相邻的GPUs节点中,双线表示分割的边界面。每个迭代步内,边界面依据计算量动态的达到负载均衡;同理每个GPUs节点也需要类似的数据交换与负载均衡计算。如图3B所示为ORB正交递归二分方式采用多层次的切割方式。沿场景空间X、Y、Z中的某一个方向将场景切割为两个长方体,然后在两个长方体中继续选择某一个方向切割为更小的两个长方体,如此切割下去直到子空间的数量和当前节点内GPUs数量相同。根据集群节点的数量划分仿真空间为连续的子空间后,基于光滑半径的大小,将子空间表示为规则的网格。粒子所属的网格索引根据哈希的方法计算,一列网格被称之为一层,一些连续的层组成了子空间,然后将子空间的粒子数据分配到相应的节点上执行。在单个节点内,相较于传统的一维分割方法,使用改进的ORB方法分割仿真空间可以得到更小的子空间交界面面积,也就意味着更小的传输量。为了满足每个节点及其GPUs间的负载均衡,依据每个节点及GPUs更新粒子属性的计算时间,传输一部分粒子从计算消耗大的GPUs到计算消耗小的GPUs上。考虑到粒子运动的相对缓慢性,将位于边界附近的粒子从一个GPUs传输到邻接的GPUs中,GPUs按照树形结构组织,如图3C所示。树中的叶节点为GPUs处理单元,非叶节点代表处理单元间的分界面。负载均衡算法逐层调整每个节点所表示的分界面的位置。对于相邻的两个GPUs,计算其分界面推移到不同位置时两个GPUs的物理量计算时间,时间差最小的分界面作为最合适的交互分界面,直到所有分界面都调整到最佳位置为止。
步骤S104数据传输及优化。数据传输及优化中,每个时间步中有两部分数据需要传输,一是每帧的计算结果,二是GPUs间与节点间需要交换的粒子。采用异步传输方式可以将计算与传输并行,以隐藏数据传输的时间;GPUs计算粒子场变量时需进行尽可能少的信息交换,以降低GPUs间带宽对总体性能的负面影响。在减少GPUs间通讯开销方面,引入临时粒子层,每个GPUs上除了包含对应的子空间粒子以外,为了计算边界附近的粒子还需设置厚度为半径倍数的临时粒子层,临时粒子位于图3A灰色区域范围内;每个GPUs需要将边界处自身一侧粒子的场变量值发送给其它GPUs,同时接收来自其它GPUs边界处另一侧粒子的场变量值以更新临时粒子的信息,以降低GPUs间的通讯量。在优化上,需要在计算内部区域粒子信息的同时完成GPUs间临时粒子的交换,并且优先计算靠近边界的两个子空间的粒子信息,最后采用异步传输的方式将边界粒子的数据发送到内存。
步骤S105框架抽象及快速构建。在交互仿真方法及实现仿真方法的系统框架抽象及快速构建中,为了高效构建流体动画应用,本本发明对并行加速平台的统一消息传递层进行抽象和设计,定义高级的开发接口。隐藏多机多GPUs的硬件细节,便于开发者将主要精力投入到算法本身的研究中。每个执行算法的程序定义为一个运行的实例,每个实例都保存当前运行时的上下文(HostContext),用于维护当前应用程序同集群消息的传递和数据的分发。在开发接口的设计中,客户端并不是直接与集群中的各个节点通信,而是通过控制器(Controller)的前端进行通信。控制器的角色相当于代理和解释器,通过解释客户端的消息异步完成任务的建立和分发。控制器后端根据负载异构的自动维护集群中的工作节点(Worker Node)。为了使交互仿真方法及系统框架更加灵活,使用组件架构,对于不同的仿真应用需求,通过编写组件扩展系统功能,方便集成和部署。如构建流-固耦合场景,包括流体粒子和固体粒子两类,其中固体粒子在同一个仿真场景中又包含若干个实例,这需要定义一个描述不同粒子的机制。采用粒子缓冲的概念以实现粒子系统的管理。如图4所示,从客户端的角度看,粒子缓冲是一个粒子属性的容器,初始化时用户通过添加不同类型的槽,描述不同的粒子类型,在算法执行时即生成不同类型的粒子缓冲实例。之后用户通过提交CUDA脚本的方式实现核函数的计算以及邻域内粒子的积分和插值等算法。在客户端建立上下文后,系统根据类型信息自动建立内部分布式存储的映射,根据用户配置选择合适的空间划分算法、建立加速结构,在仿真过程中通过系统控制器和加速平台通信完成存储分配。采用本发明流体交互仿真方法及系统实现快速系统框架构建的一个实施例如图5所示,该系统框架是建立在多机多GPUs之上的小型异构并行加速平台,由4-8个节点服务器构成,每个服务器内置4-6块GPUs,可以保证亿级规模的复杂粒子流体实时仿真。环境关注普适性和应用性,在满足基于物理的流体仿真任务基础上开放和共享计算资源,提供一个共享计算资源的服务环境,该环境可支持若干算法下的流体动画示范应用。统一消息层使用CUDA、OpenMP、MPI封装,构建能够满足分布式存储的可扩展并行计算服务集群,负责节点和GPUs之间的调度和计算的并行化。位于统一消息层之上的是引擎层,抽象为物理引擎和绘制引擎。抽象之后的框架显著特点就是以组件的形式提供服务,通过编写组件扩展系统功能。基于系统提供的脚本引擎,开发者可以在运行时动态的控制场景中的物体属性和行为。不同级别用户(权限)根据需求,合理配置场景所需硬件资源,选择合适模拟方法,利用环境所提供的功能(资源调度、作业分发、并行工具)实现对流体场景的快速构建。对于特殊需求,环境平台可以开放更加底层的接口,以支持用户更深入的配置和部署,构建专属的流体应用示范。
Claims (7)
1.一种基于GPUs集群的流体交互仿真方法,其特征在于:步骤包括:
(1)对3D流体场景模型进行粒子化;
(2)采用惩罚力和密度耦合的方式,计算流体与交互场景中的物体的相对位置,所述交互场景中的物体为固体;
(3)基于GPUs集群的并行结算器,根据计算模型的物理复杂度,自适应划分计算负载;
(4)通过异步数据传输,优化数据传输开销;
(5)基于光滑粒子流体动力学方法的并行特点,对统一消息传递层进行抽象,实现对流体动画场景的快速构建与模拟。
2.根据权利要求1所述的基于GPUs集群的流体交互仿真方法,其特征在于:所述步骤(1)中,为了使流体与交互场景中的物体自由交互,在基于距离场采样的基础上,采用基于粒子移动速度的固体表面粒子提取算法,获得完全覆盖固体表面的边界粒子,完成对流体和固体的统一表示。
3.根据权利要求1所述的基于GPUs集群的流体交互仿真方法,其特征在于:所述步骤(2)中,如果交互场景中的物体为动态固体,通过限制粒子密度单独计算流体与固体之间的相互压力,校正固体的质心位置控制模型的相对位置,通过修正密度计算方法控制不均区域的体积变化,产生一种排斥力,防止固体间的重叠现象。
4.根据权利要求1所述的基于GPUs集群的流体交互仿真方法,其特征在于:所述步骤(3)中,针对GPUs集群的和粒子物理计算的特点,结合一维空间面片剖分与正交递归二分法将计算负载自适应的分配到相应的计算节点,保证了集群节点间的负载均衡。
5.根据权利要求1所述的基于GPUs集群的流体交互仿真方法,其特征在于:所述步骤(4)中,基于GPU并行运算平台提供的多线程机制,针对粒子的特性,通过异步数据传输方式,优化数据传输开销。
6.根据权利要求1所述的基于GPUs集群的流体交互仿真方法,其特征在于:所述步骤(5)中,对统一消息传递层进行抽象,按照实例化与组件化方式进行快速构建与模拟。
7.一种基于GPUs集群的流体交互仿真系统,其特征在于,包括:
场景生成模块,用于对3D流体场景模型进行粒子化;
物理交互引擎模块,用于采用惩罚力和密度耦合的方式,计算流体与交互场景中的物体的相对位置,所述交互场景中的物体为固体;
GPUs集群系统模块,用于基于GPUs集群的并行结算器,根据计算模型的物理复杂度,自适应划分计算负载;
数据传输模块,用于通过异步数据传输,优化数据传输开销;
任务分发与调度模块,用于基于光滑粒子流体动力学方法的并行特点,对交互仿真系统中的统一消息传递层进行抽象,实现对流体动画场景的快速构建与模拟。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710972384.7A CN107657131A (zh) | 2017-10-18 | 2017-10-18 | 一种基于GPUs集群的流体交互仿真方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710972384.7A CN107657131A (zh) | 2017-10-18 | 2017-10-18 | 一种基于GPUs集群的流体交互仿真方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107657131A true CN107657131A (zh) | 2018-02-02 |
Family
ID=61118361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710972384.7A Pending CN107657131A (zh) | 2017-10-18 | 2017-10-18 | 一种基于GPUs集群的流体交互仿真方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107657131A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241742A (zh) * | 2019-12-27 | 2020-06-05 | 西安交通大学 | 一种多相流计算方法 |
CN111353261A (zh) * | 2020-02-19 | 2020-06-30 | 上海科技大学 | 浸没式边界高精度统计动力学流体仿真的gpu优化方法 |
CN113360187A (zh) * | 2021-04-22 | 2021-09-07 | 电子科技大学 | 一种基于CUDA与OpenMP的三维Kriging算法协同加速技术 |
CN113947003A (zh) * | 2021-10-15 | 2022-01-18 | 西安交通大学 | 一种面向热流耦合场景的粒子型无网格仿真系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2521113A1 (en) * | 2011-05-05 | 2012-11-07 | Siemens Aktiengesellschaft | Simplified smoothed particle hydrodynamics |
CN102778344A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院过程工程研究所 | 一种复杂流化系统整体动力学特性的快速预测方法 |
CN103035021A (zh) * | 2011-07-27 | 2013-04-10 | 梦工厂动画公司 | 动画特效的流体动力学框架 |
CN104360896A (zh) * | 2014-12-04 | 2015-02-18 | 北京航空航天大学 | 一种基于gpu集群的并行流体仿真加速方法 |
US20160117428A1 (en) * | 2014-10-24 | 2016-04-28 | Samsung Electronics Co., Ltd. | Method and apparatus for modeling a target object based on particles |
CN106898037A (zh) * | 2017-03-15 | 2017-06-27 | 山东师范大学 | 一种鱼群动画制作系统及其鱼群生成方法 |
-
2017
- 2017-10-18 CN CN201710972384.7A patent/CN107657131A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2521113A1 (en) * | 2011-05-05 | 2012-11-07 | Siemens Aktiengesellschaft | Simplified smoothed particle hydrodynamics |
CN102768698A (zh) * | 2011-05-05 | 2012-11-07 | 西门子公司 | 简化的光滑粒子流体动力学 |
CN102778344A (zh) * | 2011-05-12 | 2012-11-14 | 中国科学院过程工程研究所 | 一种复杂流化系统整体动力学特性的快速预测方法 |
CN103035021A (zh) * | 2011-07-27 | 2013-04-10 | 梦工厂动画公司 | 动画特效的流体动力学框架 |
US20160117428A1 (en) * | 2014-10-24 | 2016-04-28 | Samsung Electronics Co., Ltd. | Method and apparatus for modeling a target object based on particles |
CN104360896A (zh) * | 2014-12-04 | 2015-02-18 | 北京航空航天大学 | 一种基于gpu集群的并行流体仿真加速方法 |
CN106898037A (zh) * | 2017-03-15 | 2017-06-27 | 山东师范大学 | 一种鱼群动画制作系统及其鱼群生成方法 |
Non-Patent Citations (6)
Title |
---|
FENGQUAN ZHANG ET AL: "A particle model for fluid simulation on the multi-graphics processing unit", 《INTERNATIONAL JOURNAL OF NUMERICAL MODELLING》 * |
JUN ZHANG ET AL: "Rendering Snowing Scene on GPU", 《 2010 IEEE INTERNATIONAL CONFERENCE ON INTELLIGENT COMPUTING AND INTELLIGENT SYSTEMS (ICIS 2010)》 * |
XINGQUAN CAI ET AL: "Advanced GPU-Based State-Preserving Particle System", 《2008 7TH WORLD CONGRESS ON INTELLIGENT CONTROL AND AUTOMATION》 * |
万剑飞: "基于物理的流体交互仿真技术的研究与应用", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
聂霄: "不可压缩SPH流体的真实感模拟及其加速技术研究", 《中国博士学位论文全文数据库 基础科学辑》 * |
邵绪强 等: ""一种拉格朗日粒子流体的高效表面重建方法", 《图学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111241742A (zh) * | 2019-12-27 | 2020-06-05 | 西安交通大学 | 一种多相流计算方法 |
CN111241742B (zh) * | 2019-12-27 | 2021-11-19 | 西安交通大学 | 一种多相流计算方法 |
CN111353261A (zh) * | 2020-02-19 | 2020-06-30 | 上海科技大学 | 浸没式边界高精度统计动力学流体仿真的gpu优化方法 |
CN113360187A (zh) * | 2021-04-22 | 2021-09-07 | 电子科技大学 | 一种基于CUDA与OpenMP的三维Kriging算法协同加速技术 |
CN113360187B (zh) * | 2021-04-22 | 2022-11-04 | 电子科技大学 | 一种基于CUDA与OpenMP的三维Kriging算法协同加速方法 |
CN113947003A (zh) * | 2021-10-15 | 2022-01-18 | 西安交通大学 | 一种面向热流耦合场景的粒子型无网格仿真系统 |
CN113947003B (zh) * | 2021-10-15 | 2024-05-07 | 西安交通大学 | 一种面向热流耦合场景的粒子型无网格仿真系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Xu et al. | Collaborating CPU and GPU for large-scale high-order CFD simulations with complex grids on the TianHe-1A supercomputer | |
CN107657131A (zh) | 一种基于GPUs集群的流体交互仿真方法及系统 | |
Lysenko et al. | A framework for megascale agent based model simulations on graphics processing units | |
Mendina et al. | A general purpose parallel block structured open source incompressible flow solver | |
CN105787865A (zh) | 基于游戏引擎和gpu并行处理的分形图生成与渲染方法 | |
KR100980449B1 (ko) | 병렬 전역조명 렌더링 방법 및 시스템 | |
CN109067834B (zh) | 基于振荡式惯性权重的离散粒子群调度算法 | |
US20110282641A1 (en) | Method and system for real-time particle simulation | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
CN108845886A (zh) | 基于相空间的云计算能耗优化方法和系统 | |
Liu et al. | Task scheduling in cloud computing based on improved discrete particle swarm optimization | |
Xu et al. | Balancing cpu-gpu collaborative high-order cfd simulations on the tianhe-1a supercomputer | |
Xi et al. | Survey on smoothed particle hydrodynamics and the particle systems | |
Harding et al. | Structural form finding using zero-length springs with dynamic mass | |
Meister et al. | Parallel BVH construction using k-means clustering | |
CN115794330A (zh) | 一种云计算任务调度方法 | |
US11263060B2 (en) | Dynamic distribution of loads across heterogeneous computing structures in computational rendering | |
Lorek et al. | Parallel bird flocking simulation | |
Kosiachenko | Efficient GPU Parallelization of the Agent-Based Models Using MASS CUDA Library | |
Sikora et al. | A method for speeding up beam-tracing simulation using thread-level parallelization | |
Yang et al. | Physically-based tree animation and leaf deformation using CUDA in real-time | |
CN116911147B (zh) | 一种基于三维自适应划分的物质点仿真并行方法 | |
Mróz et al. | The use of GPGPU in continuous and discrete models of crowd dynamics | |
Van Den Oord et al. | Performance optimization and load-balancing modeling for superparametrization by 3D LES | |
Guo et al. | PHASE: An Environment for Parallel High-performance Agent-based Simulating |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20180202 |
|
WD01 | Invention patent application deemed withdrawn after publication |