CN112039678A - 基于Torus网络的组播方法 - Google Patents
基于Torus网络的组播方法 Download PDFInfo
- Publication number
- CN112039678A CN112039678A CN201910483313.XA CN201910483313A CN112039678A CN 112039678 A CN112039678 A CN 112039678A CN 201910483313 A CN201910483313 A CN 201910483313A CN 112039678 A CN112039678 A CN 112039678A
- Authority
- CN
- China
- Prior art keywords
- dimension
- multicast
- source node
- chain
- torus network
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1859—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast adapted to provide push services, e.g. data channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/44—Star or tree networks
-
- 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
-
- 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/48—Routing tree calculation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于Torus网络的组播方法,所述方法包括:对Torus网络中各维度通道赋予不同的延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,并生成一目标点链;根据所述链,基于单播组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。本发明实施例考虑到Torus网络通道延迟的不对称性,通过根据各维度的通道延迟对Torus网络中的源节点和所有目标点进行排序形成链,从而减少组播中的跳步数,降低组播延迟,提高组播的性能。
Description
技术领域
本发明实施例属于计算机网络技术领域,更具体地,涉及一种基于Torus网络的组播方法。
背景技术
近年由于各领域对计算能力的需求日益增长,高性能的计算机得到了广泛的研究和发展。在高性能互连中,torus网络被广泛的使用。但随着网络规模的不断增大,可靠性问题日益严峻。
互连网络中数据的传输不仅包括单个数据的传输,还包括全局数据的迁移和控制操作,而后者统称为聚合通信。聚合通信业务主要包括四种基本类型,分别是:多个点到点的通信、一对全通信多对一通信和多对多通信。其中,一对全通信包括广播和散播。组播是同一个消息从发送者发送到网络中的一组接收者。随着集合通信在多计算机系统的广泛应用。数据的有效组播成为了一个关键性能指标。
组播可以通过硬件和软件实现。其中硬件有基于树的算法和基于路径的算法两类。虽然组播的软件实现不如硬件实现那么高效,但是由于成本低,兼容单播等优势,也得到了很好的发展。现有算法首先将Torus网络的节点线排成链,之后按类似树的方式向接受者路由。算法的步数小于log2N的上限整数步,其中N为Torus网络的节点数。但该算法在排成维序链时按各节点的序号顺序排列,跳步数很长,从而造成组播延迟较高。
发明内容
为克服上述现有的组播方法延迟高的问题或者至少部分地解决上述问题,本发明实施例提供一种基于Torus网络的组播方法。
根据本发明实施例的第一方面,提供一种基于Torus网络的组播方法,包括:
设置Torus网络中各维度的通道延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链;
根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。
根据本发明实施例的第二个方面,还提供一种电子设备,包括:
至少一个处理器,以及与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于Torus网络的组播方法。
根据本发明实施例的第三个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于Torus网络的组播方法。
本发明实施例提供一种基于Torus网络的组播方法,该方法通过考虑到Torus网络通道的不对称性,通过根据各维度的通道延迟对Torus网络中的源节点和所有目标点进行排序形成链,根据链中各节点的排序,基于组播树的组播方法将待组播消息发送给各目标点,从而减少组播中的跳步数,降低组播延迟,提高组播的性能。
附图说明
图1为本发明实施例提供的基于Torus网络的组播方法整体流程示意图;
图2为本发明实施例提供的基于Torus网络的组播方法中基于组播树的组播示意图;
图3为本发明实施例提供的基于Torus网络的组播方法中最短距离链组播示意图;
图4为本发明实施例提供的基于Torus网络的组播方法中又一维序链组播示意图;
图5为本发明实施例提供的基于Torus网络的组播方法中又一最短距离链组播示意图;
图6为本发明实施例提供的基于Torus网络的组播方法中9×9的Torus网络距离链组播示意图;
图7为本发明实施例提供的基于Torus网络的组播方法中基于维序链的组播示意图;
图8为本发明实施例提供的基于Torus网络的组播方法中8×8的Torus网络分组维序链组播示意图;
图9为本发明实施例提供的基于Torus网络的组播方法中分组维序组播示意图;
图10为本发明实施例提供的基于Torus网络的组播方法中6×6×6×6×6的五维Torus网络组播效果对比示意图;
图11为本发明实施例提供的基于Torus网络的组播方法中2×2×3×6×8×8的六维Torus网络组播效果对比示意图;
图12为本发明实施例提供的基于Torus网络的组播方法中2×2×3×6×8×8的六维Torus网络中目标点数变化的对比示意图;
图13为本发明实施例提供的基于Torus网络的组播方法中5×5×5×5×5×5的六维Torus网络组播效果对比示意图;
图14为本发明实施例提供的电子设备整体结构示意图。
具体实施方式
下面结合附图和实施例,对本发明实施例的具体实施方式作进一步详细描述。以下实施例用于说明本发明实施例,但不用来限制本发明实施例的范围。
在本发明实施例的一个实施例中提供一种基于Torus网络的组播方法,图1为本发明实施例提供的基于Torus网络的组播方法整体流程示意图,该方法包括:S101,设置Torus网络中各维度的通道延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链;
其中,Torus网络为用大小固定的节点互连而成的多维环绕的格型网络。Torus网络中的节点为信息交互单元,如路由器。本实施例考虑了网络通道的不对称性。在高维Torus网络的设计中,一般都将Torus网络中低维的子网络集成在一块印刷电路板上,如将Torus网络中低三维的节点数分别设置为2,2,3,而Torus网络中高维的子网络之间一般距离较远。由于低维的子网络中节点的距离近,所以在通信延迟上比高维要短,从而造成了Torus网络通道的不对称性。由于Torus网络通道的不对称,通常Torus网络不同维度的通道延迟也不同。首先设置Torus网络中各维度的通道延迟。根据各维度的通道延迟对Torus网络中的源节点和所有目标点进行排序形成链。其中,根据实际需要从Torus网络中选择任一节点作为源节点,源节点最先接收到待组播消息,从Torus网络中除源节点以外的其他节点中选择若干节点作为目标点。
S102,根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。
其中,待组播消息为需要进行组播的消息。因为组播可以由多个单播路由组成,可以通过硬件和软件实现。而当多处理器系统只支持单播时,软件实现组播就很可取,因为它简单方便,不需要增加硬件成本。本实施例采用基于软件组播树的方式实现组播。假设组播一共包括m-1个节点。m为源节点和所有目标点的总个数。如图2所示,按照形成的链中各节点的排序,将所有节点用d0,d1,…dm-2,dm-1来表示,其中d0为源点,d1,…dm-2,dm-1为目标点。最开始只有d0接收到待广播消息,第一步先把消息发送给中间节点dm/2,dm/2会复制待广播消息。之后d0和dm/2分别发送待广播消息给另外两个节点dm/4和d3m/2。以此类推递归,直到链中的所有节点得到待广播消息,可以看到如果组播有m-1个源节点就需要步。另外图中目标点排序形成的链可以有多种方式。不同的链就形成了不同性能的组播算法。
本实施例考虑到Torus网络通道的不对称性,通过根据各维度的通道延迟对Torus网络中的源节点和所有目标点进行排序形成链,根据链中各节点的排序,基于组播树的组播方法将待组播消息发送给各目标点,从而减少组播中的跳步数,降低组播延迟,提高组播的性能。
在上述实施例的基础上,本实施例中根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:设置所有所述维度的通道延迟中的最大通道延迟和最小通道延迟,计算所述最大通道延迟和所述最小通道延迟之间的比值;根据所述比值计算所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数;根据所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数,对所述源节点和所有所述目标点进行排序生成链。
具体地,本实施例采用最短距离链组播方法,此算法属于贪婪算法,使组播中每一个路由都只需要最少的跳步。所述算法包括如下步骤:
S1,让源节点和所有目标点点形成链C:{D0,D1,…,Dm},其中D0是源节点,j维的节点数为k,高维通过通道时间是低维的n倍,维数为dim。
S2,根据源节点和各目标点之间的加权跳步数,以及所有目标点之间的加权跳步数形成最短距离链。
S3,对所形成的最短距离链C’按组播树算法进行组播。
最短距离链组播方法是在考虑跳步权重下,通过减小各个单播的跳步数量来提高组播性能。
计算源节点到目标点的加权跳步数Hi。方法为首先计算任一所述目标点在该维度上的坐标和所述源节点在该维度上的坐标之间差值的绝对值;若所述绝对值大于该维度上节点数量的二分之一,则将该维度上节点数量减去所述绝对值的结果作为所述任一目标点在该维度上对应的跳步数;若该维度为所述Torus网络的高延迟维度,则将所述跳步数Hi乘以延迟权值wi作为所述任一目标点在该维度上的跳步数;将所述任一目标点在各维度上对应的跳步数相加,获取所述源节点到所述任一目标点之间的加权跳步数。公式如下:
算法步骤如下:
D1,初始化加权跳步数T=0;
D2,从j=0到n,依次做以下操作:
计算每维坐标的绝对值Hj=abs(Di[j]-D0[j]);
如果d>k/2;则Hj=k-d;//需要通过环绕连接时的距离
如果j>=dim/2;则Hj=n×d;
T=T+Hj;
D3,得到加权跳步数T;
在上述实施例的基础上,本实施例中根据所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数,对所述源节点和所有所述目标点进行排序生成链的步骤具体包括:将所述源节点放置在所述链中的首位;对于放置在所述链中的源节点或任一目标点,从所有没有放置在所述链中的目标点中选择到所述源节点或该目标点加权跳步数最小的目标点,将选择的目标点插入到所述源节点或该目标点之后,且与所述源节点或该目标点紧邻,直到将所有所述目标点放置到所述链中。
具体地,在生成最短距离链时,首先在链C:{D1,…,Dm}中找到一个距离源节点D0最短的节点D1’,组成新链C’{D0,D1’},然后把原链C中节点D1’移除。之后在链C中找到分别距离D0和D1’最短的目标点,并在C’中将距离D0最短的目标点插入到D0之后,将距离D1’最短的目标点插入到D1’之后,同时也需要移除C中的这些目标点。以此类推直到形成新链。所述算法包括如下步骤:
S1,初始化。把源节点D0置于最短距离节点的集合seed中。从链C移除源节点D0。在最短距离链C’添加源节点D0。
S2,计算距离链
D1,初始化结束标志位Finish=0;
D2,如果标志位为0则进行以下操作:
1)初始化Tempseed为空;
2)从i=0到seed集合节点数,依次进行如下操作:
a)在链C中找到距离seed[i]加权跳步数最小的点Cmin;
b)将Cmin从链C中删除;
c)把Cmin添加到Tempseed中;
d)在C’中找到节点seed[i]并在它后面插入节点Cmin。
e)如果链C为空,则把结束标志位Finish置1.
3)把Tempseed中节点添加到Seed中,即Seed=Seed+Tempseed;
S3,经过S2可以获得最短距离链C’,算法结束。
图3为最短距离链组播示意图。这里未画出环绕连接。其中0号节点为源节点,黑色圆点为组播的目标点。首先在目标点中找到离0号节点最近的点100号节点,即为1个跳步,将待组播消息发出,之后0号和100号节点将待组播消息发给距离彼此最近的目标点26号和106号。最后0号、100号、26号和106号分别将待组播消息发给最近的2号、110号、37号和87号四个目标点。
下面说明最短距离链是怎样进行组播的。如图4和图5假设对一维Torus网络进行组播,一共有8个节点。源节点为1号节点,其它节点均为组播对象目标点。图4是前面已经介绍过的维序链组播的示意图。图5是最短距离链的组播示意图。以下介绍它的过程。
第一步:找到距离源节点1最近的节点。这里2和8号都是经过1个跳步。8号是通过环绕连接。所以两个节点都可以选择,我们选择了组播到8号节点。
第二步:找到节点1和8的最短距离节点。其中1号最近的节点是2号,而8号最近的节点是7号。
第三步:找到分别到1、2、8和7号节点距离最短的目标点。其中1号最近目标点为2号,2号最近目标点是4号,8号最近目标点是6号,7号最近目标点是5号。
图4中维序链组播中最长组播时间是1号节点,它需要走过从1到5,5到7,7到8,假设通过每个通道需要1个cycle。则一共需要4+2+1=7cycles。而最短距离链组播中最长组播时间是1号节点,它需要走过从1到8,8到7,7到5,一共需要1+1+2=4cycles。4小于7,所以最短距离组播的最长组播时间要短于维序链组播。
另一方面,在一个Torus网络中往往是多个组播同时进行,而各个组播间也会相互影响。一个组播的延迟由做出组播决定的时间、通过所有通道的时间和等待资源的时间决定。而在繁忙的网络中,等待资源会成为组播的主要问题。这里等待的资源包括通道资源和缓存资源。最短距离链组播每次先让最短距离的节点进行路由,然后直接释放资源,这样在繁忙的网络中所剩的组播对象也就会越少,占用的资源也越少,从而提高整个网络的组播性能。
在上述实施例的基础上,本实施例中根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:设置所有所述维度的通道延迟中的最大通道延迟和最小通道延迟,计算所述最大通道延迟和所述最小通道延迟之间的比值;根据所述比值计算所述源节点到各所述目标点之间的加权跳步数;根据所述源节点到各所述目标点之间的加权跳步数对所述源节点和所有所述目标点进行排序,生成链。
具体地,在避免资源竞争的方式上,距离链组播采用了内外分割的方式。内部一个节点负责内部的组播,外部一个节点负责外部的组播。以此类推递归的完成所有节点的组播。该算法包括如下步骤:
S1,让源节点和所有点形成链C:{D0,D1,…,Dm},其中D0是源节点,第j维的节点数为k,高维通过通道时间是低维的n倍,维数为dim。
S2,计算源节点到所有目标点的加权跳步数。
从i=1到m,依次做以下操作:
D1,初始化加权跳步数Sum=0;
D2,从j=0到dim,依次做以下操作:
计算每维坐标的绝对值d=abs(Di[j]-D0[j]);
如果d>k/2;则d=k-d;//需要通过环绕连接时的距离
如果j>=dim/2;则d=n×d;
Sum=Sum+d;
D3,得到加权跳步数S[i]=Sum;
S3,对源节点到各个目标点的加权跳步数进行排序。
可以使用任何排序算法sort(S)返回排序后的索引S’=sort(S)。从而得到新的距离链C’={DS’[0],DS’[1],…,DS’[m]}。
S4,对C’使用基于组播树的组播。
本实施例中的距离链组播通过计算距离来划分网络,从而减少通道的竞争。
如图6所示,图6中三角形表示的40号节点为源节点。组播对象目标点为正方形表示的20、31、33、39、50、55和70号节点,黑色圆点表示Torus网络中的节点。首先计算源节点到各目标点所需要的加权跨步数。假设通道是对称的。计算得到到达20号节点需要加权跳步数d20=4,同样地,d31=1,d33=3,d39=1,d50=2,d55=5,d70=6。之后按距离从近到远排成链,如下:
C={20,31,39,50,33,20,55,70};
然后,基于C按组播树的方式进行组播。
在上述实施例的基础上,本实施例根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:根据各所述维度的通道延迟,将所述Torus网络中的所有维度分成多个小组,将所有所述小组按照各所述小组中所有维度的平均通道延迟从高到低的顺序进行排序;对于任一所述小组,获取该小组的前一个小组的排序结果中的所有第一坐标组合;对于任一所述第一维度子集,获取坐标包含该第一维度子集的源节点和所有目标点在该小组中所有维度上的第二维度子集;根据所有所述第二维度子集中各维度上的坐标对所有所述第二维度子集进行排序;将排序结果中所有所述第二维度子集整体左移或右移,直到所述源节点的第二维度子集在所述排序结果的第一个位置,生成链;相应地,根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点的步骤具体包括:对于任一所述第二维度子集,根据所述链基于组播树的组播方法将待组播消息发送给坐标包含该第二维度子集的所有目标点中的任一点,将该目标点作为源节点。
具体地,根据各维度的通道延迟将Torus网络中的所有维度分成多个小组,其中将通道延迟相近的维度分成一组。计算每组中所有维度上的平均通道延迟,按照平均通道延迟从高到低的顺序对所有小组进行排序。按照该排序,先对高延迟维度通道完成组播,之后再对低延迟维度通道完成组播。其中每个组内的组播按维序链组播进行。由于Torus网络通道的不对称,通常不同维度的通道延迟也不同,这样做避免了待组播消息在高低维度中折返所增加的延迟。
维序链就是将源节点和所有点按一定的维度顺序来排序,可以很好的避免消息之间对通道的竞争。形成维序链需要两个步骤:1,把源节点和所有目标点按照维度递增或者维度递减的方式排序;2,把1中形成的链旋转,让源节点在第一个位置。下面举例来说明维序链的形成。首先假设网络是一个10×10×10的三维Torus网络。源节点坐标为(8,5,4),9个目标点的坐标分别为(9,2,5)、(1,1,2)、(3,5,4)、(1,9,7)、(8,6,5)、(4,7,9)、(9,0,4)、(1,5,3)和(4,9,3)。首先将源节点和目标点排成随机的链C如下:
C={(8,5,4),(9,2,5),(1,1,2),(3,5,4),(1,9,7),(8,6,5),(4,7,9),(9,0,4),(1,5,3),(4,9,3)};
其中有下划线的坐标为源节点的坐标。接着,先按第一维度的坐标从低到高的顺序对链C中的源节点和所有目标点进行排序;在第一次排序结果的基础上,再按第二维度的坐标从低到高的顺序进行排序;在第二次排序结果的基础上,再按第三维度的坐标从低到高的顺序进行排序,从形成维序链C1,如下:
C1={(1,1,2),(1,5,3),(1,9,7),(3,5,4),(4,7,9),(4,9,3),(8,5,4),(8,6,5),(9,0,4),(9,2,5)};
此外,可以通过先计算每个坐标的序号,然后对序号进行一次排序直接得到C1的维序链。计算序号的公式为式:
ID(a,b,c)=a+b*k1+c*k1*k2
其中,(a,b,c)为三维坐标,k1为第一维度上的节点数,k2为第二维度上的节点数。这样做就不需要对每维都进行排序。
接着,移动维序链C1,让源节点(8,5,4)位于维序链中的第一个位置,得到最终的维序链C2,如下:
C2={(8,5,4),(8,6,5),(9,0,4),(9,2,5),(1,1,2),(1,5,3),(1,9,7),(3,5,4),(4,7,9),(4,9,3)};
最后,在C2的基础上,基于组播树的组播方法将待组播消息发送给各目标点,具体按图7的方式进行4步来完成整个组播过程,带箭头的方向线上的数字表示第几步。
首先通过一个例子来看看维序链组播的问题。如图8所示,假设组播在8×8的Torus网络中进行,其中X为高维,Y为低维,通过X方向上的通道时间是5cycles,通过Y方向上的通道时间是1cycle,cycle为时间单位。图8中的黑点表示节点,源节点为三角形的0号节点,目标点为正方形的12号、17号和28号节点。维序链C={0,12,17,28}。根据维序链组播算法,需要先将待组播消息从0号传到17号。加权跳步数是1*5+2*1=7cycles。之后把消息从0号传到12号,加权跳步数是4*5+1*1=21cycles,所以整个组播走过通道需要7+21=28cycles。如果让源节点0号传给节点12号,之后0号传给17号,12号传给28,走过通道用了21+2=23cycles。注意当待组播消息的尾微片离开源节点,源节点就可以给另一个目标点发送消息。所以0号到12号和0-17不是最长路径。可以发现维序链算法很可能让待广播消息在某些维度上来回折返,从而占用了更多的通道资源。由于高维上的通道延迟更多,如果在高维上折返就会使通过通道的时间增加。图9是5维Torus网络分组维序组播的示意图,将5个维度分成两组(X,Y)和(a,b,c)。其中,X、Y为高延迟维度,需要先进行一次维序链组播。待广播消息到达目标点之后,再对(a,b,c)低延迟的三维进行一次维序链组播。(X0,Y0)为源节点在X和Y维上的坐标组合,(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)和(X5,Y5)分别为所有目标点在X和Y维上的坐标组合,图9中由多个节点组成的网状结构表示Torus网络中坐标包含各坐标组合的所有目标点和源节点的节点集合示意图,例如坐标包含(X0,Y0)的所有目标点和源节点是指第X维坐标为X0,第Y维坐标为Y0的所有目标点和源节点。源节点首先接收到待广播消息,进行一次维序链组播。源节点位于(X0,Y0)对应的节点集合中,第一步,源节点将待广播消息传递给(X3,Y3)对应节点集合中的一个目标点;第二步,源节点将待广播消息传递给(X2,Y2)对应节点集合中的一个目标点,(X3,Y3)对应节点集合中接收消息的目标点将待广播消息传递给(X5,Y5)对应节点集合中的一个目标点;第三步,源节点将待广播消息传递给(X1,Y1)对应节点集合中的一个目标点,(X3,Y3)对应节点集合中接收消息的目标点将待广播消息传递给(X4,Y4)对应节点集合中的一个目标点。将接收到待广播消息的目标点坐标源节点。然后对于(X0,Y0)、(X1,Y1)、(X2,Y2)、(X3,Y3)、(X4,Y4)和(X5,Y5)各自对应节点集合中的所有源节点和目标点分别进行一次维序链组合,其中,每个节点集合下方的方框表示该节点集合中的所有节点,每一列的第一个方框表示源节点。
假设Torus网络为n维,根据各维度上不同的通道延迟,将所有维度分成k个小组,用组播标签(S0,S1,...,Si,…,Sk-1)表示,初始值设置为(1,1,...,1,…,1),其中1代表此分组需要组播,0代表此分组不需要组播。此算法递归的按分组进行组播。直到每个组播标签都变成(0,0,…,0)。该算法包括如下步骤:
S1,在标签中从左到右找到第一位不为0的分组。
S2,把源节点和所有目标点按照其在该分组中所有维度上的坐标递增或者递减的方式进行排序形成链。
S3,将S2中形成的链左移或右移,直到源节点在链的第一个位置。
S4,根据移动后的链基于组播树的组播方法对待广播消息进行组播。
S5,完成该分组的待组播消息组播后,将组播标签中该分组的相应位置更改为0。
本实施例通过分组维序链进行组播,解决了通道的不均衡性而引起的延迟问题。
在上述实施例的基础上,本实施例中根据所有所述第二维度子集中各维度上的坐标对各所述第二维度子集进行排序的步骤具体包括:通过以下公式计算各所述第二维度子集的序号:
其中,ID为任一所述第二维度子集的序号,n为该第二维度子集中的维度数量,ai为该第二维度子集中第i个维度上的坐标,ki为该第二维度子集中第i个维度上的节点数量;按照所有所述第二维度子集的序号递增或递减的顺序对各所述第二维度子集进行排序。
下面将所提出基于几种链的组播算法在微片级的模拟器上进行仿真测试。在模拟中本实施例对Torus网络使用的是VCT交换技术。模拟的Torus网络中,每个单播路由包设置成包括10个微片。在三种不同的高维Torus网络中进行了模拟,包括6×6×6×6×6的五维网络、5×5×5×5×5×5的六维网络和2×2×3×6×8×8的六维网络。本发明实施例对四种链组播进行性能的比较。其中维序链组播用DOR表示。分组维序链组播用GDOR表示,距离链组播用DC表示,最短距离链组播用RDC表示。四种算法都是基于路由的组播算法,路由算法本专利使用了两种,分别是无故障的流控算法FC和容错路由算法FTFC。这两种算法都只使用了一条虚拟通道和两个缓存。在三种不同网络的模拟中本实施例都选择了均匀传输模式。源节点是以相同概率在所有节点中随机产生,而组播对象是在剩下节点中随机产生。
图10是6×6×6×6×6的五维Torus网络中的仿真结果。仿真中采用FTFC路由算法的组播中随机的添加了25个失效节点和25个失效连接。其中通过高三维通道的时间和通过低两维通道的时间比是5:1。组播的数量设置为200个。图10中的(a)和(b)是无故障路由算法FC下四种链组播的比较。(c)和(d)是容错路由算法FTFC下四种链组播的比较。比较包括平均延迟和可接受流量。其中平均延迟用cycles来表示。可接受流量本专利用每100个cycles中收到的packets来表示。从图中可以看到在有故障路由的组播算法和无故障路由的组播算法间的比较中(a)和(b),(c)和(d)的曲线形状相似。总体上有故障路由的组播算法的平均延迟和可接受流量要比无故障路由的组播算法稍微差一些。
在四种链的比较中,RDC有最明显的优势,远好于其它三种。如图10中(c)在延迟方面RDC在很低注入的时候就比其它三种算法好至少36.7%。在可接受流量方面如图10中的(d),DC在注入为27到达饱和,而RDC在接近45才达到饱和,比DC好了66.7%。RDC的优势是让最长路径的加权跳步数最短,同时RDC总是先传距离最近的节点,可以提前释放出通道和缓存。其它三种中GDOR和DOR曲线形状相似。但GDOR要稍好于DOR,其中在DOR的饱和点处,GDOR的延迟比DOR的要好14.8%。在GDOR和DOR的比较中,与两个因素有关:1,高延迟通道和低延迟通道的比例,一般高延迟通道的比例越多GDOR越有优势;2,组播对象,一般组播对象的数量越少GDOR越有优势。而DC在平均延迟方面,低注入时要比DOR和GDOR差,比如注入为5时,比DOR差了7.47%。但在高注入时DC又比DOR和GDOR好。
图11是2×2×3×6×8×8的六维Torus网络中的仿真结果。仿真中采用FTFC路由算法的组播中随机的添加了25个失效节点和25个失效连接。其中通过高三维通道的时间和通过低三维通道的时间比是5:1。组播的数量本专利设置为200个。图11中(a)和(b)是无故障路由算法FC下四种链组播的比较。(c)和(d)是有故障路由算法FTFC下四种链组播的比较。从图中可以看到在有故障路由的组播算法和无故障路由的组播算法间的比较中(a)和(b),(c)和(d)的曲线形状相似。总体上有故障路由的组播算法的平均延迟和可接受流量要比无故障路由的组播算法稍微差一些。在四种链的比较中,整体上是RDC>GDOR>DOR>DC。其中RDC仍有明显的优势,远好于其它三种。
在2×2×3×6×8×8的网络上本专利还针对组播对象数量不同做了仿真。本实施例对DOR、GDOR和RDC三种算法进行了比较。注入选择了9.216packets/100cycles。图12是比较结果。其中纵坐标是平均延迟,横坐标是每个组播的组播对象数量。如图12所示RDC要远好于GDOR和DOR。并且平均延迟至少要比GDOR和DOR低90cycles以上。本实施例还可以从RDC曲线看到平均延迟成阶梯状。比如200和250两个点平均延迟接近,这是因为它们的组播步数都等于8。而300,350,400,450,500五个点的平均延迟也接近,因为它们的组播步数都等于9。
图13是5×5×5×5×5×5的六维Torus网络中的仿真结果。仿真中采用FTFC路由算法的组播中随机的添加了50个失效节点和50个失效连接。其中通过高三维通道的时间和通过低三维通道的时间比是5:1。组播的数量本专利设置为500个。图中(a)和(b)是无故障路由算法FC下四种链组播的比较。(c)和(d)是有故障路由算法FTFC下四种链组播的比较。在有故障和无故障间的比较中(a)和(b),(c)和(d)的曲线形状相似。总体上有故障要比无故障稍微差一点。
在四种链的比较中,整体上是RDC>GDOR>DOR>DC。其中RDC仍有明显的优势,远好于其它三种。
下面对四种组播算法在三种网络中性能比较进行汇总。在三种网络的仿真模拟中,RDC都有明显的优势。在延迟上比其它三种至少好30%以上。在可接受流量方面比其它三种至少好50%。在两种六维网络的延迟和可接受流量的比较中都是RDC优于GDOR,GDOR优于DOR,DOR优于DC。在五维网络中,在低注入时DC的延迟最差,高注入时DC要优于GDOR。
本实施例提供一种电子设备,图14为本发明实施例提供的电子设备整体结构示意图,该设备包括:至少一个处理器141、至少一个存储器142和总线143;其中,
处理器141和存储器142通过总线143完成相互间的通信;
存储器142存储有可被处理器141执行的程序指令,处理器调用程序指令能够执行上述各方法实施例所提供的方法,例如包括:设置Torus网络中各维度的通道延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链;根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。
本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:设置Torus网络中各维度的通道延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链;根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的电子设备实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后,本申请的方法仅为较佳的实施方案,并非用于限定本发明实施例的保护范围。凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种基于Torus网络的组播方法,其特征在于,包括:
设置Torus网络中各维度的通道延迟,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链;
根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点;其中,将所述源节点作为发送所述待组播消息的起点。
2.根据权利要求1所述的基于Torus网络的组播方法,其特征在于,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:
设置所有所述维度的通道延迟中的最大通道延迟和最小通道延迟,计算所述最大通道延迟和所述最小通道延迟之间的比值;
根据所述比值计算所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数;
根据所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数,对所述源节点和所有所述目标点进行排序生成链。
3.根据权利要求2所述的基于Torus网络的组播方法,其特征在于,根据所述比值计算所述源节点到各所述目标点之间的加权跳步数的步骤具体包括:
计算任一所述目标点在每个维度上的跳步数Hi,具体步骤为首先对于所述Torus网络中的任一维度,计算任一所述目标点在该维度上的坐标和所述源节点在该维度上的坐标之间差值的绝对值;
若所述绝对值大于该维度上节点数量的二分之一,则将该维度上的节点数量减去所述绝对值的结果作为所述任一目标点在该维度上的跳步数;
若该维度为所述Torus网络的高延迟维度,则将所述跳步数Hi乘以延迟权值wi作为所述任一目标点在该维度上对应的跳步数;
将所述任一目标点在各维度上对应的跳步数相加,获取所述源节点到所述任一目标点之间的加权跳步数,公式如下:
其中,所述源节点到所述任一目标点之间的加权跳步数,T为n为Torus网络中的维度总数。
4.根据权利要求2所述的基于Torus网络的组播方法,其特征在于,根据所述源节点到各所述目标点之间的加权跳步数,以及所有所述目标点之间的加权跳步数,对所述源节点和所有所述目标点进行排序生成链的步骤具体包括:
将所述源节点放置在所述链中的首位;
对于放置在所述链中的源节点或任一目标点,从所有没有放置在所述链中的目标点中选择到所述源节点或该目标点加权跳步数最小的目标点,将选择的目标点插入到所述源节点或该目标点之后,且与所述源节点或该目标点紧邻,直到将所有所述目标点放置到所述链中。
5.根据权利要求1所述的基于Torus网络的组播方法,其特征在于,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:
设置所有所述维度的通道延迟中的最大通道延迟和最小通道延迟,计算所述最大通道延迟和所述最小通道延迟之间的比值;
根据所述比值计算所述源节点到各所述目标点之间的加权跳步数;
根据所述源节点到各所述目标点之间的加权跳步数对所述源节点和所有所述目标点进行排序,生成链。
6.根据权利要求1所述的基于Torus网络的组播方法,其特征在于,根据各所述维度的通道延迟对所述Torus网络中的源节点和所有目标点进行排序,生成链的步骤具体包括:
根据各所述维度的通道延迟,将Torus网络中的所有维度分成多个小组,将所有所述小组按照各所述小组中所有维度的平均通道延迟从高到低的顺序进行排序;
对于任一所述小组,获取该小组的前一个小组的排序结果中的所有第一维度子集;
对于任一所述第一维度子集,获取坐标包含该第一维度子集的源节点和所有目标点在该小组中所有维度上的第二维度子集;
根据所有所述第二维度子集中各维度上的坐标对所有所述第二维度子集进行排序;
将排序结果中所有所述第二维度子集整体左移或右移,直到所述源节点的第二维度子集在所述排序结果的第一个位置,生成链;
相应地,根据所述链,基于组播树的组播方法将待组播消息发送给各所述目标点的步骤具体包括:
对于任一所述第二维度子集,根据所述链基于组播树的组播方法将待组播消息发送给坐标包含该第二维度子集的所有目标点中的任一点,将该目标点作为源节点。
7.根据权利要求6所述的基于Torus网络的组播方法,其特征在于,根据所有所述第二维度子集中各维度上的坐标对各所述第二维度子集进行排序的步骤具体包括:
按照所有所述第二维度子集中各维度上的坐标递增或递减的顺序对各所述第二维度子集进行排序。
9.一种电子设备,其特征在于,包括:
至少一个处理器、至少一个存储器和总线;其中,
所述处理器和存储器通过所述总线完成相互间的通信;
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至8任一所述的方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至8任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910483313.XA CN112039678B (zh) | 2019-06-04 | 2019-06-04 | 基于Torus网络的组播方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910483313.XA CN112039678B (zh) | 2019-06-04 | 2019-06-04 | 基于Torus网络的组播方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112039678A true CN112039678A (zh) | 2020-12-04 |
CN112039678B CN112039678B (zh) | 2021-11-19 |
Family
ID=73576714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910483313.XA Active CN112039678B (zh) | 2019-06-04 | 2019-06-04 | 基于Torus网络的组播方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112039678B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2437629A1 (en) * | 2001-02-24 | 2002-09-06 | International Business Machines Corporation | Arithmetic functions in torus and tree networks |
CN1921437A (zh) * | 2006-08-04 | 2007-02-28 | 上海红神信息技术有限公司 | 内外连网络拓扑架构及自洽扩展该架构的并行计算系统 |
CN101848523A (zh) * | 2010-03-05 | 2010-09-29 | 北京北大众志微系统科技有限责任公司 | 一种多信道无线网状网络中的路径选择方法及装置 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN107612746A (zh) * | 2017-10-12 | 2018-01-19 | 曙光信息产业股份有限公司 | 一种构建Torus网络的方法、Torus网络和路由算法 |
CN107959643A (zh) * | 2017-12-29 | 2018-04-24 | 曙光信息产业(北京)有限公司 | 一种通过交换芯片构建的交换系统及其路由算法 |
CN108259387A (zh) * | 2017-12-29 | 2018-07-06 | 曙光信息产业(北京)有限公司 | 一种通过交换机构建的交换系统及其路由算法 |
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
CN109561034A (zh) * | 2018-12-25 | 2019-04-02 | 中科曙光信息产业成都有限公司 | 三维网络拓扑结构及其路由算法 |
-
2019
- 2019-06-04 CN CN201910483313.XA patent/CN112039678B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2437629A1 (en) * | 2001-02-24 | 2002-09-06 | International Business Machines Corporation | Arithmetic functions in torus and tree networks |
CN1921437A (zh) * | 2006-08-04 | 2007-02-28 | 上海红神信息技术有限公司 | 内外连网络拓扑架构及自洽扩展该架构的并行计算系统 |
CN101848523A (zh) * | 2010-03-05 | 2010-09-29 | 北京北大众志微系统科技有限责任公司 | 一种多信道无线网状网络中的路径选择方法及装置 |
CN102170402A (zh) * | 2011-05-31 | 2011-08-31 | 清华大学 | Torus网络中的无死锁自适应路由算法 |
CN107612746A (zh) * | 2017-10-12 | 2018-01-19 | 曙光信息产业股份有限公司 | 一种构建Torus网络的方法、Torus网络和路由算法 |
CN107959643A (zh) * | 2017-12-29 | 2018-04-24 | 曙光信息产业(北京)有限公司 | 一种通过交换芯片构建的交换系统及其路由算法 |
CN108259387A (zh) * | 2017-12-29 | 2018-07-06 | 曙光信息产业(北京)有限公司 | 一种通过交换机构建的交换系统及其路由算法 |
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
CN109561034A (zh) * | 2018-12-25 | 2019-04-02 | 中科曙光信息产业成都有限公司 | 三维网络拓扑结构及其路由算法 |
Non-Patent Citations (1)
Title |
---|
丁毓良: "基于Torus拓扑的自适应片上网络路由算法研究", 《中国优秀硕士学位论文全文数据库》 * |
Also Published As
Publication number | Publication date |
---|---|
CN112039678B (zh) | 2021-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7853639B2 (en) | Performing process migration with allreduce operations | |
Koibuchi et al. | A case for random shortcut topologies for HPC interconnects | |
CN112468401B (zh) | 用于类脑处理器的片上网络路由通信方法及片上网络 | |
US20120151292A1 (en) | Supporting Distributed Key-Based Processes | |
Fujiwara et al. | Skywalk: A topology for HPC networks with low-delay switches | |
Daneshtalab et al. | Low-distance path-based multicast routing algorithm for network-on-chips | |
CN102546380B (zh) | 修改的基于树的多播路由方案 | |
CN113438171B (zh) | 一种低功耗存算一体系统的多芯片连接方法 | |
CN112039678B (zh) | 基于Torus网络的组播方法 | |
Jouraku et al. | An effective design of deadlock-free routing algorithms based on 2d turn model for irregular networks | |
Sun et al. | An efficient deadlock-free tree-based routing algorithm for irregular wormhole-routed networks based on the turn model | |
CN108337176B (zh) | 一种报文处理方法和装置 | |
Ebrahimi et al. | An efficent dynamic multicast routing protocol for distributing traffic in NOCs | |
CN110324249B (zh) | 一种蜻蜓网络架构及其组播路由方法 | |
CN114237985B (zh) | 修复纠删码存储系统中失效存储块的方法及相关设备 | |
CN112039786B (zh) | 基于Torus网络的广播方法 | |
Tiwari et al. | Efficient on-chip multicast routing based on dynamic partition merging | |
Moraveji et al. | Multispanning tree zone-ordered label-based routing algorithms for irregular networks | |
Hosomi et al. | Dual-plane isomorphic hypercube network | |
Ge et al. | Synthesizing a generalized brain-inspired interconnection network for large-scale network-on-chip systems | |
Momeni et al. | Improved-XY: A High Performance Wormhole-Switched Routing Algorithm for Irregular 2-D Mesh NoC | |
Sasakawa et al. | LEF: long edge first routing for two-dimensional mesh network on chip | |
Sun et al. | Barrier synchronization on wormhole-routed networks | |
Terzian | On near optimal time and dynamic delay and delay variation multicast algorithms | |
Razavi Khorasan Province | A Partitioning Scheme to Route X-Folded TM Topology Deadlock-Free |
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 |