CN115208768B - 用于Dragonfly拓扑的Allreduce方法 - Google Patents
用于Dragonfly拓扑的Allreduce方法 Download PDFInfo
- Publication number
- CN115208768B CN115208768B CN202210678611.6A CN202210678611A CN115208768B CN 115208768 B CN115208768 B CN 115208768B CN 202210678611 A CN202210678611 A CN 202210678611A CN 115208768 B CN115208768 B CN 115208768B
- Authority
- CN
- China
- Prior art keywords
- nodes
- node
- matching
- priority
- dragonfly
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/122—Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种用于Dragonfly拓扑的Allreduce方法,包括:在每一轮递归中,将参与通信的节点进行基于优先级的拓扑感知一对一匹配,配对的两个节点之间交换部分或全部数据并进行归约,随后根据匹配将节点分为两个节点数相同集合,分别进入下一轮递归,直至集合中仅剩一个节点,其中,基于优先级的拓扑感知匹配的步骤包括:对位于同一交换机下的节点进行节点与节点之间的第一优先级匹配;对位于不同组中的部分节点进行第三优先级匹配;对位于同一组中的节点进行第二优先级匹配。本发明缓解了Dragonfly拓扑中链路拥塞。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种用于Dragonfly拓扑的Allreduce方法、装置、设备及计算机可读存储介质。
背景技术
Dragonfly(蜻蜓)拓扑是一种新型的低直径、高可扩展、性价比高的拓扑,主要应用于超级计算机互连网络系统中。一个典型的Dragonfly拓扑由若干个组构成,每个组拥有相同数量的交换机,这些交换机下连计算节点,并且每个组的交换机之间是全连接的;当把一个组的所有交换机视为一个更大的虚拟交换机,每个组之间也是全连接的。在交换机端口数一定的情况下,要求网络能互连尽可能多的计算节点,就需要组与组之间只有一条直连链路。Dragonfly拓扑在均匀流量模式下,具有优异的性能表现,可以满足超级计算机网络对于高带宽、低延迟的需求。
消息传递接口(Message Passing Interface,MPI)是当今高性能计算领域最重要、最主流的并行程序编程框架。MPI中不但包含基本的发送和接收这样的一对一通信接口,还包含许多集合通信接口,例如:MPI_Alltoall、MPI_Allgather、MPI_Allreduce等等。编程者只需要调用函数接口即可完成通信,而不必关心通信算法的实现,更不用了解负责通信的硬件使用,编写的并行应用还具有很好的可移植性。
环形通信方法在MPI的多种集合通信操作中都会使用,包括MPI_Allreduce、MPI_Allgather、MPI_Reduce_scatter。在环形通信中的每一步,进程会将数据发送给右邻居,并从自己的左邻居进程接收数据。
在Dragonfly拓扑中直接使用环形通信,会引起作业之间竞争相邻近组之间的链路,从而导致链路拥塞,引起性能损失。因此将环形通信面向Dragonfly拓扑进行优化是非常有必要的。
在面向Dragonfly拓扑优化的聚合通信方法中,虽然已有PAARD(Proximity-AwareAll-Reduce)算法、SDTA(Stepwise Dissemination,Transfer or Aggregation)系列算法,但是这些优化方案中均假设使用整个Dragonfly拓扑中的所有计算节点。假设使用高性能计算系统中所有的计算节点的优化方案难以在真实部署的系统中应用,因为对于高性能计算系统来说,往往需要同时服务大量用户,很难将全系统资源调度给单一用户使用;除此之外,对于拥有海量计算节点的高性能计算系统,往往存在故障节点,难以保证所有计算节点同时都处于可用状态。
发明内容
本发明的主要目的在于提供一种用于Dragonfly拓扑的Allreduce方法、装置、设备及计算机可读存储介质,旨在解决如何缓解Dragonfly拓扑中链路拥塞的技术问题。
为实现上述目的,本发明提供一种用于Dragonfly拓扑的Allreduce方法,包括以下步骤:
在每一轮递归中,将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对,其中,所述匹配节点对中的两个所述节点之间交换部分或全部数据并进行归约;
将所述匹配节点对中的一个节点划分到预设的第一集合,并将所述匹配节点对中的另一个节点划分到预设的第二集合;
所述第一集合和所述第二集合分别进入下一轮递归,直至所述第一集合和所述第二集合中都仅剩一个节点,其中,若匹配的两个所述节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播,每个所述节点按照与自身匹配过的节点的倒序,发送所有结果数据,接收对方数据并与自身已有结果数据进行拼接。
可选地,优先级包括:
第一优先级匹配,位于同一交换机下的节点之间的匹配;
第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;
第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
可选地,将参与通信的节点进行基于优先级的拓扑感知一对一匹配的步骤,包括:
根据所述第一优先级匹配,对位于同一交换机下的节点进行第一优先级匹配;
根据所述第三优先级匹配,对位于不同Dragonfly组中的部分节点进行第三优先级匹配;
根据所述第二优先级匹配,对位于同一Dragonfly组中的节点进行的第二优先级匹配。
可选地,对位于同一交换机下的节点进行第一优先级匹配的步骤,包括:
确定所述同一交换机下的所述节点的数量;
若所述节点的数量为偶数,则对位于同一交换机下的所述节点进行节点与节点之间的任意匹配;
若所述节点的数量为奇数,则在所述同一交换机下的各所述节点中任选一个节点作为未完成第一优先级匹配的节点,并对所述同一交换机下的其他节点进行节点与节点之间的任意匹配。
可选地,对位于不同Dragonfly组中的部分节点进行第三优先级匹配的步骤,包括:
若存在基于所述第一优先级匹配未完成匹配的节点,则确定剩余奇数个所述节点所在的奇数组,并在所述奇数组存在多个时,进行所述奇数组与所述奇数组之间的匹配;
在得到匹配的奇数组之间,将形成最短距离的节点构成第三优先级匹配。
可选地,进行所述奇数组与所述奇数组之间匹配的步骤,包括
根据所述奇数组构建目标图,其中,所述奇数组为所述目标图的顶点,两个所述顶点之间的边权为两个所述顶点内节点之间的最短距离;
对所述目标图进行最小权完美匹配计算,得到奇数组与所述奇数组之间的匹配。
可选地,每一轮递归包括第一轮递归,第一轮递归的步骤之前,还包括:
确定参与聚合通信的所有节点的总节点数N;
若所述总节点数N不是2的幂,则在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述
在每对挑选出来的节点中,任意选择其中任意一个节点,并将选择的节点中的数据全部发送给另一个节点,随后退出接下来的递归;另一个节点接收数据,并进行归约计算,随后进入递归。
可选地,在参与本轮递归的所有节点中挑选n对预匹配的节点的步骤,包括:
基于预设的优先级在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述优先级包括第一优先级匹配,位于同一交换机下的节点之间的匹配;第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
此外,为实现上述目的,本发明还提供一种设备,设备包括存储器、处理器及存储在存储器上并可在处理器上运行的用于Dragonfly拓扑的Allreduce程序,用于Dragonfly拓扑的Allreduce程序被处理器执行时实现如上述的用于Dragonfly拓扑的Allreduce方法的步骤。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有用于Dragonfly拓扑的Allreduce程序,用于Dragonfly拓扑的Allreduce程序被处理器执行时实现如上述的用于Dragonfly拓扑的Allreduce方法的步骤。
本发明通过在每一轮递归中,都将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对将所述匹配节点对中的一个节点划分到预设的第一集合,并将匹配节点对中的另一个节点划分到预设的第二集合;第一集合和第二集合分别进入下一轮递归,直至第一集合和第二集合中都仅剩一个节点,并且匹配节点对中的两个节点之间交换部分或全部数据并进行归约;若匹配的两个节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播,每个节点按照与自身匹配过的节点的倒序,发送所有结果数据,接收对方数据并与自身已有结果数据进行拼接。从而可以实现在每一轮迭代中使用的链路最小,并且尽可能将通信转移到同一交换机下的节点或同组内的节点,尽量减少不同组之间的节点通信。将通信从组间通信转为组内通信后,能大大降低通信中数据包的平均跳数,减少对网络的压力,减少对其他应用的干扰。在使用最短路由的情况下,可以大幅减少网络中的拥塞。在使用自适应路由的情况下,选择非最短路径的数据包大幅减少。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端\装置结构示意图;
图2为本发明用于Dragonfly拓扑的Allreduce方法第一实施例的流程示意图;
图3为本发明用于Dragonfly拓扑的Allreduce方法中的整体流程示意图;
图4为本发明用于Dragonfly拓扑的Allreduce方法中的奇数组示意图;
图5为本发明用于Dragonfly拓扑的Allreduce方法中的目标图;
图6为本发明用于Dragonfly拓扑的Allreduce方法与传统Allreduce实现方法的性能对比示意图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端为用于Dragonfly拓扑的Allreduce设备。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
可选地,终端还可以包括摄像头、RF(Radio Frequency,射频)电路,传感器、音频电路、WiFi模块等等。其中,传感器比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示屏的亮度,接近传感器可在终端设备移动到耳边时,关闭显示屏和/或背光。当然,终端设备还可配置陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及用于Dragonfly拓扑的Allreduce程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的用于Dragonfly拓扑的Allreduce程序,并执行以下操作:
参照图2,本发明提供一种用于Dragonfly拓扑的Allreduce方法,在用于Dragonfly拓扑的Allreduce方法的第一实施例中,用于Dragonfly拓扑的Allreduce方法包括以下步骤:
步骤S10,在每一轮递归中,将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对,其中,所述匹配节点对中的两个所述节点之间交换部分或全部数据并进行归约;
步骤S20,将所述匹配节点对中的一个节点划分到预设的第一集合,并将所述匹配节点对中的另一个节点划分到预设的第二集合;
步骤S30,所述第一集合和所述第二集合分别进入下一轮递归,直至所述第一集合和所述第二集合中都仅剩一个节点,其中,若匹配的两个所述节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播,每个所述节点按照与自身匹配过的节点的倒序,发送所有结果数据,接收对方数据并与自身已有结果数据进行拼接。
由于目前面向Dragonfly拓扑优化的聚合通信方式中,存在Dragonfly拓扑中链路拥塞的问题,因此存在可以缓解Dragonfly拓扑中链路拥塞的其他方法,如将MPI程序中的进程随机映射到调度系统分配给作业的节点上,但随机映射的方法有损程序中近邻通信的性能。进一步地,为避免破坏应用程序中近邻通信的性能,可以先假设编号相近的节点具有更近的物理距离,并通过对MPI库中的Allreduce操作的实现方法进行优化,以克服在Dragonfly拓扑中引起的链路拥塞问题,适用于Dragonfly拓扑中任意数量的任意节点参与通信(不对调度系统做任何限制),MPI程序中的进程线性映射到调度系统分配给作业的节点上。即在本实施例中,是通过对MPI库中Allreduce操作的实现方法进行优化,以克服在Dragonfly拓扑中引起的拓扑错配和链路拥塞问题,适用于Dragonfly拓扑中任意数量的任意节点参与通信(不对调度系统做任何限制),MPI程序中的进程线性映射到调度系统分配给作业的节点上。其中,节点可以为企业服务器。
而且在本实施例中,是通过适用于Dragonfly拓扑的MPI Allreduce实现方式,改变节点之间的通信模式,将数据量较大的通信转移到较近的节点之间进行,将数据量较小的通信转移到较远的节点之间进行。并且在每一轮递归中,将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对,配对的两个节点(即匹配节点对中的两个节点)之间交换部分或全部数据并进行归约,随后根据匹配将节点分为两个节点数相同集合,分别进入下一轮递归,直至集合中仅剩一个节点。如果配对的两个节点仅交换部分数据,最后每个节点还需要按照与自身匹配过的节点的倒序,发送所有自身数据(如流量数据),接收对方数据并与自身已有数据进行拼接。
在本实施例中,为实现在每一轮的通信中最小化使用的链路。因此在Dragonfly拓扑上实现基于上述优先级的匹配。具体地,优先级包括:
第一优先级匹配,位于同一交换机下的节点之间的匹配;
第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;
第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
进一步地,将参与通信的节点进行基于优先级的拓扑感知一对一匹配的步骤,包括:
根据所述第一优先级匹配,对位于同一交换机下的节点进行第一优先级匹配;
根据所述第三优先级匹配,对位于不同Dragonfly组中的部分节点进行第三优先级匹配;
根据所述第二优先级匹配,对位于同一Dragonfly组中的节点进行的第二优先级匹配。
因此,在本实施例中,为了尽可能减少链路的使用,为节点之间的匹配制定的三个优先级:第一优先级:位于同一交换机下的节点,最优先进行匹配;第二优先级:位于同一组内的节点之间进行匹配;第三优先级:位于不同组内的节点之间的匹配优先级最低。并且会按照第一优先级、第三优先级、第二优先级的顺序进行。也就是在本实施例中会根据第一优先级进行匹配,根据第三优先级进行匹配,根据第二优先级进行匹配。并且在每一轮匹配的过程中,若节点在本轮匹配的过程中有参与过匹配,则在本轮中不进行后续的匹配操作。
并且在本实施例中,在第一优先级匹配时,将同一交换机下的节点之间进行任意匹配(即第一优先级匹配)。同一交换机下,如果有奇数个节点参加通信,则任选其一,参与到第二、三优先级的匹配,其余节点完成匹配。在第三优先级匹配时,构建一张图G,所有剩余奇数个节点的组构成G中的顶点,两个顶点之间的边权为其所代表的组内剩余节点之间的最短距离,然后在图G上求一次一般图最小权完美匹配。在图G上被匹配的组之间,形成最短距离的节点构成第三优先级匹配。在第二优先级匹配中,所有在第一、三优先级中未匹配的节点参与,将同一组内的节点之间进行任意匹配。
并且在完成匹配(第一优先级匹配、或第二优先级匹配、或第三优先级匹配)后,所有节点可以将自身持有数据均分成两份,和与之匹配的节点各负责一份数据的计算,将对方所需要的数据发送,并接收自身所需要的数据,随后进行归约计算。还可以直接将自身所有数据一起发送到与之匹配的节点。并且,在本实施例中,若匹配的两个所述节点之间仅交换部分数据,在所有递归结束后,每个节点,按照与自身匹配过的节点的倒序,发送聚合通信得到的所有结果数据,接收对方数据并与自身已有数据进行拼接。以完成所有节点之间的Allreduce通信过程。
例如,若使用CODES模拟器模拟一个44310节点的Dragonfly网络。网络中使用40端口交换机,其中10个端口连接到计算节点,20个端口连接到组内其他交换机,10个端口连接到其他组的交换机。每个组共有210个计算节点,共有211个组,一共44310个计算节点。链路带宽设置为12GB/s,组间链路的延迟为150ns,组间链路的延迟为350ns,交换机延迟为150ns。在模拟中纳入将计算及数据移动开销。在上述Dragonfly拓扑网络中模拟执行32768节点的MPI_Allreduce,每个节点上运行1个MPI进程,设置聚合通信操作的数据大小为8字节与128MB,在最短路由、非最短路由、自适应路由中进行比较,结果如图6所示。当数据大小为8Bytes字节时,在最短路由条件下,加速了45%;在非最短路由条件下,加速了12%;在自适应路由条件下,加速了19%。当数据大小为128MB时,在最短路由条件下,加速了89%;在非最短路由条件下,加速了23%;在自适应路由条件下,加速了13%。
而且在本实施例中,Dragonfly拓扑中组内链路的由于较短的物理链路,具有更低的延迟;并且Dragonfly拓扑中组内链路是组间链路数量的2倍,所以应当尽量多使用组内链路。按照上述匹配优先级以及实现方法,可以实现在每一轮递归中使用的链路最小,并且尽可能将通信转移到同一交换机下的节点或同组内的节点,尽量减少不同组之间的节点通信。将通信从组间通信转为组内通信后,能大大降低通信中数据包的平均跳数,减少对网络的压力,减少对其他应用的干扰。在使用最短路由的情况下,可以大幅减少网络中的拥塞。在使用自适应路由的情况下,选择非最短路径的数据包大幅减少。
在本实施例中,通过在每一轮递归中,都将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对将所述匹配节点对中的一个节点划分到预设的第一集合,并将匹配节点对中的另一个节点划分到预设的第二集合;第一集合和第二集合分别进入下一轮递归,直至第一集合和第二集合中都仅剩一个节点,并且匹配节点对中的两个节点之间交换部分或全部数据并进行归约;若匹配的两个节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播,每个节点按照与自身匹配过的节点的倒序,发送所有结果数据,接收对方数据并与自身已有结果数据进行拼接。从而可以实现在每一轮迭代中使用的链路最小,并且尽可能将通信转移到同一交换机下的节点或同组内的节点,尽量减少不同组之间的节点通信。将通信从组间通信转为组内通信后,能大大降低通信中数据包的平均跳数,减少对网络的压力,减少对其他应用的干扰。在使用最短路由的情况下,可以大幅减少网络中的拥塞。在使用自适应路由的情况下,选择非最短路径的数据包大幅减少。
进一步地,基于上述本发明的第一实施例,提出本发明用于Dragonfly拓扑的Allreduce方法的第二实施例,在本实施例中,上述实施例,对位于同一交换机下的节点进行第一优先级匹配的步骤的细化,包括:
确定所述同一交换机下的所述节点的数量;
若所述节点的数量为偶数,则对位于同一交换机下的所述节点进行节点与节点之间的任意匹配;
若所述节点的数量为奇数,则在所述同一交换机下的各所述节点中任选一个节点作为未完成第一优先级匹配的节点,并对所述同一交换机下的其他节点进行节点与节点之间的任意匹配。
在本实施例中,在按照第一优先级进行匹配时,对每个交换机都执行检测同一交换机下的节点的数量,并将其作为第一节点数量,然后再在第一节点数量为偶数时,将同一交换机下的节点进行任意匹配。其中,匹配为两节点之间进行的匹配过程。但是若某个交换机下的第一节点数量为奇数时,则可以在该交换机中随机选择一个节点作为未完成第一优先级匹配的节点,然后对其他节点进行任意匹配。其中,未完成第一优先级匹配的节点会进入后续的第三优先级匹配、第二优先级匹配。直至所有节点均完成匹配。
在本实施例中,通过在进行第一优先级匹配时,对同一交换机下的节点进行第一优先级匹配时,若交换机下的第一节点数量为偶数,完成所有节点的匹配,若第一节点数量为奇数,筛选一个节点作为未完成第一优先级匹配的节点,并且对其他节点进行第一优先级匹配,从而保障交换机下节点匹配的有效进行。
进一步地,对位于不同Dragonfly组中的部分节点进行第三优先级匹配的步骤,包括:
若存在基于所述第一优先级匹配未完成匹配的节点,则确定剩余奇数个所述节点所在的奇数组,并在所述奇数组存在多个时,进行所述奇数组与所述奇数组之间的匹配;
在得到匹配的奇数组之间,将形成最短距离的节点构成第三优先级匹配。
具体地,进行所述奇数组与所述奇数组之间匹配的步骤,包括:
根据所述奇数组构建目标图,其中,所述奇数组为所述目标图的顶点,两个所述顶点之间的边权为两个所述顶点内节点之间的最短距离;
根据所述最短距离对所述目标图进行最小权完美匹配计算,得到奇数组与所述奇数组之间的匹配。
在本实施例中,按照第三优先级进行匹配时,若存在多个奇数组,可以根据各个奇数组构建一张图G,并将其作为目标图,所有剩余奇数个节点的组构成G中的顶点,两个顶点之间的边权为其所代表的组内节点之间的最短距离,然后在图G上求一次一般图最小权完美匹配。如图4所示的Dragonfly拓扑中有8个节点参与所在的组需要参加所述奇数组与奇数组之间的匹配,参加通信的节点C0,C1,C2位于组0中,参加通信的节点C3,C4,C5位于组3中,参加通信的节点C6位于组4中,参加通信的节点C7位于组8中;组0,组3,组4,组8中参加聚合通信的节点数量均为奇数,组0,组3,组4,组8都需要参与奇数组与奇数组之间的匹配;组0,组3,组4,组8分别构成如图5所示的图中的4个顶点;组0与组3之间的距离由组0与组3内距离最近的节点决定,节点C0与节点C3之间的距离为2,节点C0与节点C4之间的距离为3,节点C0与节点C5之间的距离为3,节点C1与节点C3之间的距离为2,节点C1与节点C4之间的距离为3,节点C1与节点C5之间的距离为3,节点C2与节点C3之间的距离为1,节点C2与节点C4之间的距离为2,节点C2与节点C5之间的距离为2,因此在图5中组0与组3之间的距离为1;组0与组4之间的距离由组0与组4内距离最近的节点决定,节点C0与节点C6之间的距离为3,节点C1与节点C6之间的距离为3,节点C2与节点C6之间的距离为2,因此在图5中组0与组4之间的距离为2;组0与组8之间的距离由组0与组8内距离最近的节点决定,节点C0与节点C7之间的距离为1,节点C1与节点C7之间的距离为2,节点C2与节点C7之间的距离为2,因此在图5中组0与组8之间的距离为1;组3与组4之间的距离由组3与组4内距离最近的节点决定,节点C3与节点C6之间的距离为2,节点C4与节点C6之间的距离为2,节点C5与节点C6之间的距离为1,因此在图5中组3与组4之间的距离为1;组3与组8之间的距离由组3与组8内距离最近的节点决定,节点C3与节点C7之间的距离为2,节点C4与节点C7之间的距离为3,节点C5与节点C7之间的距离为3,因此在图5中组3与组8之间的距离为2;组4与组8之间的距离由组3与组8内距离最近的节点决定,节点C6与节点C7之间的距离为3,因此在图5中组4与组8之间的距离为3;
在图5所示的图中,求最小权完美匹配,可以得到组0与组8进行匹配,边权值为1,组3与组4进行匹配,边权值为1,总代价为2。因此对应的,节点C0与节点C7匹配,节点C5与节点C6匹配。
在本实施例中,通过根据奇数组构建目标图,并根据最短距离对目标图进行最小权完美匹配计算,得到待匹配的奇数组,再进行第三优先级匹配,以完成节点匹配。从而保障了第三优先级匹配的有效进行。
进一步地,在每一轮递归的步骤之前,包括:
识别同一个节点上参与聚合通信的所有进程,并确定各所述进程中的主进程和其他进程,将缓冲区中所述其他进程对应的数据发送至所述主进程进行归约,根据经过所述归约后的主进程执行所述在参与聚合通信的所有节点中,对位于同一交换机下的所述节点进行节点与节点之间的第一优先级匹配的步骤。
在本实施例中,进程解析用户通过参数传入的通信域,识别在同一个计算节点(即同一节点)上参与聚合通信的其他进程,得到参与通信的节点数N。位于同一个计算节点上的进程选举出一个进程作为该节点的主进程。在选举时,应该选举距离通信网卡较近的CPU上的进程作为主进程。各个进程将发送缓冲区中的所有数据发送到所在节点的主进程,主进程将接收到的数据和自身发送缓冲区内的数据进行归约操作,随后由主进程负责节点间的通信操作。其中,归约可以是在分布在不同进程中的数据间进行交互的运算,常用的运算有求和、求最大或最小值等。
也就是在参与聚合通信的节点中,当主进程汇集该节点下其他进程的数据后,就可以进行将参与通信的节点进行基于优先级的拓扑感知一对一匹配,配对的两个节点之间交换部分或全部数据并进行归约,随后根据匹配将节点分为两个节点数相同集合,分别进入下一轮递归,直至集合中仅剩一个节点。如果配对的两个节点仅交换部分数据,最后每个节点还需要按照与自身匹配过的节点的倒序,发送所有自身数据,接收对方数据并与自身已有数据进行拼接。
在本实施例中,通过将同一个节点上其他进程在缓冲区内的数据汇总到主进程进行归约,再根据主进程进行该节点的通信操作,从而可以减少不同组之间的节点通信交互,缓解了Dragonfly拓扑中的链路拥塞。
进一步地,每一轮递归包括第一轮递归,第一轮递归的步骤之前,还包括:
确定参与聚合通信的所有节点的总节点数N;
若所述总节点数N不是2的幂,则在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述
在每对挑选出来的节点中,任意选择其中任意一个节点,并将选择的节点中的数据全部发送给另一个节点,随后退出接下来的递归;另一个节点接收数据,并进行归约计算,随后进入递归。
进一步地,在参与聚合通信的所有节点中挑选n对预匹配的节点的步骤,包括:
基于预设的优先级在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述优先级包括第一优先级匹配,位于同一交换机下的节点之间的匹配;第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
在本实施例中,进程解析用户通过参数传入的通信域,识别在同一个计算节点上参与聚合通信的进程,得到参与通信的节点数N。即根据节点中是否存参与聚合通信的进程来确定该节点是否为参与聚合通信的节点,并进行节点数量的统计,得到参与聚合通信的所有节点的总节点数。然后再检测总节点数是否为2的幂,若是,则确定总节点数和2的幂匹配,此时,就可以按照第一优先级、第三优先级和第二优先级依次进行匹配,以完成所有节点的匹配。若总节点数不为2的幂,则确定总节点数和2的幂不匹配,此时可以先挑选n对节点之间进行匹配与归约(其中),使节点数变为2的幂。匹配方法可以是按照第一优先级、第三优先级和第二优先级依次进行匹配,随后再按如下优先级挑选n对匹配节点:优先挑选位于同一交换机下的节点对;其次挑选位于同一个组内的节点对;最后挑选位于不同组内的节点对。在每对挑选出来的节点中,任意选择其中任意一个节点,并将其数据全部发送给另一个节点,随后退出接下来的匹配,并进行节点间的聚合通信;另一个节点接收数据,并进行归约计算。
在本实施例中,通过在参与聚合通信的所有节点的总节点数和2的幂不匹配时,先挑选n对节点进行匹配与归约,再对剩余未参加匹配的节点执行按照各个优先级进行匹配的方式,以完成所有节点的匹配,从而可以实现完成所有节点的匹配。
此外,基于上述实施例,在本实施例的一场景中,参照图3,包括:
步骤S100,若参与通信的节点数N不为2的幂,则根据所述第一优先级匹配、所述第三优先级匹配、所述第二优先级匹配,挑选n对预匹配节点并进行归约,使剩余节点数为2的幂,其中,所述
步骤S200,在本轮递归的所有节点中,对位于同一交换机下的所述节点进行节点与节点之间的第一优先级匹配;
确定所述同一交换机下的所述节点的数量;
若所述节点的数量为偶数,则对位于同一交换机下的所述节点进行节点与节点之间的任意匹配;
若所述节点的数量为奇数,则在所述同一交换机下的各所述节点中任选一个节点作为未完成第一优先级匹配的节点,并对所述同一交换机下的其他节点进行节点与节点之间的任意匹配;
由于进入递归的节点数量为2的幂,因此必然有偶数个交换机下所述节点数量为奇数。
步骤S300,若基于所述第一优先级匹配存在未完成匹配的节点,则确定剩余奇数个所述第一节点所在的奇数组,并在所述奇数组存在多个时,进行所述奇数组与所述奇数组之间的第三优先级匹配;
由于进入递归的所述节点数量为2的幂,在进行所述第一优先级匹配后,必然有偶数个交换机下所述节点数量为奇数,因此必然有偶数个所述奇数组之间进行匹配。
进行所述奇数组与所述奇数组之间匹配需要根据所述奇数组构建目标图,其中,所述奇数组为所述目标图的顶点,两个所述顶点之间的边权为两个所述顶点内节点之间的最短距离;对所述目标图进行最小权完美匹配计算,得到所述奇数组与奇数组之间的匹配;在得到匹配的奇数组之间,将形成最短距离的节点构成第三优先级匹配。
步骤S400,若基于所述第三优先级匹配存在未完成匹配的节点,则对位于同一Dragonfly拓扑中组内的所述节点进行第二优先级匹配;
步骤S500,根据所述第一优先级匹配、所述第二优先级匹配和所述第三优先级匹配形成的节点对之间交换部分或全部数据并进行归约;
所述节点将自身持有数据均分成两份,和与之匹配的节点各负责一份数据的计算,将对方所需要的数据发送,并接收自身所需要的数据,随后进行归约计算。
步骤S600,将所述目标匹配节点对中的一个节点划分到预设的第一集合,并将所述目标匹配节点对中的另一个节点划分到预设的第二集合;所述第一集合和所述第二集合分别进入下一轮递归,即步骤S20,直至所述第一集合和所述第二集合中都仅剩一个节点。
步骤S700,若配对的两个所述节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播。
每个节点,按照与自身匹配过的节点的倒序,发送聚合通信得到的所有结果数据,接收对方数据并与自身已有数据进行拼接。
此外,本发明还提供一种设备,所述设备包括:存储器、处理器及存储在所述存储器上的用于Dragonfly拓扑的Allreduce程序;所述处理器用于执行所述用于Dragonfly拓扑的Allreduce程序,以实现上述用于Dragonfly拓扑的Allreduce方法各实施例的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述用于Dragonfly拓扑的Allreduce方法各实施例的步骤。
本发明计算机可读存储介质具体实施方式与上述用于Dragonfly拓扑的Allreduce方法各实施例基本相同,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种用于Dragonfly拓扑的Allreduce方法,其特征在于,所述用于Dragonfly拓扑的Allreduce方法包括以下步骤:
在每一轮递归中,将参与通信的节点进行基于优先级的拓扑感知一对一匹配,得到匹配节点对,其中,所述匹配节点对中的两个所述节点之间交换部分或全部数据并进行归约;
将所述匹配节点对中的一个节点划分到预设的第一集合,并将所述匹配节点对中的另一个节点划分到预设的第二集合;
所述第一集合和所述第二集合分别进入下一轮递归,直至所述第一集合和所述第二集合中都仅剩一个节点,其中,若匹配的两个所述节点之间仅交换部分数据,在所有递归结束后,进行结果的反向传播,每个所述节点按照与自身匹配过的节点的倒序,发送所有结果数据,接收对方数据并与自身已有结果数据进行拼接。
2.如权利要求1所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述优先级包括:
第一优先级匹配,位于同一交换机下的节点之间的匹配;
第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;
第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
3.如权利要求2所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述将参与通信的节点进行基于优先级的拓扑感知一对一匹配的步骤,包括:
根据所述第一优先级匹配,对位于同一交换机下的节点进行第一优先级匹配;
根据所述第三优先级匹配,对位于不同Dragonfly组中的部分节点进行第三优先级匹配;
根据所述第二优先级匹配,对位于同一Dragonfly组中的节点进行的第二优先级匹配。
4.如权利要求3所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述对位于同一交换机下的节点进行第一优先级匹配的步骤,包括:
确定所述同一交换机下的所述节点的数量;
若所述节点的数量为偶数,则对位于同一交换机下的所述节点进行节点与节点之间的任意匹配;
若所述节点的数量为奇数,则在所述同一交换机下的各所述节点中任选一个节点作为未完成第一优先级匹配的节点,并对所述同一交换机下的其他节点进行节点与节点之间的任意匹配。
5.如权利要求3所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述对位于不同Dragonfly组中的部分节点进行第三优先级匹配的步骤,包括:
若存在基于所述第一优先级匹配未完成匹配的节点,则确定剩余奇数个所述节点所在的奇数组,并在所述奇数组存在多个时,进行所述奇数组与所述奇数组之间的匹配;
在得到匹配的奇数组之间,将形成最短距离的节点构成第三优先级匹配。
6.如权利要求5所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述进行所述奇数组与所述奇数组之间匹配的步骤,包括
根据所述奇数组构建目标图,其中,所述奇数组为所述目标图的顶点,两个所述顶点之间的边权为两个所述顶点内节点之间的最短距离;
对所述目标图进行最小权完美匹配计算,得到奇数组与所述奇数组之间的匹配。
7.如权利要求1所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述每一轮递归包括第一轮递归,所述第一轮递归的步骤之前,还包括:
确定参与聚合通信的所有节点的总节点数N;
若所述总节点数N不是2的幂,则在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述
在每对挑选出来的节点中,任意选择其中任意一个节点,并将选择的节点中的数据全部发送给另一个节点,随后退出接下来的递归;另一个节点接收数据,并进行归约计算,随后进入递归。
8.如权利要求7所述的用于Dragonfly拓扑的Allreduce方法,其特征在于,所述在参与聚合通信的所有节点中挑选n对预匹配的节点的步骤,包括:
基于预设的优先级在参与聚合通信的所有节点中挑选n对预匹配的节点,其中,所述优先级包括第一优先级匹配,位于同一交换机下的节点之间的匹配;第二优先级匹配,位于同一Dragonfly组中的节点之间的匹配;第三优先级匹配,位于不同Dragonfly组中的节点之间的匹配。
9.一种设备,其特征在于,所述设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的用于Dragonfly拓扑的Allreduce程序,所述用于Dragonfly拓扑的Allreduce程序被所述处理器执行时实现如权利要求1至8中任一项所述的用于Dragonfly拓扑的Allreduce方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有用于Dragonfly拓扑的Allreduce程序,所述用于Dragonfly拓扑的Allreduce程序被处理器执行时实现如权利要求1至8中任一项所述的用于Dragonfly拓扑的Allreduce方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210678611.6A CN115208768B (zh) | 2022-06-15 | 2022-06-15 | 用于Dragonfly拓扑的Allreduce方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210678611.6A CN115208768B (zh) | 2022-06-15 | 2022-06-15 | 用于Dragonfly拓扑的Allreduce方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115208768A CN115208768A (zh) | 2022-10-18 |
CN115208768B true CN115208768B (zh) | 2023-08-01 |
Family
ID=83575984
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210678611.6A Active CN115208768B (zh) | 2022-06-15 | 2022-06-15 | 用于Dragonfly拓扑的Allreduce方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115208768B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021213076A1 (zh) * | 2020-04-24 | 2021-10-28 | 中科寒武纪科技股份有限公司 | 基于多处理节点来构建通信拓扑结构的方法和设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11321136B2 (en) * | 2017-12-28 | 2022-05-03 | Intel Corporation | Techniques for collective operations in distributed systems |
US10728091B2 (en) * | 2018-04-04 | 2020-07-28 | EMC IP Holding Company LLC | Topology-aware provisioning of hardware accelerator resources in a distributed environment |
-
2022
- 2022-06-15 CN CN202210678611.6A patent/CN115208768B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021213076A1 (zh) * | 2020-04-24 | 2021-10-28 | 中科寒武纪科技股份有限公司 | 基于多处理节点来构建通信拓扑结构的方法和设备 |
Non-Patent Citations (3)
Title |
---|
Martin Ruefenacht 等.Generalisation of Recursive Doubling for AllReduce.EuroMPI 2016: Proceedings of the 23rd European MPI Users' Group Meeting.2016,第1-9页. * |
Shigang Li 等.Near-Optimal Sparse Allreduce for Distributed Deep Learning.PPoPP '22: Proceedings of the 27th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming.2022,第1-15页. * |
Understanding Performance Variability on the Aries Dragonfly Network;Taylor Groves 等;2017 IEEE International Conference on Cluster Computing;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN115208768A (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mohammed et al. | Distributed inference acceleration with adaptive DNN partitioning and offloading | |
Guo et al. | Energy-efficient and delay-guaranteed workload allocation in IoT-edge-cloud computing systems | |
Yang et al. | DEBTS: Delay energy balanced task scheduling in homogeneous fog networks | |
US20190028378A1 (en) | Information processing apparatus, method and non-transitory computer-readable storage medium | |
JP6093867B2 (ja) | インターコネクトにおける不均一なチャネル容量 | |
US11431645B2 (en) | Method and apparatus for handling network congestion, and system | |
JP5276220B2 (ja) | バス制御装置およびバス制御装置に指示を出力する制御装置 | |
Coll et al. | Using multirail networks in high‐performance clusters | |
Kliazovich et al. | CA-DAG: Communication-aware directed acyclic graphs for modeling cloud computing applications | |
Zhang et al. | A stable matching based elephant flow scheduling algorithm in data center networks | |
Xu et al. | Resource allocation for real-time D2D communications underlaying cellular networks | |
Chao et al. | R-MStorm: A resilient mobile stream processing system for dynamic edge networks | |
Lu et al. | Computation offloading for partitionable applications in dense networks: An evolutionary game approach | |
Tummula et al. | Flexicast: A structure-adaptive protocol for efficient data-sharing in iot | |
de Oliveira Souza et al. | Cbnet: Minimizing adjustments in concurrent demand-aware tree networks | |
CN115208768B (zh) | 用于Dragonfly拓扑的Allreduce方法 | |
JP7180424B2 (ja) | 並列処理装置、データ転送先決定方法およびデータ転送先決定プログラム | |
CN117119043A (zh) | 一种边缘网络拓扑感知的微服务部署方法 | |
Colajanni et al. | Performance analysis of circuit-switching interconnection networks with deterministic and adaptive routing | |
Gopalakrishnan et al. | Hard real-time communication in bus-based networks | |
Rizou et al. | Providing qos guarantees in large-scale operator networks | |
CN115277572A (zh) | 一种多源点多汇点网络的拥塞控制方法及系统 | |
CN115208769B (zh) | 适用于Dragonfly拓扑的环形通信方法 | |
US9385961B2 (en) | Parallel computing device, communication control device, and communication control method | |
Zhang et al. | Towards stable flow scheduling in data centers |
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 |