一种基于MPI并行的SPH程序加速方法及装置制造方法及图纸

技术编号:35185294 阅读:36 留言:0更新日期:2022-10-12 17:56
本发明专利技术涉及光滑粒子动力学领域,公开了一种基于MPI并行的SPH程序加速方法及装置,本发明专利技术对空间中的求解域划分获得预设数量子区域,将子区域分配给处理器;处理器中对子区域进行配置并确定处理器边界数值;在处理器进行并行邻近粒子搜索,通过将处理器求解区域粒子划分为预设数量小元胞以获取邻近粒子;将处理器求解区域划分为边界部分和中心部分,将落入边界区域粒子以非阻塞通信的方式发送至处理器,计算中心部分粒子;在满足第一预设条件时,保存计算结果数组;根据数组中计算结果进行并行化粒子更新确定ghost粒子集合和/或local粒子集合;对ghost粒子集合和/或local粒子集合进行粒子跨处理器转移更新当前处理器粒子数;根据当前处理器粒子数进行迭代。当前处理器粒子数进行迭代。当前处理器粒子数进行迭代。

【技术实现步骤摘要】
一种基于MPI并行的SPH程序加速方法及装置


[0001]本申请涉及光滑粒子流体动力学领域,特别是涉及一种基于MPI并行的SPH程序加速方法及装置。

技术介绍

[0002]随着计算技术的飞速发展,越来越多的实验可以通过计算机模拟得出具有实际意义的结果。因此,计算机模拟技术已经深入的应用到各个领域,比如爆炸与冲击、水文治理、侵彻等等需要耗费大量资源的领域,并且取得了很好的效果。由于使用计算模拟问题的原理都是使用数值方法将空间进行离散化,最后转化为求解离散化的方程组来求得该问题的近似解。在求解偏微分方程的过程中将会消耗巨大的计算资源。
[0003]光滑粒子动力学(Smoothed Particle Hydrodynamics,SPH)是一种拉格朗日型无网格粒子方法,已经成功地应用到了工程和科学的众多领域。该方法使用一套带有物理信息的节点来离散空间的物体,每个粒子具有位置坐标,质量,速度等物理信息,并且粒子的更新由光滑域内所有的粒子的加权平均近似而来。由于当计算规模达到20万个粒子时,平均每个粒子都会和周围60

120个临近粒子相互作用,这会导致计算效率很低。为了解决这个问题,使得SPH算法能够适用于大规模问题的模拟,因此需要开发SPH的大规模并行程序。
[0004]目前,各种加速手段取得了很大的进步。基于GPU的SPH程序能够在有限的时间内给出有意义的计算结果出来,初始版本的GPU加速SPH程序仅仅是将粒子相互作用部分移植在GPU上面计算,但是该方法会导致数据在CPU
/>GPU之间进行来回的通信,导致巨大的通信开销,然后,优化之后的版本则将邻居粒子搜索,粒子相互作用以及系统更新模块全部放到GPU上计算,从而使得计算性能获得极大的提升,目前主流的GPU加速的SPH程序都是使用这种原理开发的。此外,多CPU同构的集群系统也是解决大规模SPH模拟问题的关键技术所在。开发出并行的SPH程序意义重大。许多文献表明,要实现SPH的并行,使得能够运行在集成有上万个节点的超级计算机上面需要解决许多问题。因此,如何在SPH程序进行高效并行化成为了一个亟待解决的技术问题。
[0005]上述内容仅用于辅助理解本专利技术的技术方案,并不代表承认上述内容是现有技术。

技术实现思路

