CN105094998B - 一种gtc软件的mpi通信方法及系统 - Google Patents

一种gtc软件的mpi通信方法及系统 Download PDF

Info

Publication number
CN105094998B
CN105094998B CN201510608454.1A CN201510608454A CN105094998B CN 105094998 B CN105094998 B CN 105094998B CN 201510608454 A CN201510608454 A CN 201510608454A CN 105094998 B CN105094998 B CN 105094998B
Authority
CN
China
Prior art keywords
particle
high energy
mpi
target
energy particle
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
CN201510608454.1A
Other languages
English (en)
Other versions
CN105094998A (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.)
Inspur Beijing Electronic Information Industry Co Ltd
Original Assignee
Inspur Beijing Electronic Information Industry Co Ltd
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 Inspur Beijing Electronic Information Industry Co Ltd filed Critical Inspur Beijing Electronic Information Industry Co Ltd
Priority to CN201510608454.1A priority Critical patent/CN105094998B/zh
Publication of CN105094998A publication Critical patent/CN105094998A/zh
Application granted granted Critical
Publication of CN105094998B publication Critical patent/CN105094998B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种GTC软件的MPI通信方法及系统,该方法包括:获取高能粒子的空间位置参数;利用空间位置参数,确定针对高能粒子的目标MPI进程;将高能粒子的粒子信息发送至目标MPI进程。即在确定目标MPI进程后,将粒子信息直接发送至目标MPI进程,不存在漫无目的地传输粒子信息的现象,保证了MPI通信的时间与MPI进程个数无关,从而有效解决了现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题,进而显著提高了GTC软件的运行性能。

Description

