CN101267398A - 二维torus网中的无死锁自适应路由方法 - Google Patents

二维torus网中的无死锁自适应路由方法 Download PDF

Info

Publication number
CN101267398A
CN101267398A CNA2008101044069A CN200810104406A CN101267398A CN 101267398 A CN101267398 A CN 101267398A CN A2008101044069 A CNA2008101044069 A CN A2008101044069A CN 200810104406 A CN200810104406 A CN 200810104406A CN 101267398 A CN101267398 A CN 101267398A
Authority
CN
China
Prior art keywords
selector channel
channel
message
passage
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
Application number
CNA2008101044069A
Other languages
English (en)
Other versions
CN101267398B (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.)
Tsinghua University
Original Assignee
Tsinghua University
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 Tsinghua University filed Critical Tsinghua University
Priority to CN2008101044069A priority Critical patent/CN101267398B/zh
Publication of CN101267398A publication Critical patent/CN101267398A/zh
Application granted granted Critical
Publication of CN101267398B publication Critical patent/CN101267398B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

二维torus网络无死锁的自适应路由方法属于分布式高性能容错计算技术领域,其特征在于,把节点之间的每条物理通道被划分为两条虚拟通道,这两条通道均为两向通道,并分配到二维torus网络的四个虚拟子网中,利用虚拟通道分配策略避免了各子网内以及各子网间可能形成的死锁,同时达到更高的自适应性。本发明与传统的维序路由方法、西向优先和负向优先方法相比,当标准化输入负载和网络中故障节点数提高时,我们的方法明显可以提高网络实际流量,并降低传输延迟,从而提高整个网络的传输性能。

Description

