一种gtc软件的mpi通信方法及系统的制作方法

文档序号:9375386阅读:788来源:国知局
一种gtc软件的mpi通信方法及系统的制作方法
【技术领域】
[0001] 本发明涉及高性能计算领域中的并行程序设计及优化技术领域,特别是涉及一种 GTC软件的MPI通信方法及系统。
【背景技术】
[0002] 目前,GTC(Gyrokinetic Toroidal Code)是用来进行非线性回旋动理学端流模拟 的一个大规模并行软件,其由普林斯顿大学等离子体实验室研制,是国际热核聚变实验堆 (ITER)计划(该实验是对聚变能源探索中至关重要的一步)中模拟高能粒子湍流的关键程 序。
[0003] 实际应用中,GTC通过对等离子体在磁场作用下的输运性质的模拟,可以再现等 离子体随时间的运行演化过程,这对于研究磁约束受控核聚变,提高等离子体在托卡马克 (Tokamak)中的约束时间,从而最终解决人类的能源问题有着非常重要的作用。
[0004] 在现有的GTC软件的MPI (Multipoint Interface,多点接口)通信方法中,其 MPI的通信过程非常繁杂。图1示出了现有技术中的MPI通信示意图,其中Rank 0, Rank 1,……,Rank N是N个MPI进程的编号。在MPI通信之前,由于每一个进程均不知道数据 发送的目标进程,故每一个进程先将数据发至编号与其紧邻的下一个MPI进程。以0号进 程为例,它先将数据发送至1号进程,随后在1号进程内进行判断是否还需要进一步的向下 传输数据,如果是,就将接收到的数据再发送至2号进程,依次类推,直到每一个MPI进程均 不再需要接收和发送数据为止。假定一共有N个MPI进程的话,每一个进程最多需要接收 和发送N-I次,才能完成MPI通信。
[0005] 以上可以看到,随着节点(即MPI进程)数量N的增大,MPI进程之间的通信次数 也随之增大,当N的数值很大时,MPI通信的时间代价是十分高昂的,显著降低了 GTC软件 的运行性能。

【发明内容】

