非结构网格CFD共享存储并行处理方法和系统

文档序号:35278438发布日期:2023-08-31 21:45阅读:27来源:国知局
非结构网格CFD共享存储并行处理方法和系统

本发明属于非结构化网格cfd及高性能计算,涉及一种非结构网格cfd共享存储并行处理方法和系统。


背景技术:

1、为了应对能源约束和满足高性能需求,越来越多地采用众核处理器或异构加速器来构建百万兆次级的顶级高性能计算(hpc)系统。目前,共享内存计算节点可能包含划分为多个非统一内存访问(numa)域的cpu,总共有数百个cpu内核或硬件线程。同时,当前硬件设计中的某些资源(如内存或每个内核的通信带宽)没有相应地扩展甚至减少。这种不平衡的硬件趋势将在可预见的未来盛行,对开发高效和可扩展的hpc应用程序提出严峻挑战。除了从程序中挤出足够的并行度来使用海量内核之外,还应该谨慎处理由于缓存、内存、通信或连贯链路等受限资源的争用而可能导致的性能瓶颈。根据amdahl定律,任何瓶颈都会随着多核处理器计算能力的提高而被放大;并行算法和编译器、运行时等工具都在努力和发展以克服前述不平衡的趋势。

2、随着高性能计算技术的发展,以计算流体力学(cfd)为代表的数值模拟软件已经在众多应用领域成为一种强大的计算工具,典型的应用领域包括飞机和车辆气动力学、船舶的流体动力学、内燃发动机、燃气轮机、环境工程和生物医学工程等。非结构网格能够适应复杂外形需求,在计算精度方面也比结构网格高很多,是目前cfd工程应用中最为广泛采用的一类网格。与结构网格cfd相比,基于非结构网格的cfd软件工具通常需要显式存储网格的拓扑信息,数据结构较为复杂,计算过程中需要间接索引,导致访存效率很低,同时由于循环内部的数据竞争,难以实现共享存储结点内高效的细粒度(如线程并行和向量化并行等)并行计算。例如在非结构网格cfd软件工具中,求解器的计算过程涉及到通量的计算,在计算面(face)的通量时会带入面所接触的两个单元(cell)的数据,由单元编号间接访问存储单元数据,在直接使用共享内存并行化策略时,会出现多个面对同个单元进行访存,形成数据冲突,故传统非结构网格cfd仍存在计算效率不高的技术问题。


技术实现思路

1、针对上述传统方法中存在的问题,本发明提出了一种非结构网格cfd共享存储并行处理方法以及一种非结构网格cfd共享存储并行处理系统,能够提高非结构网格cfd的并行计算效率,实现非结构网格的大型仿真系统大规模并行。

2、为了实现上述目的,本发明实施例采用以下技术方案:

3、一方面,提供一种非结构网格cfd共享存储并行处理方法,包括步骤:

4、调用网格剖分工具按照仅剖分物理分割区的剖分策略,对待求解的航行器非结构网格逐层进行递归剖分并对剖分后生成的各个子网格分区内的网格实体进行重排序;网格实体包括非结构网格单元、网格面和网格结点;

5、将每次递归剖分和重排序后的各个子网格分区存储在树数据结构meshtree中,直到非结构网格的分区网格数小于特定阈值;

6、根据设计的基于meshtree遍历的并行算法,对构建的树数据结构meshtree进行递归遍历的并行计算,得到航行器的特性预测结果。

7、另一方面,还提供一种非结构网格cfd共享存储并行处理系统,包括:

8、剖分排序模块,用于调用网格剖分工具按照仅剖分物理分割区的剖分策略,对待求解的航行器非结构网格逐层进行递归剖分并对剖分后生成的各个子网格分区内的网格实体进行重排序;网格实体包括非结构网格单元、网格面和网格结点;

9、树构建模块,用于将每次递归剖分和重排序后的各个子网格分区存储在树数据结构meshtree中,直到非结构网格的分区网格数小于特定阈值;

10、树执行模块,用于根据设计的基于meshtree遍历的并行算法,对构建的树数据结构meshtree进行递归遍历的并行计算,得到航行器的特性预测结果。

11、又一方面,还提供一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的非结构网格cfd共享存储并行处理方法的步骤。

12、再一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的非结构网格cfd共享存储并行处理方法的步骤。