二维torus网中的无死锁自适应路由方法
技术领域
二维torus网中的无死锁自适应路由方法属于分布式高性能容错计算技术领域。
背景技术
在当今的实验用及商用的多计算机系统中,torus网是一种被广泛利用的拓扑结构。k元n维torus网是指一个n维的网格结构,在每一维上有k个结点,其中每两个相邻节点由物理通道联通,每一维上两个边界节点有一条边界通道联通。多计算机系统的性能在最大程度上取决于系统中点到点的通讯方法的性能。因此,很有必要提出一些应用于torus网的高性能的路由方法。
对于自适应的容错路由方法,通常需要将每条物理通道划分为一定数量的虚拟通道来实现死锁避免方法,通道上的物理资源(如缓存、带宽)会分配到各个虚拟通道之上。因此,实现死锁避免所需要虚拟通道个数成为影响路由方法资源利用效率的重要因素,使用更少的虚拟通道,可以使每条虚拟通道分配到更多的资源,提高方法效率,尤其是在物理资源比较有限的情况下;但是,更少的虚拟通道也会使得设计死锁避免方法的难度增加。
Linder和Harden将虚拟通道的概念扩展为虚拟子网,并将其用于实现自适性、容错性以及死锁避免。不同的虚拟子网中分配不同的虚拟通道,对于高维的torus网所需的虚拟通道个数就变得相当大。Wu改进了torus网中的虚拟子网方法,虚拟通道的个数等于torus网的维数。相比前面的方法,虚拟通道个数已经大为减少。
Glass和Ni提出的转弯模型是一个具有重要意义的部分自适应的路由方法。基于转弯模型,路由方法可以通过限制某些转弯消除通道间的环相关,达到避免死锁的效果,而不必添加额外的虚拟通道。基于转弯模型也可以扩展出具有容错性能的方法。Duato对Duato协议进行了扩展,实现了torus网中的无死锁完全自适应容错路由。
Chien和Kim提出了另一个具有重要意义的部分自适应路由方法——平面自适应路由(Planar Adaptive Routing),此方法将路由限制在一系列连续的平面内,只需三条虚拟通道就可以在任何维数的网络内避免死锁。
Gomez提出了一种通过选择中间节点而实现的两阶段路由方法,从源节点到中间节点和从中间节点到目标节点分别使用不同的虚拟子网,在每一子网内部使用Duato的完全自适应协议,两个子网使用相同的自适应虚拟通道,但使用不同的逃逸通道,也就是说,共需要三条虚拟通道。
对于自适应的容错路由方法,通常需要将每条物理通道划分为一定数量的虚拟通道来实现死锁避免方法,通道上的物理资源(如缓存、带宽)会分配到各个虚拟通道之上。因此,实现死锁避免所需要虚拟通道个数成为影响路由方法资源利用效率的重要因素,使用更少的虚拟通道,可以使每条虚拟通道分配到更多的资源,提高方法效率,尤其是在物理资源比较有限的情况下;但是,更少的虚拟通道也会使得设计死锁避免方法的难度增加。
一个k元二维torus网有k2个节点,其中两个节点(a2a1)和(b2b1)之间有连接当且仅当两节点坐标有且只有一位不同,并且|ai-bi|=1或者ai-bi|=k-1。
维序路由方法给出了一个简单的用于二维torus网的死锁避免方法,每条物理通道需要两条虚拟通道。下面我们以二维的torus网为例来说明维序路由方法的方法。路由消息在平面内沿x方向路由,直到x方向的偏移量变为0以后,消息才能跳转至y方向继续路由。平面中的虚拟通道分配方案如下:虚拟子网中x方向不需要经过边界通道时使用虚拟通道c1,需要经过边界通道时使用虚拟通道c2,y方向同理。
基于转弯模型的西向优先路由方法和负向路由方法通过限制转弯来避免死锁。其中西向优先算法在路由消息时优先向西(x-)方向,消息必须在向西路由结束后才能跳转到y轴继续路由;西向优先算法在路由消息时优先负(x-和y-)方向,消息必须在负向路由结束后才能跳转到另一维度继续路由。两种路由方法使用的虚拟通道分配方案与维序路由方法相同。
发明内容
该发明的目的在于设计了一种二维torus网中的无死锁自适应路由方法,允许节点之间的每条物理通道被划分为两条虚拟通道,并分配到torus网中各平面的四个虚拟子网中,利用虚拟通道分配策略避免了可能形成的死锁,同时达到了更高的自适应性。
本发明的特征在于,所述方法在每一维上有k个节点的二维torus网上依次按步骤实现的:
步骤(1):初始化:
对于二维torus网络,连接两个边界之间的物理通道称为边界通道;把每条物理通道被划分为两条虚拟通道:c1和c2,这两条通道均为两向通道,c1通道分为c1+和c1-两个方向的通道,c2通道分为c2+和c2-两个方向的通道,“+”和“-”表示消息传输的正负方向;
将二维torus网划分为划分为如下四个虚拟子网:x-y-、x-y+、x+y-、x+y+,x+、x-即表示在x轴上的正、负方向的路由,对于y轴同理;
步骤(2):对于每个消息消息依次按以下步骤分配到所属虚拟子网:
设当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,dx表示所述维度上的虚拟子网分配,对于dy同理,例如dx=-,dy=-表示分配到x-y-虚拟子网;
当A≥0且B≥0时,如果A≥k/2,B≥k/2,dx=-,dy=-;
如果A<k/2,B≥k/2,dx=+,dy=-;
如果A≥k/2,B<k/2,dx=-,dy=+;
如果A<k/2,B<k/2,dx=+,dy=+;
当A≥0且B<0时,
如果A≥k/2,B≥-k/2,dx=-,dy=-;
如果A<k/2,B≥-k/2,dx=+,dy=-;
如果A≥k/2,B<-k/2,dx=-,dy=+;
如果A<k/2,B<-k/2,dx=+,dy=+;
当A<0且B≥0时,
如果A≤-k/2,B≥k/2,dx=+,dy=-;
如果A≤-k/2,B<k/2,dx=+,dy=+;
如果A>-k/2,B≥k/2,dx=-,dy=-;
如果A>-k/2,B<k/2,dx=-,dy=+.
当A<0且B<0时,
如果A<-k/2,B<-k/2,dx=+,dy=+;
如果A<-k/2,B>-k/2,dx=+,dy=-;
如果A≥-k/2,B<-k/2,dx=-,dy=+;
如果A≥-k/2,B≥-k/2,dx =-,dy=-;
步骤(3):二维平面上的消息依次按以下步骤路由:
步骤(2.1):如果消息在x-y-虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1-),y(c1+);
如果A<0,B≥0,则选择通道x(c2-),y(c1+);
如果A≥0,B<0,则选择通道x(c1-),y(c2+);
如果A<0,B<0,则选择通道x(c2-),y(c2+);
步骤(3.3):如果消息在x+y-虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1+),y(c1-);
如果A<0,B≥0,则选择通道x(c2+),y(c1-);
如果A≥0,B<0,则选择通道x(c1+),y(c2-);
如果A<0,B<0,则选择通道x(c2+),y(c2-);
步骤(3.4):如果消息在x+y+虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1+),y(c1+);
如果A<0,B≥0,则选择通道x(c2+),y(c1+);
如果A≥0,B<0,则选择通道x(c1+),y(c2+);
如果A<0,B<0,则选择通道x(c2+),y(c2+)。
本发明与传统的维序路由方法、西向优先和负向优先方法相比,当标准化输入负载和网络中故障节点数提高时,本方法明显可以提高网络实际流量,并降低传输延迟,从而提高整个网络的传输性能。
附图说明
图1,二维torus网络中的虚拟通道分配方案:
(a)虚拟子网x+y+
(b)虚拟子网x+y-
(c)虚拟子网x-y+
(d)虚拟子网x-y-。
图2,32x32无故障torus网uniform模式(任意点间路由)标准化输入负载对性能的影响:
(a)标准化输入负载对传输延迟的影响(b)标准化输入负载对标准化实际流量的影响
节点缓存:96微片  故障个数:0
Figure A20081010440600081
图3,32x32无故障torus网tanspose(消息从坐标(i,j)路由至(31-j,31-i))模式标准化输入负载对性能的影响:
(a)标准化输入负载对传输延迟的影响(b)标准化输入负载对标准化实际流量的影响节点缓存:96微片  故障个数:0
图4,32x32无故障torus网hotspot(消息从任意点路由到网络中心的两个目标节点)模式标准化输入负载对性能的影响:
(a)标准化输入负载对传输延迟的影响(b)标准化输入负载对标准化实际流量的影响节点缓存:96微片  故障个数:0
Figure A20081010440600083
图5,二维torus网中的无死锁自适应路由方法流程图。
具体实施方式
一个物理网络可以被划分为若干个虚拟子网。插入网络的消息被限制在某一个虚拟子网中进行路由。只要在每一个虚拟子网中不存在死锁,并且各虚拟子网间不会形成死锁,就可以保证整个网络中不会出现死锁。本文中提出的划分方法主要针对二维torus网,这种方法也可以被扩展而用于更高维的网络。
一个二维的torus网可以划分为如下四个虚拟子网:1.x-y-,2.x-y+,3.x+y-,4.x+y+。我们用ci表示一条物理通道中的第i条虚拟通道。对于二维torus网,如果不允许绕行路由(deroute),根据前面提到的虚拟子网划分方法,任何一个虚拟子网内都不可能存在通道的环相关。绕行路由的消息有形成死锁的可能性,我们通过这样的方法来避免这种死锁:对于在x方向和y方向上使用边界通道路由的消息,使用不同于原分配虚拟通道(c1或c2)的另外一条虚拟通道(c2或c1),不经过边界通道路由时再换回到原分配虚拟通道,所以路由消息均使用上述通道分配策略实现死锁避免。
下面给出了平面中各个虚拟子网的路由方法:
方法route(x-y-):
当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,如果A≥0,B≥0,则选择通道Channel:=Select(x(c1-),y(c1-));如果A<0,B≥0,则选择通道Channel:=Select(x(c2-),y(c1-));如果A≥0,B<0,则选择通道Channel:=Select(x(c1-),y(c2-));如果A<0,B<0,则选择通道Channel:=Select(c2-),y(c2-))。
方法route(x-y+):
当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,如果A≥0,B≥0,则选择通道Channel:=Select(x(c1-),y(c1+));如果A<0,B≥0,则选择通道Channel:=Select(x(c2-),y(c1+));如果A≥0,B<0,则选择通道Channel:=Select(x(c1-),y(c2+));如果A<0,B<0,则选择通道Channel:=Select(c2-),y(c2+))。
方法route(x+y-):
当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,如果A≥0,B≥0,则选择通道Channel:=Select(x(c1+),y(c1-));如果A<0,B≥0,则选择通道Channel:=Select(x(c2+),y(c1-));如果A≥0,B<0,则选择通道Channel:=Select(c1+),y(c2-));如果A<0,B<0,则选择通道Channel:=Select(x(c2+),y(c2-));
方法route(x+y+):
当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,如果A≥0,B≥0,则选择通道Channel:=Select(x(c1+),y(c1+));如果A<0,B≥0,则选择通道Channel:=Select(x(c2+),y(c1+));如果A≥0,B<0,则选择通道Channel:=Select(x(c1+),y(c2+));如果A<0,B<0,则选择通道Channel:=Select(x(c2+),y(c2+))。