[0006] 有鉴于此,本发明提供了一种GTC软件的MPI通信方法及系统,以解决现有技术中 MPI通信的时间随着节点规模的增大而显著增加的技术问题。
[0007] 为解决上述技术问题,本发明提供一种GTC软件的MPI通信方法,包括:
[0008] 获取高能粒子的空间位置参数;
[0009] 利用所述空间位置参数,确定针对所述高能粒子的目标MPI进程;
[0010] 将所述高能粒子的粒子信息发送至所述目标MPI进程。
[0011] 上述方法中,优选的,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z 方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,利用所述坐标 值和截面个数,计算得到所述目标MPI进程的编号。
[0012] 上述方法中,优选的,利用以下公式计算得到所述目标MPI进程的编号:
[0013]
[0014] 其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在 xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标 系中z方向上的截面个数。
[0015] 上述方法中,优选的,采用非阻塞方式,将所述高能粒子的粒子信息发送至所述目 标MPI进程。
[0016] 上述方法中,优选的,将所述高能粒子的粒子信息发送至所述目标MPI进程,包 括:
[0017] 确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子的粒子信息存入缓 冲区;
[0018] 从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至目标MPI进程。
[0019] 本发明还提供了一种GTC软件的MPI通信系统,包括:
[0020] 空间位置参数获取单元,用于获取高能粒子的空间位置参数;
[0021] 目标MPI进程确定单元,用于利用所述空间位置参数,确定针对所述高能粒子的 目标MPI进程;
[0022] 粒子信息发送单元,用于将所述高能粒子的粒子信息发送至所述目标MPI进程。
[0023] 上述系统中,优选的,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z 方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,所述目标MPI 进程确定单元具体用于利用所述坐标值和截面个数,计算得到所述目标MPI进程的编号。
[0024] 上述系统中,优选的,所述目标MPI进程确定单元进一步用于利用以下公式计算 得到所述目标MPI进程的编号:
[0025]
[0026] 其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在 xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标 系中z方向上的截面个数。
[0027] 上述系统中,优选的,所述粒子信息发送单元具体用于采用非阻塞方式,将所述高 能粒子的粒子信息发送至所述目标MPI进程。
[0028] 上述系统中,优选的,所述粒子信息发送单元包括:
[0029] 存储子单元,用于确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子 的粒子信息存入缓冲区;
[0030] 发送子单元,用于从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至 目标MPI进程。
[0031] 以上本发明提供的一种GTC软件的MPI通信方法及系统中,MPI进程的数量为N, 对于任一 MPI进程,先获取高能粒子的空间位置参数;然后利用获取到的空间位置参数,确 定针对高能粒子的目标MPI进程;最后将这个高能粒子的粒子信息发送至目标MPI进程。即 在确定目标MPI进程后,将粒子信息直接发送至目标MPI进程,不存在漫无目的地传输粒子 信息的现象,保证了 MPI通信的时间与MPI进程个数无关,从而有效解决了现有技术中MPI 通信的时间随着节点规模的增大而显著增加的技术问题,进而显著提高了 GTC软件的运行 性能。
【附图说明】
[0032] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0033] 图1为本发明实施例提供的一种GTC软件的MPI通信方法的流程图;
[0034] 图2为本发明实施例提供的另一流程图;
[0035] 图3为本发明实施例提供的一种GTC软件的MPI通信系统的结构框图示意图;
[0036] 图4为本发明实施例提供的采用本发明技术方案在天河2号上的MPI性能测试结 果图。
【具体实施方式】
[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0038] 本发明的核心是提供一种GTC软件的MPI通信方法及系统,以解决现有技术中MPI 通信的时间随着节点规模的增大而显著增加的技术问题。
[0039] 为了使本技术领域的人员更好地理解本发明方案,下面结合附图和【具体实施方式】 对本发明作进一步的详细说明。
[0040] 参考图1,示出了本发明实施例提供的一种GTC软件的MPI通信方法的流程图,该 方法具体可以包括如下步骤:
[0041] 步骤S100、获取高能粒子的空间位置参数;
[0042] 实际应用中,MPI进程的数量为N,对于任一 MPI进程,先将需要发送的高能粒子的 粒子信息挑选出来,然后获取这个高能粒子的空间位置参数;
[0043] 步骤S101、利用空间位置参数,确定针对高能粒子的目标MPI进程;
[0044] 具体地,空间位置参数包括高能粒子在xyz三维坐标系中z方向上的坐标值和高 能粒子在xyz三维坐标系中z方向上的截面个数,利用坐标值和截面个数,计算得到目标 MPI进程的编号。
[0045] 进一步地,在GTC软件中,每一个高能粒子携带了位置、速度等信息,基于其空间 坐标,经过一定的变换,可直接计算出待发送数据的目标MPI进程。具体地,可以利用以下 公式计算得到目标MPI进程的编号:
[0046]
[0047] 其中,Destination_MPI_rank为目标MPI进程的编号,z为高能粒子在xyz三维坐 标系中z方向上的坐标值,及Toroidal_Number为高能粒子在xyz三维坐标系中z方向上 的截面个数。LN表示最接近浮点数a的整数,其中,L?」<a。
[0048] 步骤S102、将高能粒子的粒子信息发送至目标MPI进程。
[0049] 具体地,计算出目标进程的编号即可定位到目标进程,接着将粒子信息发送至目 标进程。以〇号MPI进程为例,如其需要将粒子信息发送至10号MPI进程,则直接发送即 可,不像原GTC程序,还需通过中间进程中转。
[0050] 在实际应用中,每一个MPI进程既可能是发送源,也可能是其它MPI进程的发送目 标,因此每一个MPI进程既需要向目标进程发送数据,也需要接收来自其它作为发送源的 MPI进程的数据。当所有的进程都完成了数据交换后,MPI通信结束。
[0051] 以上技术方案中,在确定目标MPI进程后,将粒子信息直接发送至目标MPI进程, 不存在漫无目的地传输粒子信息的现象,保证了 MPI通信的时间与MPI进程个数无关,从而 有效解决了现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题,进而 显著提高了 GTC软件的运行性能。
[0052] 并且,本发明上述技术方案具有高扩展性、高效率、易于实现的特点。
[0053] 基于上述实施例提供的一种GTC软件的MPI通信方法,本发明还提供了另一实施 例,针对步骤S1
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1