CN113791912B - 基于mpi+x的dsmc并行计算方法、设备及介质 - Google Patents

基于mpi+x的dsmc并行计算方法、设备及介质 Download PDF

Info

Publication number
CN113791912B
CN113791912B CN202111333599.7A CN202111333599A CN113791912B CN 113791912 B CN113791912 B CN 113791912B CN 202111333599 A CN202111333599 A CN 202111333599A CN 113791912 B CN113791912 B CN 113791912B
Authority
CN
China
Prior art keywords
mpi
parallel
dsmc
partition
grid
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
Application number
CN202111333599.7A
Other languages
English (en)
Other versions
CN113791912A (zh
Inventor
邓亮
代喆
丁鑫
王昉
赵丹
王岳青
陈呈
周永国
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Original Assignee
Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Computational Aerodynamics Institute of China Aerodynamics Research and Development Center filed Critical Computational Aerodynamics Institute of China Aerodynamics Research and Development Center
Priority to CN202111333599.7A priority Critical patent/CN113791912B/zh
Publication of CN113791912A publication Critical patent/CN113791912A/zh
Application granted granted Critical
Publication of CN113791912B publication Critical patent/CN113791912B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于MPI+X的DSMC并行计算方法、设备及介质,其中方法包括以下步骤:根据计算的节点数目和节点内可用CPU核数对网格进行分区,将其划分为多个独立的分区文件;初始化MPI即粗粒度多进程,各进程载入网格数据;各进程对载入的所述网格数据分别进行相应的预处理;各进程分别启用多线程并行计算各自分区内的粒子运动;各进程分别对各自分区内的粒子索引进行排序编号;各进程分别对各自分区内的粒子进行碰撞计算;各进程分别对各自的子区域流场性质进行采样;迭代步数如果达到阈值,则进行相应的后处理并输出结果文件。本发明将粗粒度多进程与细粒度多线程有效结合,可以大大减少通信量和通信次数,有效提升并行效率。

Description

基于MPI+X的DSMC并行计算方法、设备及介质
技术领域
本发明涉及高性能计算技术领域,尤其涉及一种基于MPI+X的DSMC并行计算方法、设备及介质。
背景技术
直接模拟蒙特卡洛(Direct Simulation Monte Carlo, DSMC)方法由Bird提出(Bird G A,Direct simulation and the Boltzmann equation[J]. 1970),该方法是目前求解稀薄气体动力学领域真实气体流动问题中唯一有效的选择。同时,非结构网格具有对复杂外形的高度适体性,通用性高,已成为DSMC方法的主流。然而,非结构DSMC方法的计算量十分巨大,导致DSMC在工程应用中成为一项十分耗时和昂贵的工作。因此,基于高性能计算平台,开展DSMC并行计算研究具有较好的实际应用价值。
传统的DSMC并行方法是采用区域分解的方式进行并行计算,以网格区块为组织单元,并行MPI进程或OpenMP线程负责若干网格区块的计算,按照网格区块进行循环处理。王学德基于MPI的主从模式,实现了非结构DSMC并行计算,使用32核进行计算获得了23.82的加速比(王学德. 高超声速稀薄气流非结构网格DSMC及并行算法研究[D]. 2006.)。黄飞等人发展了基于对等模式的非结构DSMC并行方法,与主从模式相比,对等模式的计算开销更少、并行效率更高,使用32核获得了65%左右的并行效率(黄飞,苗文博,程晓丽,等. 一种DSMC方法的并行策略[J]. 2014)。李学东等人基于OpenMP共享内存并行编程模型,实现了非结构DSMC的细粒度OpenMP并行计算,使用双核Intel(R) Xeno(TM)处理器实现了约为1.86的加速比(李学东,王保国. 稀薄气体高超声速流动的非结构DSMC并行化计算[J].2010)。Da Gao等人研究了三维DSMC线程级OpenMP并行算法设计及其优化方法,在双核Intel Core2 Duo CPU E6750和四核Intel Xeon Quad Core CPU X5550上分别取得了1.99的加速比和3.79的加速比(DA GAO, THOMAS E. SCHWARTZENTRUBER. Optimizations andOpenMP implementation for the direct simulation Monte Carlo method[J].2011)。然而,在同构体系架构下,已有工作的并行规模较小,并行算法与硬件体系架构的适配程度有待进一步提高。
GPU作为通用计算设备具有较长的历史,国内外学者结合GPU体系结构的特征和DSMC算法的特点,设计了多种GPU并行算法。Gladkov基于统一计算设备架构(ComputeUnified Device Architecture, CUDA)编程模型,设计了适合GPU的高效随机数生成算法,优化了网格边界条件判断算法,实现了DSMC方法的GPU并行计算,相较于Intel Core i7CPU单核,单张Tesla C2050 GPU并行加速比最高可达10倍(Gladkov D , Tapia J J,Alberts S , et al. Graphics Processing Unit based direct simulation MonteCarlo[J].2012)。Su等人基于MPI-CUDA并行编程模型,实现了面向异构平台的大规模DSMC并行算法,使用3000万仿真粒子的二维算例进行计算,与Intel Xeon X5670 CPU单核相比,单张M2070 GPU和16张M2070 GPU的加速比分别为15和185(Su C C , Smith M R , Kuo FA , et al. Large-scale simulations on multiple Graphics Processing Units(GPUs) for the direct simulation Monte Carlo method[J].2012)。Kashkovsky等人提出了基于多GPU的DSMC并行方法,最大实现了48张GPU卡的并行计算,与Intel Xeon E5420CPU单核相比,单张M2090 GPU的加速比为30(Kashkovsky, Alexander. 3D DSMCComputations on a Heterogeneous CPU-GPU Cluster with a Large Number of GPUs[J].2014)。Goldsworthy提出了自适应网格下的DSMC异构GPU并行算法,在1300万仿真粒子的无反应流算例中,在单张Tesla C2050 GPU上可获得20倍的加速比(Goldsworthy, M. J. A GPU-CUDA based direct simulation Monte Carlo algorithm for real gas flows[J].2014)。在异构体系架构下,已有工作主要是基于CUDA编程模型的结构网格DSMC应用的GPU并行计算,应用范围有限,可移植性较差。此外,针对非结构网格DSMC应用,研究基于OpenACC编程模型异构并行算法的相关工作较少。
发明内容
为了解决上述问题,本发明提出一种基于MPI+X的DSMC并行计算方法、设备及介质,将粗粒度多进程MPI与细粒度多线程有效结合,充分利用硬件特性,可以大大减少通信量和通信次数,有效提升并行效率,降低DSMC的计算成本。
本发明的目的是通过以下技术方案实现的:
一种基于MPI+X的DSMC并行计算方法,包括以下步骤:
步骤1、根据计算的节点数目和节点内可用CPU核数对网格进行分区,将其划分为多个独立的分区文件;
步骤2、初始化MPI即粗粒度多进程,各进程载入网格数据;
步骤3、各进程对载入的所述网格数据分别进行相应的预处理,若为新的计算,各进程初始化子区域流场;若为续算,则各进程根据标识信息读取本进程的流场信息及仿真粒子信息;
步骤4、各进程分别启用多线程并行计算各自分区内的粒子运动;
步骤5、各进程分别对各自分区内的粒子索引进行排序编号;
步骤6、各进程分别对各自分区内的粒子进行碰撞计算;
步骤7、各进程分别对各自的子区域流场性质进行采样;
步骤8、迭代步数如果达到阈值,则各进程按进程号分别向临时文件中输出本进程的所有网格及仿真粒子的相关信息,同时将各自的流场结果以多区非结构网格形式进行结果输出,否则返回步骤4。
进一步地,所述网格数据包括来流参数信息、循环控制信息以及各自的网格分区文件。
进一步地,网格划分的分区数为进程数的整数倍,一个进程能够处理多个网格分区,不同进程对网格分区的处理并行进行。
进一步地,对于粒子运动超出原本分区边界的粒子,通过进程间的MPI通信发送到粒子移动到的分区对应的进程。
进一步地,对于同一分区内粒子的移动和碰撞计算,依据计算平台的体系架构选取不同并行计算方法,若为同构架构,则选取MPI+OpenMP混合并行编程模型;若为异构架构,则选取MPI+OpenACC混合并行编程模型,CPU和GPU的数据传输存在于步骤4和6。
进一步地,若选取MPI+OpenACC混合并行编程模型,则使用OpenACC进行GPU加速时,通过统一内存模型将CPU和GPU的内存空间映射为统一的公共内存空间,自动管理CPU和GPU之间的动态数组的访问。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述基于MPI+X的DSMC并行计算方法的步骤。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述基于MPI+X的DSMC并行计算方法的步骤。
本发明的有益效果在于:
相比于现有技术,本发明将粗粒度多进程(MPI)与细粒度多线程(OpenMP/OpenACC)有效结合,充分利用硬件特性,可以大大减少通信量和通信次数,有效提升并行效率,降低DSMC的计算成本。具体有如下优点:
(1)进程间通信打包:当粒子移动到的目的分区不属于本进程处理的分区范围时,这需要将该粒子信息通过MPI通信同步到穿越后的分区所属的MPI进程,本发明通过将这类粒子的所有信息打包然后仅通过一次通信来完成信息同步,从而避免多次通信带来的额外开销。
(2)MPI和OpenMP混合两级并行:通过OpenMP线程共享内存的特性可明显减少不同进程间的通信开销,同时启用的进程数减少意味着所需最小分区数也会减少,从而有效降低预处理过程的网格分区时间开销。
(3)MPI和OpenACC混合两级并行:通过添加OpenACC相关的编译指导语句将DSMC中的热点函数置于GPU端进行计算,充分利用GPU的超强计算能力来对DSMC进行有效加速,同时采用CUDA统一内存模型管理动态数据,消除了在GPU内核中访问结构体数据时需要深度拷贝的障碍,提高了DSMC应用的易用性。
附图说明
图1是MPI+X混合并行结构图。
图2是本发明实施例1的基于MPI+OpenMP的DSMC并行计算方法流程图。
图3是本发明实施例2的基于MPI+OpenACC的DSMC并行计算方法流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现说明本发明的具体实施方式。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,即所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的实施例将提供两种基于大规模非结构的DSMC并行计算方法,包括MPI+OpenMP同构混合并行,以及MPI+OpenACC异构混合并行。本发明通过基于粗粒度多进程(MPI)和细粒度多线程(OpenMP/OpenACC)的两级混合并行编程模型对现有的DSMC算法进行并行处理,充分发掘多核CPU和众核GPU的计算潜力,提升DSMC方法的计算速度,以满足DSMC应用对求解规模和速度的需求。
实施例1
如图1和图2所示,本实施例提供了一种基于MPI+OpenMP的DSMC并行计算方法,包括以下步骤:
步骤1、对原网格进行分区,即划分为多个相互独立的小网格,并存放到多个分区文件中;
步骤2、初始化各个进程,然后从参数文件以及各自的分区文件中读取网格数据;
步骤3、各进程同时对读入的网格数据进行相应的预处理;
步骤4、各进程分别启用OpenMP多线程并行计算各自分区内的粒子运动和壁面碰撞;多线程并行计算过程中,使用OpenMP规约子句解决存在数据累加的写冲突数据,使用线程互斥区间解决除累加以外的其他数据冲突,对于粒子穿过分区边界面的情况,当这类粒子穿越的目的分区不属于本进程处理的分区范围时,先将该粒子进行标记,待OpenMP多线程并行计算结束后,将标记粒子暂存到一个临时缓存区,待MPI进程同步后,再通过进程间的MPI通信将缓存区中的粒子发送到穿越后的分区所属的MPI进程;
步骤5、待所有进程结束粒子移动的计算后,各进程再对各自分区内运动后的粒子进行重新排序和整理,对网格内的粒子进行重新编码;
步骤6、各进程分别对各自分区内的粒子进行碰撞计算,单个进程对分区内的多个网格单元进行OpenMP多线程并行计算,对于存在的写冲突问题采用和步骤4同样的方法解决;
步骤7、各进程分别对各自的子区域流场性质进行采样;
步骤8、迭代步数如果达到阈值,则各进程按进程号分别向临时文件中输出本进程的所有网格及仿真粒子的相关信息,同时将各自的流场结果以多区非结构网格形式进行结果输出,否则返回步骤4。
下面是粒子移动和碰撞的MPI+OpenMP相应的伪代码,对应上述步骤4和6:
Algorithm 1基于MPI+OpenMP混合并行的DSMC
Input: numThread表示线程数,zone表示分区,data_c表示单元数据,data_m表示粒子数据,data_ad表示含累加操作的数据,data_cache表示缓存区,data_thprivate表示线程私有数组;
1. Function Movemol(data_m,zone);
2. Initialdata_cache;
3. for each zone in MPI process;
4. !$omp parallel;
5. Initial data_thprivate;
6. !$ompdo reduction(+:data_ad);
7. for each moleculei;
8. update->data_m[i];
9. end for;
10. !$omp end do;
11. !$omp critical;
12. merge data_thprivate;
13. !$omp end critical;
14. !$omp end parallel;
15. end for;
16. updatadata_cache;
17. MPI_Barrier;
18. MPI_Communication(data_cache).
(以上对应上述步骤4)
1. Function Collisions(data_c,zone);
2. for each zone in MPI process;
3. !$omp parallel;
4. !$omp do reduction(+:data_ad);
5. for each cell i in zone;
6. update->data_c[i];
7. end for;
8. !$omp end do;
9. !$omp end parallel;
10. end for.
(以上对应上述步骤6)
实施例2
如图1和图3所示,本实施例提供了一种基于MPI+OpenACC的DSMC并行计算方法,包括以下步骤:
步骤1、对原网格进行分区,即划分为多个相互独立的小网格,并存放到多个分区文件中;
步骤2、初始化各个进程,然后从参数文件以及各自的分区文件中读取网格数据;
步骤3、各进程同时对读入的网格数据进行相应的预处理;
步骤4、设备端开辟所需内存空间,将固定常量从主机端通过PCIE同步到设备端;
步骤5、各进程分别将粒子运动和壁面碰撞所需数据传输到对应的GPU,设备端启用多线程并行计算;多线程并行计算过程中,使用OpenACC规约子句和原子操作解决存在数据累加的写冲突数据,对于粒子穿过分区边界面的情况,当这类粒子穿越的目的分区不属于本进程处理的分区范围时,先将该粒子进行标记,待设备端计算结束后,将计算结果同步到主机端,然后主机端将标记粒子暂存到一个临时缓存区,待MPI进程同步后,再通过进程间的MPI通信将缓存区中的粒子发送到穿越后的分区所属的MPI进程;
步骤6、待所有进程结束粒子移动的计算后,各进程再对各自分区内运动后的粒子进行重新排序和整理,对网格内的粒子进行重新编码;
步骤7、各进程分别将各自分区内进行碰撞计算所需的粒子信息传输到对应的GPU,设备端对相应分区内的多个网格单元进行多线程并行计算,碰撞计算结束后将结果同步到主机端;对于存在的写冲突问题采用和步骤5同样的方法解决;
步骤8、各进程分别对各自的子区域流场性质进行采样;
步骤9、迭代步数如果达到阈值,则各进程按进程号分别向临时文件中输出本进程的所有网格及仿真粒子的相关信息,同时将各自的流场结果以多区非结构网格形式进行结果输出,否则返回步骤5。
下面是粒子移动和碰撞的MPI+OpenACC相应的伪代码,对应上述步骤5和步骤7:
Algorithm 2基于MPI+OpenACC混合并行的DSMC
Input: numThread表示线程数,zone表示分区,data_c表示单元数据,data_m表示粒子数据,data_ad表示含累加操作的数据,data_cache表示缓存区;
1. Function Movemol(data_m,zone);
2. Initial data_cache;
3. for each zone in MPI process;
4. !$acc update device(data_m,zone);
5. !$acc parallel;
6. !$acc loop reduction(+:data_ad);
7. for each molecule i;
8. update->data_m[i];
9. end for;
10. !$acc end parallel;
11. !$acc update host(data_m);
12. end for;
13. updatadata_cache;
14. MPI_Barrier;
15. MPI_Communication(data_cache).
(以上对应上述步骤5)
1. Function Collisions(data_c,zone);
2. for each zone in MPI process;
3. !$acc update device(data_c,zone);
4. !$accparallel;
5. !$accloop reduction(+:data_ad);
6. for each cell i in zone;
7. update->data_c[i];
8. end for;
9. !$acc end parallel;
10. !$acc update host(data_c,data_ad);
11. end for.
(以上对应上述步骤7)
需要说明的是,对于前述的方法实施例1和2,为了简便描述,故将其表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
实施例3
本实施例在实施例1或2的基础上:
本实施例提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现实施例1或2的DSMC并行计算方法的步骤。其中,计算机程序可以为源代码形式、对象代码形式、可执行文件或者某些中间形式等。
实施例4
本实施例在实施例1或2的基础上:
本实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序被处理器执行时实现实施例1或2的DSMC并行计算方法的步骤。其中,计算机程序可以为源代码形式、对象代码形式、可执行文件或者某些中间形式等。存储介质包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM)、随机存取存储器(RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,存储介质不包括电载波信号和电信信号。

Claims (6)

1.一种基于MPI+X的DSMC并行计算方法,其特征在于,包括以下步骤:
步骤1、根据计算的节点数目和节点内可用CPU核数对网格进行分区,将其划分为多个独立的分区文件;
步骤2、初始化MPI即粗粒度多进程,各进程载入网格数据;
步骤3、各进程对载入的所述网格数据分别进行相应的预处理,若为新的计算,各进程初始化子区域流场;若为续算,则各进程根据标识信息读取本进程的流场信息及仿真粒子信息;
步骤4、各进程分别启用多线程并行计算各自分区内的粒子运动;
步骤5、各进程分别对各自分区内的粒子索引进行排序编号;
步骤6、各进程分别对各自分区内的粒子进行碰撞计算;
步骤7、各进程分别对各自的子区域流场性质进行采样;
步骤8、迭代步数如果达到阈值,则各进程按进程号分别向临时文件中输出本进程的所有网格及仿真粒子的相关信息,同时将各自的流场结果以多区非结构网格形式进行结果输出,否则返回步骤4;
对于同一分区内粒子的移动和碰撞计算,依据计算平台的体系架构选取不同并行计算方法,若为同构架构,则选取MPI+OpenMP混合并行编程模型;若为异构架构,则选取MPI+OpenACC混合并行编程模型,CPU和GPU的数据传输存在于步骤4和6;
若选取MPI+OpenACC混合并行编程模型,则使用OpenACC进行GPU加速时,通过统一内存模型将CPU和GPU的内存空间映射为统一的公共内存空间,自动管理CPU和GPU之间的动态数组的访问。
2.根据权利要求1所述的基于MPI+X的DSMC并行计算方法,其特征在于,所述网格数据包括来流参数信息、循环控制信息以及各自的网格分区文件。
3.根据权利要求1所述的基于MPI+X的DSMC并行计算方法,其特征在于,网格划分的分区数为进程数的整数倍,一个进程能够处理多个网格分区,不同进程对网格分区的处理并行进行。
4.根据权利要求1所述的基于MPI+X的DSMC并行计算方法,其特征在于,对于粒子运动超出原本分区边界的粒子,通过进程间的MPI通信发送到粒子移动到的分区对应的进程。
5.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-4任一项所述的基于MPI+X的DSMC并行计算方法的步骤。
6.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任一项所述的基于MPI+X的DSMC并行计算方法的步骤。
CN202111333599.7A 2021-11-11 2021-11-11 基于mpi+x的dsmc并行计算方法、设备及介质 Active CN113791912B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111333599.7A CN113791912B (zh) 2021-11-11 2021-11-11 基于mpi+x的dsmc并行计算方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111333599.7A CN113791912B (zh) 2021-11-11 2021-11-11 基于mpi+x的dsmc并行计算方法、设备及介质

Publications (2)

Publication Number Publication Date
CN113791912A CN113791912A (zh) 2021-12-14
CN113791912B true CN113791912B (zh) 2022-02-11

Family

ID=78955262

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111333599.7A Active CN113791912B (zh) 2021-11-11 2021-11-11 基于mpi+x的dsmc并行计算方法、设备及介质

Country Status (1)

Country Link
CN (1) CN113791912B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117591272A (zh) * 2023-11-01 2024-02-23 厦门渊亭信息科技有限公司 一种基于共享内存的图计算实现方法、终端设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461466A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法
CN106092496A (zh) * 2016-06-14 2016-11-09 上海交通大学 针对跨尺度流动的apdsmc流场检测方法
CN108595277A (zh) * 2018-04-08 2018-09-28 西安交通大学 一种基于OpenMP/MPI混合编程的CFD仿真程序的通信优化方法
EP3502897A1 (en) * 2017-12-21 2019-06-26 Bull SAS Efficient communication overlap by runtimes collaboration
CN112948643A (zh) * 2021-05-13 2021-06-11 中国空气动力研究与发展中心计算空气动力研究所 一种基于线程并行的结构化网格流线积分方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461467B (zh) * 2013-09-25 2018-05-04 广州中国科学院软件应用技术研究所 针对SMP集群系统采用MPI和OpenMP混合并行提高计算速度的方法
CN108932172B (zh) * 2018-06-27 2021-01-19 西安交通大学 一种基于OpenMP/MPI混合并行CFD计算的细粒度共享内存通信同步方法
US10949211B2 (en) * 2018-12-20 2021-03-16 Vmware, Inc. Intelligent scheduling of coprocessor execution
CN110929456B (zh) * 2019-11-13 2021-07-06 西安交通大学 移动粒子法并行计算等效粒子负载均衡加速方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461466A (zh) * 2013-09-25 2015-03-25 广州中国科学院软件应用技术研究所 基于MPI和OpenMP混合编程模型并行计算提高计算速度的方法
CN106092496A (zh) * 2016-06-14 2016-11-09 上海交通大学 针对跨尺度流动的apdsmc流场检测方法
EP3502897A1 (en) * 2017-12-21 2019-06-26 Bull SAS Efficient communication overlap by runtimes collaboration
CN108595277A (zh) * 2018-04-08 2018-09-28 西安交通大学 一种基于OpenMP/MPI混合编程的CFD仿真程序的通信优化方法
CN112948643A (zh) * 2021-05-13 2021-06-11 中国空气动力研究与发展中心计算空气动力研究所 一种基于线程并行的结构化网格流线积分方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
Large-scale simulations on multiple Graphics Processing Units (GPUs) for the direct simulation Monte Carlo method;C.-C. Su等;《Journal of Computational Physics》;20120808;第7932-7958页 *
直接模拟Monte Carlo方法并行化研究;张伟等;《计算机应用与软件》;20090915;第26卷(第9期);第1-3页 *
稀薄气体高超声速流动的非结构DSMC并行化计算;李学东等;《科技导报》;20100228;第28卷(第4期);第64-67页 *
风雷(PHengLEI)通用CFD软件设计;赵钟等;《计算机工程与科学》;20200215;第42卷(第2期);第210-219页 *
高超声速稀薄气流非结构网络DSMC及并行算法研究;王学德;《中国优秀博硕士学位论文全文数据库(博士) 工程科技II辑》;20071215;C031-7 *

Also Published As

Publication number Publication date
CN113791912A (zh) 2021-12-14

Similar Documents

Publication Publication Date Title
De Donno et al. Introduction to GPU computing and CUDA programming: A case study on FDTD [EM programmer's notebook]
Gao et al. Optimizations and OpenMP implementation for the direct simulation Monte Carlo method
CN113791912B (zh) 基于mpi+x的dsmc并行计算方法、设备及介质
Balevic et al. Accelerating simulations of light scattering based on finite-difference time-domain method with general purpose GPUs
Richmond et al. Flame gpu: Complex system simulation framework
Wąs et al. GPGPU computing for microscopic simulations of crowd dynamics
Bisson et al. Multiscale hemodynamics using GPU clusters
Xu et al. Loop interchange and tiling for multi-dimensional loops to minimize write operations on NVMs
Li et al. Efficient neighbor searching for agent-based simulation on GPU
Hesam et al. Gpu acceleration of 3d agent-based biological simulations
Chandrashekhar et al. Performance study of OpenMP and hybrid programming models on CPU–GPU cluster
Tumeo et al. Irregular applications: From architectures to algorithms [guest editors' introduction]
Li et al. Massively parallel acceleration of unstructured DSMC computing
Li et al. Parallel optimization of the crystal-KMC on Tianhe-2
Paudel Acceleration of computational geometry algorithms for high performance computing based geo-spatial big data analysis
Eckhardt et al. On-the-fly memory compression for multibody algorithms
Kosiachenko Efficient GPU Parallelization of the Agent-Based Models Using MASS CUDA Library
D’Agostino et al. Parallel Solutions for Voxel‐Based Simulations of Reaction‐Diffusion Systems
CN104050175A (zh) 利用gpu片上树群实现二维数据近邻搜索的并行方法
Gao et al. Parallel implementation of the direct simulation Monte Carlo method for shared memory architectures
Bezbradica et al. Applications of High Performance Algorithms to Large Scale Cellular Automata Frameworks Used in Pharmaceutical Modelling.
Dudnik et al. Cuda architecture analysis as the driving force Of parallel calculation organization
Jambunathan et al. A hybrid CPU-GPU parallel octree direct simulation Monte Carlo approach
Pham et al. Optimizing Agent-Based Simulations for the GPU
Ji et al. High Performance Algorithm and Computing Analysis Software of DEM Based on GPU Parallel Algorithm

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