Claims (1)

1、二维torus网中的无死锁自适应路由方法,其特征在于,所述方法是在每一维上有k个节点的二维torus网上依次按步骤实现的:
步骤(1):初始化
对于二维torus网络,连接两个边界之间的物理通道称为边界通道;把每条物理通道被划分为两条虚拟通道:c1和c2,这两条通道均为两向通道,c1通道分为c1+和c1-两个方向的通道,c2通道分为c2+和c2-两个方向的通道,“+”和“-”表示消息传输的正负方向;
将二维torus网划分为划分为如下四个虚拟子网:x-y-、x-y+、x+y-、x+y+,x+、x-即表示在x轴上的正、负方向的路由,对于y轴同理;
步骤(2):对于每个消息消息依次按以下步骤分配到所属虚拟子网:
设当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,其中下标c、d分别代表当前节点和目的节点,dx表示所述维度上的虚拟子网分配,对于dy同理;
当A≥0且B≥0时,
如果A≥k/2,B≥k/2,dx=-,dy=-;
如果A<k/2,B≥k/2,dx=+,dy=-;
如果A≥k/2,B<k/2,dx=-,dy=+;
如果A<k/2,B<k/2,dx=+,dy=+;
当A≥0且B<0时,
如果A≥k/2,B≥-k/2,dx=-,dy=-;
如果A<k/2,B≥-k/2,dx=+,dy=-;
如果A≥k/2,B<-k/2,dx=-,dy=+;
如果A<k/2,B<-k/2,dx=+,dy=+;
当A<0且B≥0时,
如果A≤-k/2,B≥k/2,dx=+,dy=-;
如果A≤-k/2,B<k/2,dx=+,dy=+;
如果A>-k/2,B≥k/2,dx=-,dy=-;
如果A>-k/2,B<k/2,dx=-,dy=+;
当A<0且B<0时,
如果A<-k/2,B<-k/2,dx=+,dy=+;
如果A<-k/2,B>-k/2,dx=+,dy=-;
如果A≥-k/2,B<-k/2,dx=-,dy=+;
如果A≥-k/2,B≥-k/2,dx=-,dy=-;
步骤(3):二维平面上的消息依次按以下步骤路由:
步骤(3.1):如果消息在x-y-虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1-),y(c1-);
如果A<0,B≥0,则选择通道x(c2-),y(c1-);
如果A≥0,B<0,则选择通道x(c1-),y(c2-);
如果A<0,B<0,则选择通道x(c2-),y(c2-);
步骤(3.2):如果消息在x-y+虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1-),y(c1+);
如果A<0,B≥0,则选择通道x(c2-),y(c1+);
如果A≥0,B<0,则选择通道x(c1-),y(c2+);
如果A<0,B<0,则选择通道x(c2-),y(c2+);
步骤(3.3):如果消息在x+y-虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1+),y(c1-);
如果A<0,B≥0,则选择通道x(c2+),y(c1-);
如果A≥0,B<0,则选择通道x(c1+),y(c2-);
如果A<0,B<0,则选择通道x(c2+),y(c2-);
步骤(3.4):如果消息在x+y+虚拟子网中:
如果A≥0,B≥0,则选择通道x(c1+),y(c1+);
如果A<0,B≥0,则选择通道x(c2+),y(c1+);
如果A≥0,B<0,则选择通道x(c1+),y(c2+);
如果A<0,B<0,则选择通道x(c2+),y(c2+)。
CN2008101044069A 2008-04-18 2008-04-18 二维torus网中的无死锁自适应路由方法 Expired - Fee Related CN101267398B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101044069A CN101267398B (zh) 2008-04-18 2008-04-18 二维torus网中的无死锁自适应路由方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101044069A CN101267398B (zh) 2008-04-18 2008-04-18 二维torus网中的无死锁自适应路由方法