一种GTC软件的MPI通信方法及系统
技术领域
本发明涉及高性能计算领域中的并行程序设计及优化技术领域,特别是涉及一种GTC软件的MPI通信方法及系统。
背景技术
目前,GTC(Gyrokinetic Toroidal Code)是用来进行非线性回旋动理学湍流模拟的一个大规模并行软件,其由普林斯顿大学等离子体实验室研制,是国际热核聚变实验堆(ITER)计划(该实验是对聚变能源探索中至关重要的一步)中模拟高能粒子湍流的关键程序。
实际应用中,GTC通过对等离子体在磁场作用下的输运性质的模拟,可以再现等离子体随时间的运行演化过程,这对于研究磁约束受控核聚变,提高等离子体在托卡马克(Tokamak)中的约束时间,从而最终解决人类的能源问题有着非常重要的作用。
在现有的GTC软件的MPI(Multipoint Interface,多点接口)通信方法中,其MPI的通信过程非常繁杂。Rank 0,Rank 1,……,Rank N是N个MPI进程的编号。在MPI通信之前,由于每一个进程均不知道数据发送的目标进程,故每一个进程先将数据发至编号与其紧邻的下一个MPI进程。以0号进程为例,它先将数据发送至1号进程,随后在1号进程内进行判断是否还需要进一步的向下传输数据,如果是,就将接收到的数据再发送至2号进程,依次类推,直到每一个MPI进程均不再需要接收和发送数据为止。假定一共有N个MPI进程的话,每一个进程最多需要接收和发送N-1次,才能完成MPI通信。
以上可以看到,随着节点(即MPI进程)数量N的增大,MPI进程之间的通信次数也随之增大,当N的数值很大时,MPI通信的时间代价是十分高昂的,显著降低了GTC软件的运行性能。
发明内容
有鉴于此,本发明提供了一种GTC软件的MPI通信方法及系统,以解决现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题。
为解决上述技术问题,本发明提供一种GTC软件的MPI通信方法,包括:
获取高能粒子的空间位置参数;
利用所述空间位置参数,确定针对所述高能粒子的目标MPI进程;
将所述高能粒子的粒子信息发送至所述目标MPI进程。
上述方法中,优选的,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,利用所述坐标值和截面个数,计算得到所述目标MPI进程的编号。
上述方法中,优选的,利用以下公式计算得到所述目标MPI进程的编号:
其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标系中z方向上的截面个数。
上述方法中,优选的,采用非阻塞方式,将所述高能粒子的粒子信息发送至所述目标MPI进程。
上述方法中,优选的,将所述高能粒子的粒子信息发送至所述目标MPI进程,包括:
确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子的粒子信息存入缓冲区;
从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至目标MPI进程。
本发明还提供了一种GTC软件的MPI通信系统,包括:
空间位置参数获取单元,用于获取高能粒子的空间位置参数;
目标MPI进程确定单元,用于利用所述空间位置参数,确定针对所述高能粒子的目标MPI进程;
粒子信息发送单元,用于将所述高能粒子的粒子信息发送至所述目标MPI进程。
上述系统中,优选的,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,所述目标MPI进程确定单元具体用于利用所述坐标值和截面个数,计算得到所述目标MPI进程的编号。
上述系统中,优选的,所述目标MPI进程确定单元进一步用于利用以下公式计算得到所述目标MPI进程的编号:
其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标系中z方向上的截面个数。
上述系统中,优选的,所述粒子信息发送单元具体用于采用非阻塞方式,将所述高能粒子的粒子信息发送至所述目标MPI进程。
上述系统中,优选的,所述粒子信息发送单元包括:
存储子单元,用于确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子的粒子信息存入缓冲区;
发送子单元,用于从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至目标MPI进程。
以上本发明提供的一种GTC软件的MPI通信方法及系统中,MPI进程的数量为N,对于任一MPI进程,先获取高能粒子的空间位置参数;然后利用获取到的空间位置参数,确定针对高能粒子的目标MPI进程;最后将这个高能粒子的粒子信息发送至目标MPI进程。即在确定目标MPI进程后,将粒子信息直接发送至目标MPI进程,不存在漫无目的地传输粒子信息的现象,保证了MPI通信的时间与MPI进程个数无关,从而有效解决了现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题,进而显著提高了GTC软件的运行性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种GTC软件的MPI通信方法的流程图;
图2为本发明实施例提供的另一流程图;
图3为本发明实施例提供的一种GTC软件的MPI通信系统的结构框图示意图;
图4为本发明实施例提供的采用本发明技术方案在天河2号上的MPI性能测试结果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的核心是提供一种GTC软件的MPI通信方法及系统,以解决现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
参考图1,示出了本发明实施例提供的一种GTC软件的MPI通信方法的流程图,该方法具体可以包括如下步骤:
步骤S100、获取高能粒子的空间位置参数;
实际应用中,MPI进程的数量为N,对于任一MPI进程,先将需要发送的高能粒子的粒子信息挑选出来,然后获取这个高能粒子的空间位置参数;
步骤S101、利用空间位置参数,确定针对高能粒子的目标MPI进程;
具体地,空间位置参数包括高能粒子在xyz三维坐标系中z方向上的坐标值和高能粒子在xyz三维坐标系中z方向上的截面个数,利用坐标值和截面个数,计算得到目标MPI进程的编号。
进一步地,在GTC软件中,每一个高能粒子携带了位置、速度等信息,基于其空间坐标,经过一定的变换,可直接计算出待发送数据的目标MPI进程。具体地,可以利用以下公式计算得到目标MPI进程的编号:
其中,Destination_MPI_rank为目标MPI进程的编号,z为高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为高能粒子在xyz三维坐标系中z方向上的截面个数。表示最接近浮点数a的整数,其中,
步骤S102、将高能粒子的粒子信息发送至目标MPI进程。
具体地,计算出目标进程的编号即可定位到目标进程,接着将粒子信息发送至目标进程。以0号MPI进程为例,如其需要将粒子信息发送至10号MPI进程,则直接发送即可,不像原GTC程序,还需通过中间进程中转。
在实际应用中,每一个MPI进程既可能是发送源,也可能是其它MPI进程的发送目标,因此每一个MPI进程既需要向目标进程发送数据,也需要接收来自其它作为发送源的MPI进程的数据。当所有的进程都完成了数据交换后,MPI通信结束。
以上技术方案中,在确定目标MPI进程后,将粒子信息直接发送至目标MPI进程,不存在漫无目的地传输粒子信息的现象,保证了MPI通信的时间与MPI进程个数无关,从而有效解决了现有技术中MPI通信的时间随着节点规模的增大而显著增加的技术问题,进而显著提高了GTC软件的运行性能。
并且,本发明上述技术方案具有高扩展性、高效率、易于实现的特点。
基于上述实施例提供的一种GTC软件的MPI通信方法,本发明还提供了另一实施例,针对步骤S102、将高能粒子的粒子信息发送至目标MPI进程,具体地,参考图2,可以包括如下内容:
步骤S200、确定针对高能粒子的目标MPI进程之后,将高能粒子的粒子信息存入缓冲区;
具体地,可以按次序将粒子信息存入缓冲区,该次序可以是计算出目标MPI进行的顺序;
步骤S201、从缓冲区提取粒子信息,并将提取的粒子信息发送至目标MPI进程。
本发明中,可以采用非阻塞方式,将高能粒子的粒子信息发送至目标MPI进程。
基于上述本发明各实施例所公开的GTC软件的MPI通信方法,在本发明再一实施例中,从软件编程的角度对上述技术方案进行详细阐述,具体内容如下:
对于步骤S101,确定针对高能粒子的目标MPI进程,该过程也称计算待发送数据的目标进程,该过程的伪代码如下:
算法1:计算待发送数据的目标进程
在上述算法1中,首先取得每一个粒子的z方向坐标,随后通过if语句判断该粒子是否需要发送至其它MPI进程,如果需要发送,则进入if循环内部。在if循环内,首先计算目标MPI进程的编号,随后将粒子信息存入发送缓冲区。
对于步骤S102,每一个MPI进程将待发送数据(即粒子信息)发送至目标进程。该过程又分为发送和接收两个步骤。首先将粒子信息发送给目标进程。由于当前的MPI进程又可能是其它MPI进程的目标进程,因此,随后需要接收来自其它进程的粒子。该过程完整的伪代码如下:
算法2:将粒子信息发送至目标进程。
可以看到,在算法2中,利用MPI非阻塞通信函数mpi_isend实现了非阻塞发送操作。由于发送前不能确定有多少个目标进程,因此需要对所有的可能目标进程进行遍历,该遍历操作通过循环来实现。在循环中,首先将需要发送的粒子个数isendcount发送给目标MPI进程,随后,判断isendcount是否大于0,如果其大于0,则将粒子数据发送给目标进程。如果isendcount小于0,意味着对于第id个MPI进程,当前进程无需发送数据。
算法3:当前进程接受来自其它进程的粒子。
在算法3中,利用MPI非阻塞通信函数mpi_irecv实现了非阻塞接收操作。由于接收前不能确定有多少个作为发送源的MPI进程,因此同样需要对所有的MPI进程进行遍历。该遍历通过循环来实现。在循环中,首先通过if语句将自身进程排除在外,随后接收来自每一个进程的粒子个数irecvcount,如果该变量值大于0,则从第id个目标进程接收数据。反之,则意味着无需从第id个进程接受数据。
算法4:完成非阻塞通信。
由于采用了MPI非阻塞通信,为保证通信的安全性,需给出其完成的语句。算法4实现了该功能。
基于上述本发明实施例提供的GTC软件的MPI通信方法相对应,本发明实施例还提供了一种GTC软件的MPI通信系统,参考图3,该系统300可以包括如下内容:
空间位置参数获取单元301,用于获取高能粒子的空间位置参数;
目标MPI进程确定单元302,用于利用空间位置参数,确定针对高能粒子的目标MPI进程;
粒子信息发送单元303,用于将高能粒子的粒子信息发送至目标MPI进程。
本发明中,上述系统300中,空间位置参数包括高能粒子在xyz三维坐标系中z方向上的坐标值和高能粒子在xyz三维坐标系中z方向上的截面个数,目标MPI进程确定单元302具体用于利用坐标值和截面个数,计算得到目标MPI进程的编号。
本发明中,目标MPI进程确定单元302进一步用于利用以下公式计算得到目标MPI进程的编号:
其中,Destination_MPI_rank为目标MPI进程的编号,z为高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为高能粒子在xyz三维坐标系中z方向上的截面个数。
本发明中,粒子信息发送单元303具体用于采用非阻塞方式,将高能粒子的粒子信息发送至目标MPI进程。
本发明中,粒子信息发送单元303可以包括:
存储子单元,用于确定针对高能粒子的目标MPI进程之后,将高能粒子的粒子信息存入缓冲区;
发送子单元,用于从缓冲区提取粒子信息,并将提取的粒子信息发送至目标MPI进程。
至此完成了对GTC软件的MPI通信方法及系统的说明。采用本发明的技术方案,在大规模节点上,MPI通信的性能将有着极大的提升。图4给出了采用本发明技术方案在天河2号上的MPI性能测试结果。其中横坐标代表采用的天河2号计算节点数,纵坐标代表MPI通信的加速比,
可以看到,优化后GTC软件在大规模节点上取得了很大的加速比。以2048个节点为例,其加速比达到了7.6倍。这说明了优化后的GTC软件有效的克服了原软件中随着计算节点规模的增大,MPI通信时间急剧增加的瓶颈,充分证明了本文设计的MPI通信方法的优越性。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统类实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
以上对本发明所提供的一种GTC软件的MPI通信方法及系统进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (6)

