三维等离子体模拟粒子云网格方法的并行

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

三维等离子体模拟粒子云网格方法的并行
张爱清莫则尧
北京应用物理和计算数学研究所
aigretz@
摘要在分布式存储并行计算环境下,组织了三维等离子体模拟粒子云网格法程序的MPI并行计算。

对性能结果做分析并改进。

1. 引言
粒子模拟是通过追踪大量的在自洽和外加电磁场作用下的带电粒子的运动,研究等离子体集体性质的动力学模拟方法。

对于解释和指引实验,揭示激光等离子体多种藕合过程的物理图像的细节,发现新的物理现象均具有重要的意义。

但单机的模拟能力非常有限,尤其对三维问题,单机的存储能力和计算能力远不能满足实际问题的需求,必须借助并行。

本文基于分布式存储并行计算环境,组织了三维等离子体模拟粒子云网格法程序的MPI并行计算,实现了高效并行模拟。

关键字:三维等离子体模拟粒子云MPI
2. 算法和并行实现策略
粒子云网格法要求求解粒子相对论Newton-Lorentz方程、粒子云方程和等离子体电磁场Maxwell 方程,其中粒子运动方程建立在Lagrange坐标上,场方程建立在Eulor坐标上,云方程负责两个不同坐标系上的变量之间的相互作用。

图1为串行流程图。

我们等分计算空间成Eulor网格,且网格大小和粒子云大小一致,并初始状态下将所有粒子有规则地排布在Eulor网格上。

粒子运动计算需要周围19个网格的电磁场数据,同时每个带电粒子影响周边27个网格的密度,各个粒子之间的计算相互独立。

场方程采用的是7点显式格式。

我们的并行实现策略很简单,基于三维Eulor网格做区域分解,进程亦成三维逻辑结构,每个进程负责一块子区域的所有相关事务,包括该子区域的场方程、密度以及位于该区域内的粒子计算。

与串行相比,并行增加的额外工作是子区域边界的处理。

图2为并行流程图。

3. 性能测试和分析
我们首先做小规模的单机性能测试,取36×24×24的网格和288000个粒子的规模。

单机的数值实验表明:粒子云方程和粒子运动方程的求解均占据了计算时间的49%,而场方程的计算只占据了2%。

所以在区域划分时,以尽量均分粒子数为基准,而不是平分空间大小。

另外,程序存在性能迁移现象:随着时间的步进,每步所需的计算时间呈递增趋势。

原因是粒子随时间的运动使得粒子在网格上原本规则的分布变得越来越不规则,导致严重的页失效和cache 失效,随之引起计算时间的增加。

我们的解决策略是在每步粒子运动形成新的位置后,重新安排粒子在内存中的位置,使得粒子在网格上形成规则分布。

这样虽然增加了数据重拷贝的额外时间,但消除了性能迁移现象,大大减少了计算时间,从原来的762秒减至524秒(749个时间步)。

表1 36×24×24个网格、288000个粒子的并行性能数据(749个时间步)
进程数墙上时间加速比效率
1 518.8
1 1
0.86
3 201.7
2.57
0.82
9 70.5
7.36
0.76
18 38.3 13.55
0.60
36 24.2 21.44
表2 100×100×100个网格、5×106个粒子的并行性能数据(100个时间步)进程数墙上时间加速比效率
1 1
1 1563.1
0.89
4 439.8
3.55
8.71 0.87
10 179.5
25 72.3 21.6 0.86
50 39.1 40.0 0.80
100 19.1 81.8 0.82
200 11.3 138.3 0.69
表1和表2是两个不同规模的性能数据,可以看到并行程序有不错的加速比和效率。

不过由于尚未完成负载平衡的功能块,随着时间的步进,各个进程拥有的粒子数逐渐不均衡,随着时间或者进程个数的增长,负载不平衡现象渐趋严重。

而仍然不错的加速比理应归功于由于进程数的增加引起的cache命中率的大幅度提高。

4. 改进
负载平衡和单机性能的改进正在进行中。

参考文献:
1.莫则尧许林宝张宝琳等二维等离子体模拟粒子云网格方法的并行计算与性能分析计算物理V ol.16,No.5 Sep.,1999
2.邵福球等离子体粒子模拟科学出版社 2002。

相关文档
最新文档