Publications (2)

Publication Number Publication Date
CN101267398A true CN101267398A (zh) 2008-09-17
CN101267398B CN101267398B (zh) 2010-09-01

Family

ID=39989540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101044069A Expired - Fee Related CN101267398B (zh) 2008-04-18 2008-04-18 二维torus网中的无死锁自适应路由方法

Country Status (1)

Country Link
CN (1) CN101267398B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301365A (zh) * 2009-01-30 2011-12-28 富士通株式会社 信息处理系统、信息处理装置、信息处理装置的控制方法、信息处理装置的控制程序以及计算机可读记录介质
CN102333038A (zh) * 2011-10-21 2012-01-25 上海交通大学 一种基于片上网络的无死锁路由方法
CN110198268A (zh) * 2019-05-15 2019-09-03 清华大学 高维度Torus网络架构及自适应路由方法
CN112350929A (zh) * 2019-08-08 2021-02-09 特拉维夫迈络思科技有限公司 以最小数目虚拟通道在无损笛卡尔拓扑中产生无死锁路由
CN114760255A (zh) * 2022-03-31 2022-07-15 中国电子科技集团公司第五十八研究所 一种面向多裸芯互连的片上片间一体化网络无死锁架构

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100399771C (zh) * 2004-12-09 2008-07-02 电子科技大学 一种多维交换结构中的无死锁自适应路由方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102301365A (zh) * 2009-01-30 2011-12-28 富士通株式会社 信息处理系统、信息处理装置、信息处理装置的控制方法、信息处理装置的控制程序以及计算机可读记录介质
CN102301365B (zh) * 2009-01-30 2013-12-25 富士通株式会社 信息处理系统、信息处理装置、信息处理装置的控制方法、信息处理装置的控制程序以及计算机可读记录介质
CN102333038A (zh) * 2011-10-21 2012-01-25 上海交通大学 一种基于片上网络的无死锁路由方法
CN102333038B (zh) * 2011-10-21 2013-11-13 上海交通大学 一种基于片上网络的无死锁路由方法
CN110198268A (zh) * 2019-05-15 2019-09-03 清华大学 高维度Torus网络架构及自适应路由方法
CN112350929A (zh) * 2019-08-08 2021-02-09 特拉维夫迈络思科技有限公司 以最小数目虚拟通道在无损笛卡尔拓扑中产生无死锁路由
CN114760255A (zh) * 2022-03-31 2022-07-15 中国电子科技集团公司第五十八研究所 一种面向多裸芯互连的片上片间一体化网络无死锁架构
CN114760255B (zh) * 2022-03-31 2024-03-08 中国电子科技集团公司第五十八研究所 一种面向多裸芯互连的片上片间一体化网络无死锁架构