1.一种GTC软件的MPI通信方法,其特征在于,包括:
获取高能粒子的空间位置参数;
利用所述空间位置参数,确定针对所述高能粒子的目标MPI进程;
将所述高能粒子的粒子信息发送至所述目标MPI进程;
其中,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,利用所述坐标值和截面个数,计算得到所述目标MPI进程的编号;
利用以下公式计算得到所述目标MPI进程的编号:
其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标系中z方向上的截面个数。
2.如权利要求1所述的方法,其特征在于,采用非阻塞方式,将所述高能粒子的粒子信息发送至所述目标MPI进程。
3.如权利要求2所述的方法,其特征在于,将所述高能粒子的粒子信息发送至所述目标MPI进程,包括:
确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子的粒子信息存入缓冲区;
从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至所述目标MPI进程。
4.一种GTC软件的MPI通信系统,其特征在于,包括:
空间位置参数获取单元,用于获取高能粒子的空间位置参数;
目标MPI进程确定单元,用于利用所述空间位置参数,确定针对所述高能粒子的目标MPI进程;
粒子信息发送单元,用于将所述高能粒子的粒子信息发送至所述目标MPI进程;
其中,所述空间位置参数包括所述高能粒子在xyz三维坐标系中z方向上的坐标值和所述高能粒子在xyz三维坐标系中z方向上的截面个数,所述目标MPI进程确定单元具体用于利用所述坐标值和截面个数,计算得到所述目标MPI进程的编号;
所述目标MPI进程确定单元进一步用于利用以下公式计算得到所述目标MPI进程的编号:
其中,Destination_MPI_rank为所述目标MPI进程的编号,z为所述高能粒子在xyz三维坐标系中z方向上的坐标值,及Toroidal_Number为所述高能粒子在xyz三维坐标系中z方向上的截面个数。
5.如权利要求4所述的系统,其特征在于,所述粒子信息发送单元具体用于采用非阻塞方式,将所述高能粒子的粒子信息发送至所述目标MPI进程。
6.如权利要求5所述的系统,其特征在于,所述粒子信息发送单元包括:
存储子单元,用于确定针对所述高能粒子的目标MPI进程之后,将所述高能粒子的粒子信息存入缓冲区;
发送子单元,用于从所述缓冲区提取所述粒子信息,并将提取的粒子信息发送至目标MPI进程。
CN201510608454.1A 2015-09-22 2015-09-22 一种gtc软件的mpi通信方法及系统 Active CN105094998B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510608454.1A CN105094998B (zh) 2015-09-22 2015-09-22 一种gtc软件的mpi通信方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510608454.1A CN105094998B (zh) 2015-09-22 2015-09-22 一种gtc软件的mpi通信方法及系统

