《并行粒子模拟程序.ppt》由会员分享,可在线阅读,更多相关《并行粒子模拟程序.ppt(22页珍藏版)》请在三一办公上搜索。
1、并行粒子模拟程序,粒子模拟,粒子在空面中运动,而电场和电荷电流密度等物理量分配在网格点上。一般的计算步骤如下:首先根据粒子所在的具体位置求得其对周围网格点的电荷贡献,当所有粒子的贡献相加后即得到网格的电荷密度和电流密度,然后求解Maxwell方程即得网格点上的电磁场,再通过插值得到离子和电子处的电磁场,粒子在Lorentz力的作用下运动。不断循环以上过程,即可求解物理问题。,粒子模拟的并行化,实现粒子模拟的并行化主要有两种常用的设计思想,第一种是将粒子数均匀的分配到各个CPU上,而将与网格有关的量存储到所有的CPU上。另一种并行方法是将整个计算区域划分成几个区域,初始时尽量让每个区域中的粒子数
2、相同,与每个区域有关的电磁场的量和粒子的量存储在同一个CPU上。第一种算法适合在节点少但单节点性能较高的并行环境,第二种则适合在具有一定数量CPU的并行计算。根据目前我们具有的并行环境(16台100 以太网连接的Pentium III 1.6GHz组建的cluster),采用了第二种算法设计并行程序。,在作并行计算时,将整个计算空间划分为如图(图中以4个为例)所示数个平行的区域,这样把不同区域的场和粒子分配到不同的处理器上。当粒子经过场加速后由某一个区域进入到另外一个区域时,粒子将相应地转交给另一区域的处理器处理。,并行处理的网格和粒子分区示意图,图 2 PIC粒子模拟程序算法结构图,除将粒子
3、速度位置等数据进行初始化外,由推动粒子,粒子管理、分配电流、电流管理、场的求解、场的管理等六个部分组成,具体描述如下:(1)推动粒子:每个计算节点同时推动自己区域内的粒子,由于粒子的电磁场是通过插值网格点处的电磁场得到的,所以不同计算节点交界处粒子需要用到相邻计算节点公共网格点的电磁场。(2)粒子管理:部分粒子经过场加速后由某一个区域进入到另外一个区域时,粒子将相应地转交给另一区域的处理器处理。,(3)分配电流:粒子电流被分配到相应区域的网格点上。(4)电流管理:由于在某个区域中,在上一步中只能将本区域中的粒子电流分配到网格点上,因此边界附近网格点处得到的电流是不全面的,需要将上面或下面区域公
4、共网格上的电流和它叠加得到全面的电流。(5)计算电磁场:求解每个计算节点内部格点上的Maxwell方程,得到内部网格点上的电磁场。,(6)电磁场处理:将区域上下边界处网格点上的电磁场分别传送给上面和下面区域的交界网格上。,性能分析 我们的微机机群由16个有Intel Pentium III 1.6 GHz CPU和128Mbyte内存的微机通过100Mb/s的以太网连接而成,操作系统为在Redhat Linux版本7.2,Fortran编译器为pgf77,并行化程序通过MPICH实现。,我们分别在不同数目的计算节点上运行此并行程序,测量了它的加速比(S=)和并行效率(E=)我们从两个方面对二维
5、并行粒子模拟程序进行了性能分析:一是对某一特定物理问题用不同数目计算节点运算,测量其加速比和并行效率;二是对不同的物理问题用相同的计算节点运算测量其加速比和并行效率。表中是固定网格数12864,粒子数73728时用不同的计算节点运算时测得的加速比和并行效率,程序的运行步数是2500。,表 用不同数目的计算节点计算同一问题时的加速比和并行效率,表 2 8个cpu计算不同工作量的问题时的加速比和并行效率,由以上两个表格可以看出:对同一规模的物理问题,加速比在计算节点数较少时随计算节点数基本上是线性增加的,但随节点数增加这种增加趋势会变缓,所以并行效率变低,16个计算节点时候的并行效率明显偏低。同时
6、计算节点数一定时增加问题的规模,加速比会提高,同样并行效率随之提高。当处理规模比较大的问题时用并行计算可以显著提高效率,而且问题规模越大,这个作用越明显。,4.算例:束流不稳定性我们计算的物理问题是等离子体中的束流不稳定性,束流和背景等离子体分别包括了质子和电子,它们的速度满足Maxwell分布,其中束流密度占总密度的1.5%,束流相对于背景等离子体的速度为10VA。,5.小结 我们用MPI对程序实现了并行化并运行在cluster上,最多CPU数为16个,取得了不错的并行效率和并行加速比。1.物理问题规模一定时,并行效率随着计算节点数目的增多而降低。2.计算节点数一定时,增加物理问题规模可提高并行效率。3.在束流不稳定的线性增长阶段,数值模拟和理论符合得很好。,