[0006]本专利技术的主要目的在于提供了一种基于MPI并行的SPH程序加速方法及装置,旨在解决在SPH程序进行高效并行化的技术问题。
[0007]为实现上述目的,本专利技术提供了一种基于MPI并行的SPH程序加速方法,所述方法包括:
[0008]对空间中的求解域进行划分以获得预设数量的子区域,将子区域分配给对应的处理器;
[0009]在处理器中对子区域进行配置并确定处理器的边界数值;
[0010]在处理器中进行并行的邻近粒子搜索,通过将处理器求解区域的粒子划分为预设数量的小元胞以获取邻近粒子;
[0011]将处理器的求解区域划分为边界部分和中心部分,将落入所述边界区域的粒子以非阻塞通信的方式发送至相邻处理器,计算所述中心部分的粒子;
[0012]在满足第一预设条件时,保存计算结果至数组;
[0013]根据所述数组中的计算结果进行并行化粒子更新以确定ghost粒子集合和/或local粒子集合;
[0014]对所述ghost粒子集合和/或local粒子集合进行粒子跨处理器转移并更新当前处理器的粒子数;
[0015]根据所述当前处理器的粒子数进行迭代直至满足最大迭代次数。
[0016]可选地,所述对空间中的求解域进行划分以获得预设数量的子区域,将子区域分配给对应的处理器的步骤,包括:
[0017]对空间中的求解域进行划分,以获得预设数量的子区域;
[0018]将子区域分配给对应的进程并要求每个对应处理器平均分配到相同粒子数。
[0019]可选地,所述在处理器中对子区域进行配置并确定处理器的边界数值的步骤,包括:
[0020]在所述处理器中进行区域配置,设置区域光滑长度2h;
[0021]读取源文件信息,并根据所述源文件信息配置边界条件;
[0022]计算处理器的边界并将计算结果存放到数组。
[0023]可选地,所述在满足第一预设条件时,保存计算结果至数组的步骤,包括:
[0024]在中心部分的粒子计算完毕,且所述边界粒子接收完毕时,计算所述边界部分的粒子;
[0025]将所述中心和所述边界部分的粒子的计算结果保存到数组中。
[0026]可选地,所述对所述ghost粒子集合和/或local粒子集合进行粒子跨处理器转移并更新当前处理器的粒子数的步骤,包括:
[0027]将所述ghost粒子集合通过异步通信发送到相邻的处理器中;
[0028]把所述local粒子集合的粒子进行重新排序,在检测到ghost粒子发送和接收完毕后,把local粒子集合中的所有粒子添加至数组以更新当前处理器的粒子数,所述当前处理器的粒子数为local粒子数和ghost粒子数总和。
[0029]可选地,所述将所述ghost粒子集合通过异步通信发送到相邻的处理器中的步骤,包括:
[0030]将所述ghost粒子集合通过异步通信发送至相邻的处理器,并对对应的ghost粒子的位置进行重新标记。
[0031]可选地,所述根据所述当前处理器的粒子数进行迭代直至满足最大迭代次数的步骤,包括:
[0032]根据所述当前处理器的粒子数进入在处理器中进行并行的邻近粒子搜索,通过将处理器求解区域的粒子划分为预设数量的小元胞以获取邻近粒子的步骤;
[0033]在进行迭代时确保随着计算规模的增加,保存粒子信息的数组的遍历以及排序所耗费的时间要远远小于粒子相互作用所耗费的时间,维持时间开销差距在两个数量级以
上;
[0034]在满足最大迭代次数时输出计算结果。
[0035]此外,为实现上述目的,本专利技术还提出一种基于MPI并行的SPH程序加速装置,所述装置包括:
[0036]空间划分模块,用于对空间中的求解域进行划分以获得预设数量的子区域,将子区域分配给对应的处理器;
[0037]边界配置模块,用于在处理器中对子区域进行配置并确定处理器的边界数值;
[0038]邻近搜索模块,用于在处理器中进行并行的邻近粒子搜索,通过将处理器求解区域的粒子划分为预设数量的小元胞以获取邻近粒子;
[0039]中心边界模块,用于将处理器的求解区域划分为边界部分和中心部分,将落入所述边界区域的粒子以非阻塞通信的方式发送至相邻处理器,计算所述中心部分的粒子;
[0040]条件判断模块,用于在满足第一预设条件时,保存计算结果至数组;
[0041]集合计算模块,用于根据所述数组中的计算结果进行并行化粒子更新以确定ghost粒子集合和/或local粒子集合;
[0042]跨处理器模块,用于对所述ghost粒子集合和/或local粒子集合进行粒本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于MPI并行的SPH程序加速方法,其特征在于,所述方法包括:对空间中的求解域进行划分以获得预设数量的子区域,将子区域分配给对应的处理器;在处理器中对子区域进行配置并确定处理器的边界数值;在处理器中进行并行的邻近粒子搜索,通过将处理器求解区域的粒子划分为预设数量的小元胞以获取邻近粒子;将处理器的求解区域划分为边界部分和中心部分,将落入所述边界区域的粒子以非阻塞通信的方式发送至相邻处理器,计算所述中心部分的粒子;在满足第一预设条件时,保存计算结果至数组;根据所述数组中的计算结果进行并行化粒子更新以确定ghost粒子集合和/或local粒子集合;对所述ghost粒子集合和/或local粒子集合进行粒子跨处理器转移并更新当前处理器的粒子数;根据所述当前处理器的粒子数进行迭代直至满足最大迭代次数。2.如权利要求1所述的方法,其特征在于,所述对空间中的求解域进行划分以获得预设数量的子区域,将子区域分配给对应的处理器的步骤,包括:对空间中的求解域进行划分,以获得预设数量的子区域;将子区域分配给对应的进程并要求每个对应处理器平均分配到相同粒子数。3.如权利要求1所述的方法,其特征在于,所述在处理器中对子区域进行配置并确定处理器的边界数值的步骤,包括:在所述处理器中进行区域配置,设置区域光滑长度2h;读取源文件信息,并根据所述源文件信息配置边界条件;计算处理器的边界并将计算结果存放到数组。4.如权利要求1所述的方法,其特征在于,所述在满足第一预设条件时,保存计算结果至数组的步骤,包括:在中心部分的粒子计算完毕,且所述边界粒子接收完毕时,计算所述边界部分的粒子;将所述中心和所述边界部分的粒子的计算结果保存到数组中。5.如权利要求1所述的方法,其特征在于,所述对所述ghost粒子集合和/或local粒子集合进行粒子跨处理器转移并更新当前处理器的粒子数的步骤,包括:将所述ghost粒子集合通过异步通信发送到相邻的处理器中;把所述local粒子集合的粒子进行重新排序,在检测到ghost粒子发送和接收完毕后,把local粒子集合中的所有粒子添加至数组以更新当前处理器的粒子数,所述当前处理器的粒子数为local粒子数和ghost粒子数总和。6.如权利要求5所述的方法,其特征在于,所述将所述ghost粒子集合通过异步通信发送...

【专利技术属性】
技术研发人员:杨灿群龙思凡葛振郭晓威范小康李超唐滔崔英博
申请(专利权)人:中国人民解放军国防科技大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1