Publications (2)

Publication Number Publication Date
CN105094998A CN105094998A (zh) 2015-11-25
CN105094998B true CN105094998B (zh) 2019-05-10

Family

ID=54575503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510608454.1A Active CN105094998B (zh) 2015-09-22 2015-09-22 一种gtc软件的mpi通信方法及系统

Country Status (1)

Country Link
CN (1) CN105094998B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101334743A (zh) * 2008-05-21 2008-12-31 清华大学 基于配置文件的并行程序自动映射实现方法
US7607070B2 (en) * 2004-09-13 2009-10-20 National Instruments Corporation System and method for in-line consistency checking of packetized data
CN102902514A (zh) * 2012-09-07 2013-01-30 西安交通大学 半隐式类粒子法的大规模并行处理方法
CN103701621A (zh) * 2013-12-10 2014-04-02 中国科学院深圳先进技术研究院 一种消息传递接口广播方法及装置
CN104778088A (zh) * 2015-04-17 2015-07-15 华中科技大学 一种基于减少进程间通信开销的并行i/o优化方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7607070B2 (en) * 2004-09-13 2009-10-20 National Instruments Corporation System and method for in-line consistency checking of packetized data
CN101334743A (zh) * 2008-05-21 2008-12-31 清华大学 基于配置文件的并行程序自动映射实现方法
CN102902514A (zh) * 2012-09-07 2013-01-30 西安交通大学 半隐式类粒子法的大规模并行处理方法
CN103701621A (zh) * 2013-12-10 2014-04-02 中国科学院深圳先进技术研究院 一种消息传递接口广播方法及装置
CN104778088A (zh) * 2015-04-17 2015-07-15 华中科技大学 一种基于减少进程间通信开销的并行i/o优化方法与系统