13、上述技术方案中的一个技术方案具有如下优点和有益效果:

14、上述非结构网格cfd共享存储并行处理方法和系统,通过调用网格剖分工具按照仅剖分物理分割区的剖分策略,对待求解的航行器非结构网格逐层进行递归剖分并对剖分后生成的各个子网格分区内的网格实体进行重排序,并将每次递归剖分和重排序后的各个子网格分区存储在树数据结构meshtree中,在该仅剖分物理分割区的剖分策略下,普通分区不再分解,仅对物理分割区不断进行递归分解,直到非结构网格的分区网格数小于特定阈值,然后根据设计的基于meshtree遍历的并行算法,对构建的树数据结构meshtree进行递归遍历的并行计算,从而高效实现非结构网格cfd的并行计算,高效输出航行器的特性预测结果。

15、相比较于现如今的网格剖分方法,上述方案通过设置物理分割区,使得各个分区之间的数据不存在冲突,可以实现同时消除多种循环的数据依赖,实现代码大面积的并行加速,大幅提高了非结构网格cfd的并行计算效率,从而实现非结构网格的大型仿真系统大规模并行。此外,在通用性上,一方面上述方案可集成封装为一个通用的并行代码库,能够很好地兼容空气动力学、水动力学、反应堆热工水力、发动机内流仿真以及结构力学和电磁学等多种应用领域软件的开发;另一方面这种高层次抽象增加了方法对应的软件代码的可读性和可维护性,开发人员不需要深入理解具体的应用领域计算方法就能很容易找到各个层次需要维护和开发的接口。



技术特征:

1.一种非结构网格cfd共享存储并行处理方法,其特征在于,包括步骤:

2.根据权利要求1所述的非结构网格cfd共享存储并行处理方法,其特征在于,调用网格剖分工具按照仅剖分物理分割区的剖分策略,对待求解的航行器非结构网格逐层进行递归剖分并对剖分后生成的各个子网格分区内的网格实体进行重排序的步骤,包括:

3.根据权利要求2所述的非结构网格cfd共享存储并行处理方法,其特征在于,设计的基于meshtree遍历的并行算法为采用openmp parallel for或者cuda编程模型对所述树数据结构meshtree的树结点进行遍历,调度执行各叶子结点。

4.根据权利要求3所述的非结构网格cfd共享存储并行处理方法,其特征在于,对所述树数据结构meshtree的树结点进行递归遍历的过程中,采用的遍历顺序包括forward遍历顺序。

5.根据权利要求3所述的非结构网格cfd共享存储并行处理方法,其特征在于,对所述树数据结构meshtree的树结点进行递归遍历的过程中,采用的遍历顺序包括backward遍历顺序。

6.根据权利要求3所述的非结构网格cfd共享存储并行处理方法,其特征在于,对所述树数据结构meshtree的树结点进行递归遍历的过程中,采用的遍历顺序包括nodependence顺序。

7.根据权利要求4至6任一项所述的非结构网格cfd共享存储并行处理方法,其特征在于,对所述树数据结构meshtree的树结点进行递归遍历的过程中,输入参数为实际的计算内核的函数指针。

8.一种非结构网格cfd共享存储并行处理系统,其特征在于,包括:

9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的非结构网格cfd共享存储并行处理方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的非结构网格cfd共享存储并行处理方法的步骤。


技术总结
本申请涉及非结构网格CFD共享存储并行处理方法和系统,该方法包括调用网格剖分工具按照仅剖分物理分割区的剖分策略,对待求解的航行器非结构网格逐层进行递归剖分并对剖分后生成的各个子网格分区内的网格实体进行重排序;网格实体包括非结构网格单元、网格面和网格结点;将每次递归剖分和重排序后的各个子网格分区存储在树数据结构MeshTree中,直到非结构网格的分区网格数小于特定阈值;根据设计的基于MeshTree遍历的并行算法,对构建的树数据结构MeshTree进行递归遍历的并行计算,得到航行器的特性预测结果。大幅提高了非结构网格CFD计算的并行效率。

技术研发人员:徐传福,邱昊中,陈世钊,丁越,车永刚,郭晓威,高翔,李超,张翔,林拥真,汪青松,戴未希,周正
受保护的技术使用者:中国人民解放军国防科技大学
技术研发日:
技术公布日:2024/1/14
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1