CN115102864A - 一种用于Dragonfly拓扑的Allgather方法及装置 - Google Patents

一种用于Dragonfly拓扑的Allgather方法及装置 Download PDF

Info

Publication number
CN115102864A
CN115102864A CN202210707577.0A CN202210707577A CN115102864A CN 115102864 A CN115102864 A CN 115102864A CN 202210707577 A CN202210707577 A CN 202210707577A CN 115102864 A CN115102864 A CN 115102864A
Authority
CN
China
Prior art keywords
data
communication
map
allgather
processes
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.)
Granted
Application number
CN202210707577.0A
Other languages
English (en)
Other versions
CN115102864B (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202210707577.0A priority Critical patent/CN115102864B/zh
Publication of CN115102864A publication Critical patent/CN115102864A/zh
Application granted granted Critical
Publication of CN115102864B publication Critical patent/CN115102864B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种用于Dragonfly拓扑的Allgather方法及装置,包括:从用户传入的参数获取参与通信的进程总数N;进行数据位置预调整,若所述进程总数N为2的幂,则使用第一数据位置预调整模型对数据位置进行调整,否则所述进程总数N为非2的幂,使用第二数据位置预调整模型对数据位置进行调整;进程间进行通信,若所述进程总数N为2的幂,则使用第一通信模型进行通信;否则所述进程总数N为非2的幂,使用第二通信模型进行通信。本发明方法通过数据位置预调整和与之相对应的通信模型,尽可能将通信从组间通信转为组内通信,大大降低通信中数据包的平均跳数,减少对网络的压力。

Description

一种用于Dragonfly拓扑的Allgather方法及装置
技术领域
本发明属于高性能计算领域,尤其涉及一种用于Dragonfly拓扑的Allgather方法及装置。
背景技术
Dragonfly拓扑是一种新型的低直径、高可扩展、性价比高的拓扑,主要应用于超级计算机互连网络系统中。一个典型的Dragonfly拓扑由若干个组构成,每个组拥有相同数量的交换机,这些交换机下连计算节点,并且每个组的交换机之间是全连接的;当把一个组的所有交换机视为一个更大的虚拟交换机,每个组之间也是全连接的。在交换机端口数一定的情况下,要求网络能互连尽可能多的计算节点,就需要组与组之间只有一条直连链路。Dragonfly拓扑在均匀流量模式下,具有优异的性能表现,可以满足超级计算机网络对于高带宽、低延迟的需求。Dragonfly拓扑目前已经被应用到Cray XC系列超算中,并且还会在美国新三大超算Frontier、EL Capitan、Aurora中使用。
消息传递接口(Message Passing Interface,MPI)是当今高性能计算领域最重要、最主流的并行程序编程框架。MPI中不但包含基本的发送和接收这样的一对一通信接口,还包含许多集合通信接口,例如:MPI_Alltoall、MPI_Allgather、MPI_Allreduce等。编程者只需要调用函数接口即可完成通信,而不必关心通信算法的实现,更不用了解负责通信的硬件使用,编写的并行应用还具有很好的可移植性。
Allgather是MPI中一种重要的聚合通信接口,它负责将一个通信域中所有进程的发送缓冲区中的数据进行聚合,并将数据按照发送进程的编号的顺序进行排布,然后将所有数据广播到所有进程,并放置于其接收缓冲区内。
在常见的MPI开源实现中,Allgather操作使用的算法是Recursive Doubling算法和Bruck算法。然而这些算法没有充分利用Dragonfly拓扑的特性,只与距离较近的节点进行小数据量的通信,然而与距离较远的节点进行大数据量的通信,并且会在组与组之间的链路产生大量的链路拥塞,大大降低了通信速度。这是由Dragonfly拓扑的特性导致的,因此将Allgather操作的实现算法面向Dragonfly拓扑进行优化是非常有必要的。
在面向Dragonfly拓扑优化的聚合通信算法中,虽然已有PAARD(Proximity-AwareAll-Reduce)算法、SDTA(Stepwise Dissemination,Transfer or Aggregation)系列算法,但是这些优化方案中均假设使用整个Dragonfly拓扑中的所有计算节点。假设使用高性能计算系统中所有的计算节点的优化方案难以在真实部署的系统中应用,因为对于高性能计算系统来说,往往需要同时服务大量用户,很难将全系统资源调度给单一用户使用;除此之外,对于拥有海量计算节点的高性能计算系统,往往存在故障节点,难以保证所有计算节点同时都处于可用状态。因此,在高性能计算系统中,需要提出一种能在任意数量的任意节点上使用的聚合通信算法优化方案。
一种常用的缓解Dragonfly拓扑中链路拥塞的方法是将MPI程序中的进程随机映射到调度系统分配给作业的节点上,而不是线性映射。这种方法虽然缓解了上述算法中链路竞争的问题,但是破坏了应用程序中近邻通信的性能。在许多高性能计算领域的并行应用中,程序会假设编号相近的节点具有更近的物理距离,并且利用这一点优化通信。将MPI程序中的进程随机映射到调度系统分配给作业的节点上,有时会是一种得不偿失的行为。因此,在Dragonfly拓扑上的MPI_Allgather实现方法,需要能在线性映射的条件下取得良好的优化效果。
发明内容
本发明的目的是通过对MPI库中的Allgather实现进行优化,克服上述现有实现算法在Dragonfly拓扑中引起的拓扑错配和链路拥塞问题,适用于Dragonfly拓扑中任意数量的任意节点参与通信(不对调度系统做任何限制),MPI程序中的进程线性映射到调度系统分配给作业的节点上。
为了解决上述技术问题,本发明第一方面提出一种用于Dragonfly拓扑的Allgather方法,通过改变节点之间的通信模式,将数据量较大的通信转移到较近的节点之间进行,将数据量较小的通信转移到较远的节点之间进行。其特征在于数据位置预调整模型与进程间通信的通信模型,具体步骤包括:
S1,从用户传入的参数获取参与通信的进程总数N;
S2,进行数据位置预调整,若所述进程总数N为2的幂,则使用第一数据位置预调整模型对数据位置进行调整,否则所述进程总数N为非2的幂,使用第二数据位置预调整模型对数据位置进行调整;
S3,进程间进行通信,若所述进程总数N为2的幂,则使用第一通信模型进行通信;否则所述进程总数N为非2的幂,使用第二通信模型进行通信。
作为一种可选的实施方式,所述当进程总数N为2的幂时,使用第一数据位置预调整模型对数据位置进行调整(S21);所述第一数据位置预调整模型,改变了数据存储的位置;所述第一数据位置预调整模型对数据位置进行调整的具体方法为:
S211,每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
S212,每个进程将所述自身在通信域中的进程编号i转换成长度为log2 N的二进制串形式表示;
S213,每个进程将所述二进制串顺序反转,得到进程编号i′;
S214,如果i不等于i′,则进程i与进程i′交换全部数据。
作为一种可选的实施方式,所述当进程总数N为非2的幂时,使用第二数据位置预调整模型对数据位置进行调整(S22);所述第二数据位置预调整模型,改变了数据存储的位置;所述第二数据位置预调整模型对数据位置进行调整的具体方法为:
S221,每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
S222,计算数据位置调整的映射关系Map[x],其中Map[x]表示进程编号为x的进程需要将数据转移到进程Map[x]中,x∈[0,N-1],Map[x]∈[0,N-1];
S223,每个进程i将所有数据转移到进程Map[i]中。
作为一种可选的实施方式,所述当进程总数N为非2的幂时,使用第二数据位置预调整模型对数据位置进行调整,计算数据位置调整的映射关系Map[x];所述计算数据位置调整的映射关系Map[x]指定了数据存储的位置;所述计算数据位置调整的映射关系Map[x]的具体方法为:
S2221,设置当前进程指针rank_p为0;
S2222,在总计gcd(N,n)轮计算中的第k轮计算中,依次计算
Figure BDA0003706009800000031
个映射关系,其中计算的第j个映射关系为Map[(k+jn)%N]=rank_p,在每次计算后rank_p自增1,其中gcd(N,n)表示N与n的最大公约数,k∈[0,gcd(N,n)),
Figure BDA0003706009800000032
Figure BDA0003706009800000041
rank_p∈[0,N-1]。
作为一种可选的实施方式,所述当进程总数N为2的幂时,使用第一通信模型进行进程间数据的交换(S31);所述第一通信模型,将数据广播到了其他进程;所述使用第一通信模型进行进程间数据的交换的具体方法为:
S311,在总计log2 N步通信中的第k步中,每个进程i计算其在第k步的通信对象,进程
Figure BDA0003706009800000042
其中i∈[0,N-1];
S312,所述进程i发送所有数据给所述进程ik,并从进程ik接收数据;
S313,如果i<ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之后;
S314,如果i>ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之前。
作为一种可选的实施方式,所述当进程总数N为非2的幂时,使用第二通信模型进行进程间数据的交换(S32);所述第二通信模型,将数据广播到了其他进程;所述使用第二通信模型进行进程间数据的交换的具体方法为:
S321,在总计
Figure BDA0003706009800000043
步通信中的前
Figure BDA0003706009800000044
步通信中的第k步,进程Map[i]发送所有数据给进程Map[(i-2k+N)%N]数据,并从Map[(i+2k)%N]接收数据,在接收到数据后将其拼接进程Map[i]自身持有的数据之后,其中
Figure BDA0003706009800000045
Figure BDA0003706009800000046
S322,在总计
Figure BDA0003706009800000047
步通信中的最后一步,进程Map[i]发送其持有的前
Figure BDA0003706009800000048
Figure BDA0003706009800000049
数据给进程
Figure BDA00037060098000000410
并从进程
Figure BDA00037060098000000411
接收数据,在接收到数据后将其拼接在进程Map[i]自身持有的数据之后;
S323,每个进程i对本地数据做向右横向移动,移动距离是Map[i]个数据块的大小,在右侧溢出的数据重新排列在数据前端。
本发明第二方面公开了一种用于Dragonfly拓扑的Allgather装置,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行本发明实施例一所述用于Dragonfly拓扑的Allgather方法。
本发明第三方面公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,执行本发明实施例一所述的用于Dragonfly拓扑的Allgather方法。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,通过数据位置预调整模型与进程间通信模型,使通信数据量大的通信位于系统编号较近的节点之间,使通信数据量小的通信位于系统编号较远的节点之间,从而尽可能将通信从组间通信转为组内通信。将通信从组间通信转为组内通信后,能大大降低通信中数据包的平均跳数,减少对网络的压力,减少对其他应用的干扰。在使用最短路由的情况下,可以大幅减少网络中的拥塞。在使用自适应路由的情况下,选择非最短路径的数据包大幅减少。
本发明中的实现算法虽然会导致比现有实现多1/N的通信量,因此在小规模并行中,建议使用现有开源实现算法。但是在大规模并行程序中,由此获得的性能提升可以掩盖其转移数据的开销,并获得可观的性能提升。建议在作业的节点数量是Dragonfly拓扑中组的数量的两倍以上时,使用本发明中的算法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种用于Dragonfly拓扑的Allgather方法的流程示意图;
图2是本发明实施例公开的一种用于Dragonfly拓扑的Allgather方法中当N为2的幂时的数据交换方式;
图3是本发明实施例公开的一种用于Dragonfly拓扑的Allgather方法中当N为非2的幂时的数据交换方式;
图4是本发明实施例公开的一种用于Dragonfly拓扑的Allgather方法与现有的MPI_Allgather实现算法的性能对比。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本发明公开了一种用于Dragonfly拓扑的Allgather方法及装置,能够从用户传入的参数获取参与通信的进程总数N;进行数据位置预调整,若所述进程总数N为2的幂,则使用第一数据位置预调整模型对数据位置进行调整,否则所述进程总数N为非2的幂,使用第二数据位置预调整模型对数据位置进行调整;进程间进行通信,若所述进程总数N为2的幂,则使用第一通信模型进行通信;否则所述进程总数N为非2的幂,使用第二通信模型进行通信。
实施例一
如图1所示:
S1,从用户传入的参数获取参与通信的进程总数N;
S2,进行数据位置预调整,若所述进程总数N为2的幂,则使用第一数据位置预调整模型对数据位置进行调整,否则所述进程总数N为非2的幂,使用第二数据位置预调整模型对数据位置进行调整;
S3,进程间进行通信,若所述进程总数N为2的幂,则使用第一通信模型进行通信;否则所述进程总数N为非2的幂,使用第二通信模型进行通信。
可选的,使用第一数据位置预调整模型对数据位置进行调整的步骤包括:
S211,每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
S212,每个进程将所述自身在通信域中的进程编号i转换成长度为log2 N的二进制串形式表示;
S213,每个进程将所述二进制串顺序反转,得到进程编号i′;
S214,如果i不等于i′,则进程i与进程i′交换全部数据。
可选的,使用第二数据位置预调整模型对数据位置进行调整的步骤包括:
S221,每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
S222,计算数据位置调整的映射关系Map[x],其中Map[x]表示进程编号为x的进程需要将数据转移到进程Map[x]中,x∈[0,N-1],Map[x]∈[0,N-1];
S223,每个进程i将所有数据转移到进程Map[i]中。
可选的,计算数据位置调整的映射关系Map[x]的步骤包括:
S2221,设置当前进程指针rank_p为0;
S2222,在总计gcd(N,n)轮计算中的第k轮计算中,依次计算
Figure BDA0003706009800000071
个映射关系,其中计算的第j个映射关系为Map[(k+jn)%N]=rank_p,在每次计算后rank_p自增1,其中gcd(N,n)表示N与n的最大公约数,k∈[0,gcd(N,n)),
Figure BDA0003706009800000072
Figure BDA0003706009800000073
rank_p∈[0,N-1]。
可选的,使用第一通信模型进行通信的步骤包括:
S311,在总计log2 N步通信中的第k步中,每个进程i计算其在第k步的通信对象,进程
Figure BDA0003706009800000074
其中i∈[0,N-1];
S312,所述进程i发送所有数据给所述进程ik,并从进程ik接收数据;
S313,如果i<ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之后;
S314,如果i>ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之前。
可选的,使用第二通信模型进行通信的步骤包括:
S321,在总计
Figure BDA0003706009800000075
步通信中的前
Figure BDA0003706009800000076
步通信中的第k步,进程Map[i]发送所有数据给进程Map[(i-2k+N)%N]数据,并从Map[(i+2k)%N]接收数据,在接收到数据后将其拼接进程Map[i]自身持有的数据之后,其中
Figure BDA0003706009800000081
Figure BDA0003706009800000082
S322,在总计
Figure BDA0003706009800000083
步通信中的最后一步,进程Map[i]发送其持有的前N-
Figure BDA0003706009800000084
数据给进程
Figure BDA0003706009800000085
并从进程
Figure BDA0003706009800000086
接收数据,在接收到数据后将其拼接在进程Map[i]自身持有的数据之后;
S323,每个进程i对本地数据做向右横向移动,移动距离是Map[i]个数据块的大小,在右侧溢出的数据重新排列在数据前端。
在Dragonfly拓扑中,由于组内链路的物理长度较短,因此具有更低的延迟;并且Dragonfly拓扑中组内链路是组间链路数量的2倍,所以应当尽量多使用组内链路。本实施例通过改变节点之间的通信模式,将数据量较大的通信转移到较近的节点之间进行,将数据量较小的通信转移到较远的节点之间进行。
实施例二
当在Dragonfly拓扑中,有8个进程参与MPI_Allgather通信,参与通信的进程总数N为2的幂,进程编号为0,1,2,3,4,5,6,7,如图2所示。
使用第一数据位置预调整模型对数据位置进行调整,进程1与进程4交换数据,进程3与进程6交换数据,其他进程无需交换数据。
使用第一通信模型进行通信,在第1步通信,进程0发送数据给进程4,进程1发送数据给进程5,进程2发送数据给进程6,进程3发送数据给进程7,进程4发送数据给进程0,进程5发送数据给进程1,进程6发送数据给进程2,进程7发送数据给进程3;在第2步通信,进程0发送数据给进程2,进程1发送数据给进程3,进程2发送数据给进程0,进程3发送数据给进程1,进程4发送数据给进程6,进程5发送数据给进程7,进程6发送数据给进程4,进程7发送数据给进程5;在第3步通信,进程0发送数据给进程1,进程1发送数据给进程0,进程2发送数据给进程3,进程3发送数据给进程2,进程4发送数据给进程5,进程5发送数据给进程4,进程6发送数据给进程7,进程7发送数据给进程6;
每次进程接收到数据,都按照自身进程编号与发送进程编号的大小顺序对数据进行拼接。
实施例三
当在Dragonfly拓扑中,有9个进程参与MPI_Allgather通信,参与通信的进程总数N为非2的幂,进程编号为0,1,2,3,4,5,6,7,8,如图3所示。
使用第二数据位置预调整模型对数据位置进行调整,进程1发送数据给进程7,进程2发送数据给进程5,进程4发送数据给进程1,进程5发送数据给进程8,进程7发送数据给进程4,进程8发送数据给进程2,其他进程无需发送数据。
使用第二通信模型进行通信,在第1步通信,进程0发送数据给进程2,进程1发送数据给进程3,进程2发送数据给进程4,进程3发送数据给进程5,进程4发送数据给进程6,进程5发送数据给进程7,进程6发送数据给进程8,进程7发送数据给进程0,进程8发送数据给进程1;在第2步通信,进程0发送数据给进程4,进程1发送数据给进程5,进程2发送数据给进程6,进程3发送数据给进程7,进程4发送数据给进程8,进程5发送数据给进程0,进程6发送数据给进程1,进程7发送数据给进程2,进程8发送数据给进程3;在第3步通信,进程0发送数据给进程8,进程1发送数据给进程0,进程2发送数据给进程1,进程3发送数据给进程2,进程4发送数据给进程3,进程5发送数据给进程4,进程6发送数据给进程5,进程7发送数据给进程6,进程8发送数据给进程7;在第4步通信,每个进程仅发送其第一块数据,进程0发送数据给进程7,进程1发送数据给进程8,进程2发送数据给进程0,进程3发送数据给进程1,进程4发送数据给进程2,进程5发送数据给进程3,进程6发送数据给进程4,进程7发送数据给进程5,进程8发送数据给进程6;
每次进程接收到数据,都将数据拼接在进程自身持有的数据之后;
最后每个进程对本地数据做向右横向移动,在右侧溢出的数据重新排列在数据前端,进程1向右移动4块数据大小,进程2向右移动8块数据大小,进程3向右移动3块数据大小,进程4向右移动7块数据大小,进程5向右移动2块数据大小,进程6向右移动6块数据大小,进程7向右移动1块数据大小,进程8向右移动5块数据大小,进程0无需移动。
实施例四
将本发明一种用于Dragonfly拓扑的Allgather方法与现有的MPI_Allgather实现算法进行对比,使用CODES模拟器模拟一个44310节点的Dragonfly拓扑网络。网络中使用40端口交换机,其中10个端口连接到计算节点,20个端口连接到组内其他交换机,10个端口连接到其他组的交换机。每个组共有210个计算节点,共有211个组,一共44310个计算节点。链路带宽设置为12GB/s,组间链路的延迟为150ns,组间链路的延迟为350ns,交换机延迟为150ns。在模拟中纳入将计算及数据移动开销。
在上述Dragonfly拓扑网络中模拟执行32767节点与32768节点的MPI_Allgather,每个节点上运行1个MPI进程,设置每个进程的发送缓冲区大小为4M,接收缓冲区大小约为128M,在最短路由、非最短路由、自适应路由中进行比较,结果如图4所示。
在32767节点的MPI_Allgather中,在最短路由条件下,加速了270%;在非最短路由条件下,加速了35%;在自适应路由条件下,加速了167%。
在32768节点的MPI_Allgather中,在最短路由条件下,加速了2224%;在非最短路由条件下,加速了108%;在自适应路由条件下,加速了237%。
由此可以说明该MPI_Allgather实现方法可以有效减少链路中的拓扑错配和链路拥塞,大幅提升了聚合通信速度。
实施例四
本发明实施例公开了一种用于Dragonfly拓扑的Allgather装置,该装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如实施例一~实施例三所述用于Dragonfly拓扑的Allgather方法。
实施例五
本发明实施例公开了一种计算机存储介质,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,执行如实施例一~实施例三所述用于Dragonfly拓扑的Allgather方法。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的具体描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(ErasableProgrammable Read Only Memory,EPROM)、一次可编程只读存储器(One-timeProgrammable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
最后应说明的是:本发明实施例公开的一种用于Dragonfly拓扑的Allgather方法及装置所揭露的仅为本发明较佳实施例而已,仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各项实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应的技术方案的本质脱离本发明各项实施例技术方案的精神和范围。

Claims (8)

1.一种用于Dragonfly拓扑的Allgather方法,其特征在于,数据位置预调整模型与进程间通信的通信模型,具体步骤包括:
S1,从用户传入的参数获取参与通信的进程总数N;
S2,进行数据位置预调整,若所述进程总数N为2的幂,则使用第一数据位置预调整模型对数据位置进行调整,否则所述进程总数N为非2的幂,使用第二数据位置预调整模型对数据位置进行调整;
S3,进程间进行通信,若所述进程总数N为2的幂,则使用第一通信模型进行通信;否则所述进程总数N为非2的幂,使用第二通信模型进行通信。
2.根据权利要求1所述的用于Dragonfly拓扑的Allgather方法,其特征在于第一数据位置预调整模型的方法,其步骤包括:
每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
每个进程将所述自身在通信域中的进程编号i转换成长度为log2N的二进制串形式表示;
每个进程将所述二进制串顺序反转,得到进程编号i′;
如果i不等于i′,则进程i与进程i′交换全部数据。
3.根据权利要求1所述的用于Dragonfly拓扑的Allgather方法,其特征在于第二数据位置预调整模型的方法,其步骤包括:
每个进程获取自身在通信域中的进程编号i,其中i∈[0,N-1];
计算数据位置调整的映射关系Map[x],其中Map[x]表示进程编号为x的进程需要将数据转移到进程Map[x]中,x∈[0,N-1],Map[x]∈[0,N-1];
每个进程i将所有数据转移到进程Map[i]中。
4.根据权利要求3所述的用于Dragonfly拓扑的Allgather方法,其特征在于计算数据位置调整的映射关系Map[x]的方法,其步骤包括:
设置当前进程指针rank_p为0;
在总计gcd(N,n)轮计算中的第k轮计算中,依次计算
Figure FDA0003706009790000021
个映射关系,其中计算的第j个映射关系为Map[(k+jn)%N]=rank_p,在每次计算后rank_p自增1,其中gcd(N,n)表示N与n的最大公约数,k∈[0,gcd(N,n)),
Figure FDA0003706009790000022
Figure FDA0003706009790000023
rank_p∈[0,N-1]。
5.根据权利要求1所述的用于Dragonfly拓扑的Allgather方法,其特征在于第一通信模型进行通信的方法,其步骤包括:
在总计log2N步通信中的第k步中,每个进程i计算其在第k步的通信对象,进程
Figure FDA0003706009790000024
其中i∈[0,N-1];
所述进程i发送所有数据给所述进程ik,并从进程ik接收数据;
如果i<ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之后;
如果i>ik,则将所述从进程ik接收数据拼接在进程i自身持有的数据之前。
6.根据权利要求1所述的用于Dragonfly拓扑的Allgather方法,其特征在于第二通信模型进行通信的方法,其步骤包括:
在总计
Figure FDA0003706009790000025
步通信中的前
Figure FDA0003706009790000026
步通信中的第k步,进程Map[i]发送所有数据给进程Map[(i-2k+N)%N]数据,并从Map[(i+2k)%N]接收数据,在接收到数据后将其拼接进程Map[i]自身持有的数据之后,其中
Figure FDA0003706009790000027
Figure FDA0003706009790000028
在总计
Figure FDA0003706009790000029
步通信中的最后一步,进程Map[i]发送其持有的前
Figure FDA00037060097900000210
Figure FDA00037060097900000211
数据给进程
Figure FDA00037060097900000212
并从进程
Figure FDA00037060097900000213
接收数据,在接收到数据后将其拼接在进程Map[i]自身持有的数据之后;
每个进程i对本地数据做向右横向移动,移动距离是Map[i]个数据块的大小,在右侧溢出的数据重新排列在数据前端。
7.一种用于Dragonfly拓扑的Allgather装置,其特征在于,所述装置包括:
存储有可执行程序代码的存储器;
与所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,执行如权利要求1-6任一项所述的用于Dragonfly拓扑的Allgather方法。
8.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令被调用时,用于执行如权利要求1-6任一项所述的用于Dragonfly拓扑的Allgather方法。
CN202210707577.0A 2022-06-21 2022-06-21 一种用于Dragonfly拓扑的Allgather方法及装置 Active CN115102864B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210707577.0A CN115102864B (zh) 2022-06-21 2022-06-21 一种用于Dragonfly拓扑的Allgather方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210707577.0A CN115102864B (zh) 2022-06-21 2022-06-21 一种用于Dragonfly拓扑的Allgather方法及装置

Publications (2)

Publication Number Publication Date
CN115102864A true CN115102864A (zh) 2022-09-23
CN115102864B CN115102864B (zh) 2023-08-29

Family

ID=83292683

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210707577.0A Active CN115102864B (zh) 2022-06-21 2022-06-21 一种用于Dragonfly拓扑的Allgather方法及装置

Country Status (1)

Country Link
CN (1) CN115102864B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366467A (zh) * 2023-05-29 2023-06-30 北京大学 服务器无感知的分布式训练软件定义聚合通信框架和方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988463A (zh) * 2005-12-21 2007-06-27 国际商业机器公司 用于大容量消息广播的方法和系统
CN101236511A (zh) * 2007-01-31 2008-08-06 国际商业机器公司 用于优化全局归约处理的方法和系统
CN101334743A (zh) * 2008-05-21 2008-12-31 清华大学 基于配置文件的并行程序自动映射实现方法
CN109840306A (zh) * 2017-12-28 2019-06-04 中国科学院计算技术研究所 一种基于递归的并行快速傅里叶变换通信优化方法和系统
CN110535610A (zh) * 2019-08-05 2019-12-03 中兴通讯股份有限公司 一种调度指示方法、装置和存储介质
CN112202599A (zh) * 2020-09-11 2021-01-08 北京科技大学 针对异构多核平台通信优化的拓扑感知映射方法及系统
CN112235344A (zh) * 2020-09-07 2021-01-15 上海大学 一种面向分布式机器学习的稀疏通信模型的实现方法
CN113196256A (zh) * 2018-12-13 2021-07-30 华为技术有限公司 用于在数据通信网络中执行集合通信操作的装置、方法和计算机程序产品
CN113347023A (zh) * 2021-05-17 2021-09-03 中科院计算所西部高等技术研究院 网络模拟器及其动态切换方法
WO2021195988A1 (en) * 2020-03-31 2021-10-07 Alibaba Group Holding Limited Network congestion avoidance over halving-doubling collective communication
CN114244692A (zh) * 2021-04-30 2022-03-25 无锡江南计算技术研究所 一种适用于超大规模互连网络的故障快速定位方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1988463A (zh) * 2005-12-21 2007-06-27 国际商业机器公司 用于大容量消息广播的方法和系统
CN101236511A (zh) * 2007-01-31 2008-08-06 国际商业机器公司 用于优化全局归约处理的方法和系统
CN101334743A (zh) * 2008-05-21 2008-12-31 清华大学 基于配置文件的并行程序自动映射实现方法
CN109840306A (zh) * 2017-12-28 2019-06-04 中国科学院计算技术研究所 一种基于递归的并行快速傅里叶变换通信优化方法和系统
CN113196256A (zh) * 2018-12-13 2021-07-30 华为技术有限公司 用于在数据通信网络中执行集合通信操作的装置、方法和计算机程序产品
CN110535610A (zh) * 2019-08-05 2019-12-03 中兴通讯股份有限公司 一种调度指示方法、装置和存储介质
EP4012959A1 (en) * 2019-08-05 2022-06-15 ZTE Corporation Scheduling indication method and device, and storage medium
WO2021195988A1 (en) * 2020-03-31 2021-10-07 Alibaba Group Holding Limited Network congestion avoidance over halving-doubling collective communication
CN112235344A (zh) * 2020-09-07 2021-01-15 上海大学 一种面向分布式机器学习的稀疏通信模型的实现方法
CN112202599A (zh) * 2020-09-11 2021-01-08 北京科技大学 针对异构多核平台通信优化的拓扑感知映射方法及系统
CN114244692A (zh) * 2021-04-30 2022-03-25 无锡江南计算技术研究所 一种适用于超大规模互连网络的故障快速定位方法
CN113347023A (zh) * 2021-05-17 2021-09-03 中科院计算所西部高等技术研究院 网络模拟器及其动态切换方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张庆安等: "有线无线混合网络下MPI集合通信的优化", 《 第二十届计算机工程与工艺年会暨第六届微处理器技术论坛》, pages 380 - 386 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116366467A (zh) * 2023-05-29 2023-06-30 北京大学 服务器无感知的分布式训练软件定义聚合通信框架和方法
CN116366467B (zh) * 2023-05-29 2023-08-08 北京大学 服务器无感知的分布式训练软件定义聚合通信框架和方法

Also Published As

Publication number Publication date
CN115102864B (zh) 2023-08-29

Similar Documents

Publication Publication Date Title
JP6267367B2 (ja) 分散型直接相互接続ネットワークにおけるパケットルーティング方法
Lotfi-Kamran et al. BARP-a dynamic routing protocol for balanced distribution of traffic in NoCs
CN109873771B (zh) 一种片上网络系统及其通信方法
CN115102864A (zh) 一种用于Dragonfly拓扑的Allgather方法及装置
Takahashi et al. Performance evaluation of SDN-enhanced MPI allreduce on a cluster system with fat-tree interconnect
CN111245730B (zh) 一种片上网络的路由系统及通信方法
CN111193971B (zh) 一种面向机器学习的分布式计算互连网络系统及通信方法
EP3442172A1 (en) Network topology system and building methods for topologies and routing tables thereof
Miura et al. An adaptive routing of the 2-D torus network based on turn model
Mukherjee et al. Timed loops for distributed storage in wireless networks
WO2022166348A1 (zh) 路由方法、路由装置、控制器和计算机可读存储介质
CN113204517B (zh) 一种电力专用以太网控制器的核间共享方法
CN115884252A (zh) 策略调整方法、数据传输方法、系统、服务器及存储介质
Ravindran et al. On topology and bisection bandwidth of hierarchical-ring networks for shared-memory multiprocessors
Rahman et al. Dynamic communication performance of a TESH network under the nonuniform traffic patterns
Liu et al. Portable and scalable algorithms for irregular all-to-all communication
Li et al. Modeling and Simulation of Network-on-Chip Routing Algorithm Based on OPNET
CN113852574B (zh) 一种片上网络路由器
Takano et al. Effects of packet pacing for MPI programs in a Grid environment
CN118573676A (zh) 分布式集群系统的数据传输方法和装置
EP4170980A1 (en) Communication method and related apparatus
Souravlas et al. Virtual Channel Allocation For All-to-All Data Block Redistributions
Zhou et al. N4: Network for N Neural Network Training
CN118301061A (zh) 一种基于递归分区的片上网络数据包传输方法
Liu et al. Performance Evaluations Of Adaptive Wormhole Routing In 3D Mesh Networks

Legal Events

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