CN110941894B - 一种基于超级计算机的大规模流体仿真的原位可视化方法 - Google Patents
一种基于超级计算机的大规模流体仿真的原位可视化方法 Download PDFInfo
- Publication number
- CN110941894B CN110941894B CN201911073282.7A CN201911073282A CN110941894B CN 110941894 B CN110941894 B CN 110941894B CN 201911073282 A CN201911073282 A CN 201911073282A CN 110941894 B CN110941894 B CN 110941894B
- Authority
- CN
- China
- Prior art keywords
- data
- visualization
- flow field
- rho
- momentum
- 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.)
- Active
Links
- 239000012530 fluid Substances 0.000 title claims abstract description 40
- 238000011065 in-situ storage Methods 0.000 title claims abstract description 29
- 238000004088 simulation Methods 0.000 title claims abstract description 26
- 238000007794 visualization technique Methods 0.000 title claims abstract description 16
- 238000012800 visualization Methods 0.000 claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 23
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 230000000007 visual effect Effects 0.000 claims abstract description 10
- 230000000903 blocking effect Effects 0.000 claims abstract description 5
- 238000007906 compression Methods 0.000 claims description 14
- 230000006835 compression Effects 0.000 claims description 13
- 230000008569 process Effects 0.000 abstract description 15
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000013144 data compression Methods 0.000 abstract description 6
- 230000011218 segmentation Effects 0.000 abstract description 6
- 238000009877 rendering Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 239000002245 particle Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 238000012805 post-processing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006872 improvement Effects 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
- 238000012545 processing Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于超级计算机的大规模流体仿真的原位可视化方法,包括如下步骤:步骤一,从计算流体力学的模拟程序中获取关键时间步的网格数据与流场数据xg和xw;步骤二,通过数据压缩技术完成对流场数据xw中的密度rho,X‑动量rho‑u,Y‑动量rho‑v,Z‑动量rho‑w和总能p的压缩;步骤三,将网格数据xg以及流场数据xw传输给可视化程序并解压缩;步骤四,根据数据分割算法,将数据合理分配到不同节点上进行可视化;步骤五,将上一步中所得到的分块结果进行合并,绘制成完整的可视化结果,并继续步骤一,获取下一个关键时间步的相关数据,实现大规模流体数据的原位可视化过程。
Description
技术领域
本发明涉及原位可视化方法,特别涉及一种基于超级计算机的大规模流体仿真的原位可视化方法。
背景技术
计算流体力学(Computational Fluid Dynamic,简称CFD)是21世纪流体力学领域的重要技术之一,使用数值方法在计算机中对流体力学的控制方程进行求解,从而可预测流场的流动。目前在工程领域方面CFD方法已经得到了广泛的应用,其中包括了对于飞机机翼模型的空气流动模型求解,涡轮风扇发动机的进气流场求解等等。其中,在研究领域中广泛应用的CFL3D包含了众多流体模拟方程,并且自从1980年以来,CFL3D被用来支持多项NASA计划,其在计算流体力学领域做出了巨大贡献。
在可视化领域中,随着时间的演变,数据可视化大体分为:科学可视化、信息可视化和可视分析三大类。其中针对流场的可视化归属于科学可视化之中,近些年针对流场进行可视化的方法层出不穷,但是随着流场模拟的规模逐渐增大,传统的可视化方法和工具逐渐不能满足流场可视化的需要。尤其是随着超级计算机的发展,使得计算能力不断的提高,因此所能计算的流场数量级也成指数级增长,但是由于硬件的限制,超级计算机的I/O速度无法匹配计算速度的增长,这也就导致了计算和存储之间的瓶颈,从而极大程度上限制了大规模流体模拟的可视化研究。
目前,针对该问题提出的一种解决方案为原位可视分析,即将模拟过程与可视化过程相结合。不同于传统的后处理可视化,原位可视分析尽可能的避免了I/O操作,将模拟过程中所产生的数据通过内存直接传送给可视化过程进行可视化,不通过磁盘作为中介,从而避免了后处理可视化中的I/O操作。
但是传统的原位可视分析方法,只是一种宽泛的定义,无法针对具体的问题给出具体的解决方案,因此需要一种方法,专门针对大规模流体力学的原位可视化方法,来针对流体力学进行原位可视化。
发明内容
本发明的目的在于解决大规模流体模拟中的原位可视化问题,提供了一种基于超级计算机的大规模流体仿真的原位可视化方法,通过对流体模拟中所得到的密度、动量、总能等属性进行压缩,从而有效的降低数据传输时的带宽需求;通过将数据使用受约束的K-D树进行并行渲染,从而在一定程度上解决了负载均衡的问题。同时,本发明支持在大规模集群环境中,对流体模拟问题进行原位可视化。
本发明的技术方案:
一种基于超级计算机的大规模流体仿真的原位可视化方法,包括如下步骤:
步骤一:从计算流体力学的模拟程序中获取关键时间步的网格数据与流场数据xg和xw;
步骤二:通过数据压缩技术完成对流场数据xw中的密度rho,X-动量rho-u,Y-动量rho-v,Z-动量rho-w和总能p的压缩;
步骤三:将网格数据xg以及流场数据xw传输给可视化程序并解压缩;
步骤四:根据数据分割算法,将数据合理分配到不同节点上进行可视化;
步骤五:将上一步中所得到的分块结果进行合并,绘制成完整的可视化结果,并继续步骤一,获取下一个关键时间步的相关数据。
所述步骤二中压缩算法为fpzip的浮点数压缩算法。
所述步骤四中负载均衡算法为受约束的K-D树。
有益效果
与现有技术相比,本发明具有的优点:
第一:本发明是专门针对流体力学模拟所设计的原位可视化方法,对于各种流体力学的模型具有一定的通用性,并且本发明在测试中所使用的模拟程序来自于CFL3D,在国内以及国际上具有较高的实用性;
第二:本发明可以通过调整输出的关键步数,从而达到实时展现可视化结果的效果,这使得流体方面相关的领域专家可以观察流体模拟的中间过程,便于对模拟程序做出相应的调整;
第三:本发明通过在集群环境上测试,可以顺利完成大规模流体模拟的原位可视化技术,验证了该发明的有效性。
第四:本发明成功的将数据压缩算法与数据分割算法相结合,在一定程度上提升了原位可视化的效率。
附图说明
图1为本发明一种基于超级计算机的大规模流体仿真的原位可视化方法流程图。
图2为本发明最终的效果图。
具体实施方式
下面通过具体实例和附图对本发明作进一步说明。本发明的实例是为了更好地使本领域的技术人员更好的理解本发明,并不对本发明作任何的限制。
如图1所示,本发明提供一种基于超级计算机的大规模流体仿真的原位可视化方法,包括如下步骤:
步骤一:从计算流体力学的模拟程序中获取关键时间步的网格数据与流场数据xg和xw;
计算流体力学是一个十分复杂的过程,通过数值计算方法在计算机中对流体力学的控制方程进行求解,从而进一步预测流场的流动,而在流体力学的计算过程中,往往需要通过多次迭代来求得下一步的结果,但是在绝大部分的流体计算过程中,都只会在模拟结束之后生成最终结果,因此在计算过程中所产生的各种中间数据往往会被忽略掉,而原位可视化则正是对这些中间过程中的关键步进行实时的可视化,使得领域专家可以更好的观察流体的运动状态。
为了实现基于超级计算机的大规模流体仿真的原位可视化方法,同时考虑到在流体力学的模拟中通常所使用的语言为Fortran,因此在步骤一中,需要首先编写Fortran与C++之间的接口文件,通过接口函数将关键timestep中的有用信息提取出来,在本发明中,提供了getTimeStep,p,gR,getXwXg四个接口函数,其中getTimeStep用来获取时间步信息、p用来获取自由流马赫数、攻角、雷诺数、时间等属性信息、gR用来获取网格的范围、getXwXg用来获取结构化网格的信息以及密度、动量、总能等属性信息。通过共享内存空间的设计,在调用接口函数时,将可视化所需要的数据存储到共享内存空间中。
步骤二:通过数据压缩技术完成对流场数据xw中的密度rho,X-动量rho-u,Y-动量rho-v,Z-动量rho-w和总能p的压缩;
考虑到从模拟程序中所提取出来的网格信息xg和流场属性信息xw均需要传输给可视化模块,其中xg为可视化模块提供基本的网格信息,xw为可视化模块提供详细的流场信息,并通过设置合理的转换函数将xw更加直观的展现出来,为了降低对于共享内存空间的需求,在数据传输之前将与流场属性相关的数据进行压缩处理,然后再将压缩之后的结果传输给可视化部分。考虑到与流畅属性相关的数据绝大部分为浮点数据,在本发明中采用了数据压缩技术,例如通过fpzip将数据进行压缩可以将40,835,124字节的数据压缩至12,229,637字节,压缩率高达29.95%,在保持较高的压缩率的同时,压缩速度也能够被整个原位可视化方法所接受,压缩40,835,124字节的数据只需要0.55s,压缩速率可以达到79MB/s。
步骤三:将网格数据xg以及流场数据xw传输给可视化程序并解压缩;
在步骤一中,成功的将网格数据以及流场数据从模拟程序中提取出来,然而提取出来的数据是以数组的形式存储在共享内存空间中,因此可视化模块所接收到的xg以及解压后的xw也为数组的形式。考虑到本发明中所使用的可视化工具库为VTK,所以需要将数组形式的xg以及xw转换成VTK可识别的vtkObject形式,便于后续可视化管线的建立。因此,在本发明中提供了array2grid函数,成功的将数组形式的xg和xw转换成VTK专门处理结构化网格的类vtkStructuredGrid。
步骤四:根据受数据分割算法,将数据合理分配到不同节点上进行可视化;
考虑到在实际情况中,流体模拟计算的规模往往都十分的庞大,因此在本发明中使用了并行渲染的手段,将流体数据分配到各个节点上进行分开绘制。但是并行渲染存在的一个很大的问题是负载均衡的问题,如何能够更好的将任务分配给每个节点是必须要考虑的问题,因此本发明采用了数据分割算法。例如受约束的K-D树算法是基于K-D树算法所做出的相应改进,传统的K-D树分解算法会定期将粒子进行进程的重新分配,每一个进程都会被指派一个固定的分区,每一个进程负责K-D树的一个节点,K-D树算法通过将粒子不断的重新分配从而完成负载均衡的操作。但是在传统的K-D树算法中,每次重新分配都要进行大量的数据移动以及拷贝工作,因此并不是十分适用于集群环境中。
受约束的K-D树算法则较为完美的解决了这个问题,在改进的算法中,每个进程所能访问的粒子范围是受限的,这样在粒子重新分配的时候就极大程度上避免了某个进程在所有的数据中查找粒子的现象,每个进程只需要负责自己相应的区域即可,从而减少了数据的移动和拷贝次数。
步骤五:将上一步中所得到的分块结果进行合并,绘制成完整的可视化结果,并继续步骤一,获取下一个关键时间步的相关数据。
步骤五与上一步紧密相连,在上一步中,本发明成功的将流体数据分配到各个节点进行计算渲染,在各个节点渲染完之后,需要主节点再将各个节点的渲染结果进行收集然后进行合并,最终形成该timestep完整的可视化结果。
本发明利用数据压缩技术完成对流场数据的压缩过程,从而减少共享内存空间所需的大小;利用数据分割技术解决并行渲染之中的负载均衡问题,从而提升原位可视化的效率。传统的原位可视化方法并没有针对流场等特定问题的特定解决方案,因此在大多数情况下,原位可视化技术并没有实际的应用到各个场景中。但是由于随着计算能力的不断提高,计算规模的不断扩大,传统的后处理可视化越来越不能满足人们的需要,因此原位可视化技术成为了一种不可或缺的手段。
应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员来说,可以加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (3)
1.一种基于超级计算机的大规模流体仿真的原位可视化方法,其特征在于,包括如下步骤:
步骤一:从流体力学的模块中获取关键时间步的网格数据与流场数据xg和xw;
步骤二:通过压缩算法完成对流场数据xw中的密度rho,X-动量rho-u,Y-动量rho-v,Z-动量rho-w和总能p的压缩;
步骤三:将网格数据xg以及流场数据xw传输给可视化模块并进行解压缩;
步骤四:根据负载均衡算法将流场数据分配到不同节点上进行并行绘制;
步骤五:将并行绘制所得到的分块结果进行合并,绘制成完整的可视化结果。
2.根据权利要求1所述一种基于超级计算机的大规模流体仿真的原位可视化方法,其特征在于,所述步骤二中压缩算法为fpzip的浮点数压缩算法。
3.根据权利要求1所述一种基于超级计算机的大规模流体仿真的原位可视化方法,其特征在于,所述步骤四中负载均衡算法为受约束的K-D树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073282.7A CN110941894B (zh) | 2019-11-05 | 2019-11-05 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911073282.7A CN110941894B (zh) | 2019-11-05 | 2019-11-05 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110941894A CN110941894A (zh) | 2020-03-31 |
CN110941894B true CN110941894B (zh) | 2024-02-06 |
Family
ID=69906233
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911073282.7A Active CN110941894B (zh) | 2019-11-05 | 2019-11-05 | 一种基于超级计算机的大规模流体仿真的原位可视化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110941894B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112116683B (zh) * | 2020-08-03 | 2022-07-29 | 天津大学 | 一种并行绘制中进行图像合成的方法 |
CN117473798B (zh) * | 2023-12-26 | 2024-05-14 | 国家超级计算天津中心 | 仿真项目管理方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003091740A (ja) * | 2001-09-17 | 2003-03-28 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
CN104268943A (zh) * | 2014-09-28 | 2015-01-07 | 北京航空航天大学 | 一种基于欧拉-拉格朗日耦合方法的流体仿真方法 |
CN106202522A (zh) * | 2016-07-22 | 2016-12-07 | 北京大学 | 一种流场积分曲线的复用方法及*** |
WO2017084106A1 (zh) * | 2015-11-20 | 2017-05-26 | 田川 | 一种数值模拟飞行器流场的***及方法 |
-
2019
- 2019-11-05 CN CN201911073282.7A patent/CN110941894B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003091740A (ja) * | 2001-09-17 | 2003-03-28 | Namco Ltd | 画像生成システム、プログラム及び情報記憶媒体 |
CN104268943A (zh) * | 2014-09-28 | 2015-01-07 | 北京航空航天大学 | 一种基于欧拉-拉格朗日耦合方法的流体仿真方法 |
WO2017084106A1 (zh) * | 2015-11-20 | 2017-05-26 | 田川 | 一种数值模拟飞行器流场的***及方法 |
CN106202522A (zh) * | 2016-07-22 | 2016-12-07 | 北京大学 | 一种流场积分曲线的复用方法及*** |
Non-Patent Citations (2)
Title |
---|
基于GPU带有复杂边界的三维实时流体模拟;柳有权;刘学慧;吴恩华;;软件学报(第03期);全文 * |
建立包含颞下颌关节下颌骨双侧下颌支矢状劈开内固定后的有限元模型;马文;侯敏;宋大立;杨静文;戴智;程家龙;柴国良;周卫源;张瑞泽;;中国组织工程研究(第42期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110941894A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mandikal et al. | Dense 3d point cloud reconstruction using a deep pyramid network | |
Guo et al. | Scalable multivariate volume visualization and analysis based on dimension projection and parallel coordinates | |
Ma et al. | In-situ processing and visualization for ultrascale simulations | |
Patwary et al. | BD-CATS: big data clustering at trillion particle scale | |
CN110941894B (zh) | 一种基于超级计算机的大规模流体仿真的原位可视化方法 | |
Liu et al. | Point mamba: A novel point cloud backbone based on state space model with octree-based ordering strategy | |
CN114757347A (zh) | 低比特量化神经网络加速器实现方法和*** | |
US10943037B2 (en) | Generating a CAD model from a finite element mesh | |
CN109753682B (zh) | 一种基于gpu端的有限元刚度矩阵模拟方法 | |
Kress et al. | Preparing for in situ processing on upcoming leading-edge supercomputers | |
CN104463934A (zh) | 一种“质点-弹簧”***驱动的点集模型动画自动生成方法 | |
CN106846457B (zh) | 一种ct切片数据可视化重构的八叉树并行构造方法 | |
Kirby et al. | Visualization and data analytics challenges of large-scale high-fidelity numerical simulations of wind energy applications | |
CN112380764A (zh) | 一种在有限视图下的气体场景端到端快速重建方法 | |
Frascarelli et al. | High-performance computing of self-gravity for small solar system bodies | |
CN112948643B (zh) | 一种基于线程并行的结构化网格流线积分方法 | |
CN116090280A (zh) | 一种盾构机刀盘的动态力学性能可视化方法 | |
Duque et al. | NASA CFD vision 2030 visualization and knowledge extraction: panel summary from AIAA AVIATION 2015 conference | |
Zhang et al. | High-performance zonal histogramming on large-scale geospatial rasters using gpus and gpu-accelerated clusters | |
Agrawal et al. | Analysis of clustering algorithm of weka tool on air pollution dataset | |
US8270742B1 (en) | Data compression for computer-aided design systems | |
Auber et al. | Improved efficiency of spring embedders: Taking advantage of gpu programming | |
Duque et al. | Ifdt–intelligent in-situ feature detection, extraction, tracking and visualization for turbulent flow simulations | |
Dorelli et al. | Deep learning for space weather prediction: Bridging the gap between heliophysics data and theory | |
US11979174B1 (en) | Systems and methods for providing simulation data compression, high speed interchange, and storage |
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 |