Also Published As

Publication number Publication date
CN101267398B (zh) 2010-09-01

Similar Documents

Publication Publication Date Title
CN101335704B (zh) 三维torus网中的无死锁自适应路由方法
Wang et al. An effective approach to controller placement in software defined wide area networks
Jimenez et al. On the controller placement for designing a distributed SDN control layer
Chiu The odd-even turn model for adaptive routing
CN101267398B (zh) 二维torus网中的无死锁自适应路由方法
CN107710696B (zh) 用于路径确定的方法和网络组件
CN102164088B (zh) 数据中心网络系统
CN101262444A (zh) 基于通道交叠的容错mesh网避免死锁的路由方法
CN103346967A (zh) 一种数据中心网络拓扑结构及其路由方法
CN101242372A (zh) k元N维mesh网中的无死锁路由方法
US20230327976A1 (en) Deadlock-free multipath routing for direct interconnect networks
CN101267394A (zh) 三维mesh网中无死锁的平面自适应路由方法
Zhu et al. Efficient hybrid multicast approach in wireless data center network
CN116886591B (zh) 计算机网络系统及路由方法
CN114116596A (zh) 面向片上神经网络的基于动态中继的无限路由方法和架构
Avresky et al. Dynamic Reconfiguration in High-Speed Computer Clusters.
CN106209518B (zh) 一种基于“包-电路”交换技术的动态转向路由算法
Kurokawa et al. Xy based fault-tolerant routing with the passage of faulty nodes
CN110058970B (zh) 一种灾难风险模型下的双虚拟机准同步撤离方法
Kiasari et al. Analytic performance comparison of hypercubes and star graphs with implementation constraints
CN106713136B (zh) 一种基于堆结构扩张软件定义网络的方法
CN115499271B (zh) 一种混合网络拓扑结构及其路由方法
Satish et al. Comparative performance analysis of routing topology for noc architecture
Krishnan et al. Fault-tolerant routing with minimum delay for mesh architecture
Bahrebar et al. Design and exploration of routing methods for NoC-based multicore systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100901

Termination date: 20150418

EXPY Termination of patent right or utility model