Also Published As

Publication number Publication date
CN105094998A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
CN106056212B (zh) 一种人工神经网络计算核
CN110417456B (zh) 基于无人机的信息传输方法
CN106021824B (zh) 一种确定性有限元软件在含区间参数简单或大型复杂结构分析中的应用方法
CN103345580B (zh) 基于格子Boltzmann方法的并行CFD方法
CN107515741A (zh) 一种变电站与主站间数据的轻量化传输方法和装置
CN106056211A (zh) 神经元计算单元、神经元计算模块及人工神经网络计算核
CN110287450A (zh) 基于积分变分节块法的响应矩阵并行处理实现方法
CN104901832A (zh) 一种航空自组网半实物网络仿真平台
CN106776729A (zh) 一种大规模知识图谱路径查询预测器构造方法
CN112036573B (zh) 一种基于中等规模有噪声量子计算机的量子位交互拓扑结构及其映射方法
KR101818936B1 (ko) 딥러닝 수행 시스템 및 방법
CN101499175B (zh) 基于xml和lod技术的三维图形多分辨率显示方法
CN105094998B (zh) 一种gtc软件的mpi通信方法及系统
CN109767492A (zh) 一种变电站三维模型的间距计算方法
Huang et al. A node-oriented discrete event scheduling algorithm based on finite resource model
CN103049341A (zh) 带预判方法的obb层次体树碰撞检测方法
CN104360962A (zh) 匹配于高性能计算机结构的多级嵌套数据传输方法与系统
CN104348695A (zh) 一种基于人工免疫系统的虚拟网络映射方法及其系统
CN102158413B (zh) 基于邻域免疫克隆选择的多智能体组播路由方法
CN115292044A (zh) 数据处理方法、装置、电子设备及存储介质
Akkaya et al. dMCS: distributed molecular communication simulator
Khan et al. Overview of iFogSim: A Tool for Simulating Fog Networks of the Future
Li et al. Concentration aware routing protocol in molecular communication nanonetworks
CN105099466A (zh) 一种用于128位并行数据的crc校验矩阵生成方法
CN106576100B (zh) Tcp网络代理配置方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant