CN103179034B - 无死锁自适应路由方法 - Google Patents
无死锁自适应路由方法 Download PDFInfo
- Publication number
- CN103179034B CN103179034B CN201110436008.9A CN201110436008A CN103179034B CN 103179034 B CN103179034 B CN 103179034B CN 201110436008 A CN201110436008 A CN 201110436008A CN 103179034 B CN103179034 B CN 103179034B
- Authority
- CN
- China
- Prior art keywords
- node
- network
- message
- span
- path
- 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
- 238000000034 method Methods 0.000 title claims abstract description 15
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 8
- 230000005540 biological transmission Effects 0.000 claims description 46
- 108091006146 Channels Proteins 0.000 description 11
- 230000006978 adaptation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种无死锁自适应路由方法,涉及高性能服务器技术领域,该方法根据数据源节点与目的节点的逻辑连接关系,按照负向选择策略选择所述源节点到目的节点的通路,对容错网络的第一个子网络中的N个交换器按0~N-1编号,第二个子网络中N个交换器按N~2N-1编号,若位于不同网络的两个交换器的节点编号对N取模的值相同,则位于不同网络的这两个交换器之间存在一条链路。本发明在不使用虚拟通道的情况下实现了在结构无故障网络中无死锁的适应性路由。
Description
技术领域
本发明涉及高性能服务器技术领域,特别涉及一种无死锁自适应路由方法。
背景技术
高端容错计算机在银行业,远程通讯管理,电子化政务以及很多其它关键任务的处理中得到了广泛的应用。高端容错计算机,通常也可以称为服务器,通常具有强大的信息处理能力以及大规模服务器系统中的高可靠性。这种计算机一般含有8~64个处理器,能够运行大规模的计算任务同时具有高达99.999%的可靠性。高速信息处理能力以及高可靠性是容错计算机的两个最重要的特性。容错是指在部件失效的情况下网络运作的能力。然而容错实现技术往往是巨大的性能降低为代价的。故障的存在使得已有的无死锁和无活锁路由解决方法变的无效。
近期,设计出了一种新型的容错计算机结构,此系统结构含有32个计算节点,其中每一个计算节点都能提供足够强大的计算能力。此系统可以划分为两个子网络,其中每一子网络中均含有十六个计算节点。且每个子网络中含有8个彼此连接的交换器,每一个交换器连接两个计算节点。每个交换器连接到另一子网络中的一台交换器。每一个交换器的度均为10,其连接了两个本地计算节点以及八个相邻的交换器。
现代的路由器是非常健壮的,在运行中不会经常出现失效。但是在某些环境下,必须对失效要有所预料以及定位,无论部件失效的概率多么小(例如:国防军工应用系统,太空运载系统等等)。这些工作环境采用部件失效率,故障修复能力以及系统平滑降级使用能力来表征,这就带动了用于直接网络容错路由算法的发展。路由算法决定了报文包经由数据源节点向目的节点传输的过程中所占用的通道序列。路由策略对直连网络的效率具有非常重要的影响。对于高端的容错计算机关键系统来说,容错路由的算法对于系统的表现有着更加重要的作用。
由于给定的容错计算机网络结构是全新的,它不同于以往的任何网络结构,并没有相应的路由算法。因此,该网络需要一种高效的无死锁路由策略。特别是由于此网络针对的是关键任务的运作,因此为其提供一种无死锁高效的容错自适应路由策略就显得极为重要。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:对于上述的新型容错计算机网络,在不使用虚拟通道的情况下如何实现无死锁的自适应路由策略。
(二)技术方案
为解决上述技术问题,本发明提供了一种无死锁自适应路由方法,根据数据源节点与目的节点的逻辑连接关系,按照负向选择策略选择所述源节点到目的节点的通路,所述逻辑连接关系定义如下:
对容错网络的第一个子网络中的N个交换器按0~N-1编号,第二个子网络中N个交换器按N~2N-1编号,若位于不同网络的两个交换器的节点编号对N取模的值相同,则位于不同网络的这两个交换器之间存在一条链路;
所述负向选择策略定义如下:
当前节点的编号大于下一节点编号,那么则这条通路定义为负跨度;反之则为正跨度,若报文沿负跨度传输后,允许其向负跨度以及正跨度传输;若报文沿正跨度传输后,则仅允许报文沿正跨度传输。
其中,按照负向选择策略选择所述源节点到目的节点的通路的方式为:
若有两条最短路径,且路径都可用,则随机选择一条输出;
若有两条最短路径,有一条的路径可用,则选择该条路径输出;
若无可用最短路径,则绕道路由。
其中,所述绕道路由的方式具体为:根据数据源节点与目的节点所在网络的位置关系,选择符合传输原则的中继节点,所述中继节点符合以下情况:
若数据源节点标号比目的节点标号大,中继节点需满足节点标号小于数据源节点。
若数据源节点标号比目的节点标号小,中继节点需满足节点标号小于目的节点标号。
(三)有益效果
本发明的方法中通过负向优先选择策略,在不使用虚拟通道的情况下实现了在结构无故障网络中无死锁的适应性路由。
附图说明
图1是本发明的无死锁自适应路由方法基于的容错网络结构;
图2是图1的容错网络中可能构成的死锁结构;
图3是采用本路由策略后对死锁的消除后的示意图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
对容错网络的第一个子网络中的N个交换器按0~N-1编号,第二个子网络中N个交换器按N~2N-1编号,若位于不同网络的两个交换器的节点编号对N取模的值相同,则位于不同网络的这两个交换器之间存在一条链路。
以每个子网络8个交换器为例,对容错网络中的两个子网络的所有的交换器都是用一个二进制数表示(也可以用其他进制数表示),第一个子网络结构由下列8个交换器构成:0000、0001、0010、0011、0100、0101、0110、0111;第二个子网络中交换器序号为:1000、1001、1010、1011、1100、1101、1110、1111。两个子网络之间,若位于不同网络的两个交换器的节点编号对N取模的值相同,则两个交换器之间存在一条链路,对于8个交换器的情况,表现为两个交换器编号仅首位不同。
首先,系统中每个节点的方向由下述方式定义。令(v1,v2)是两个节点间的链路。当v1比v2标号大时,则认为链路(v1,v2)是负向的;反之,则认为这条链路是正向的。若报文包沿负向链路传输,则称报文传输了一个负跨度;同理,当报文传输了正向链路之后就称其传输了一个正跨度。其次,系统中的任意一个环路一定是由如下两种模式构成的(1)一次或是两次正跨度+一次或是两次的负跨度+一次或是两次的正跨度,(2)一次或是两次负跨度+一次或两次正跨度+一次或两次负跨度。最后,死锁的产生有四个必要条件:互斥,请求与保持,非抢占式以及循环等待,破坏其中的任何一项都能有效的避免死锁。
基于该容错计算机网络的无死锁路由策略在无故障的状态下,不使用任何虚拟通道加以实现。考虑死锁产生的四个必要条件:资源互斥,请求与保持,非抢占式以及循环等待。因此,采用消除循环等待的方式进行死锁的避免。使报文传输时满足下列规则:若报文沿负跨度传输,允许其向负跨度以及正跨度传输;若报文沿正跨度传输后,则允许报文沿正跨度传输。
考虑从1100向0011传输的报文。那么从1100向0011传输有两条最短路径:(1)1100-0100-0011以及(2)1100-1011-0011。这两个通道序列都是由两个负跨度组成,则这两条通路都能够用来传输报文。
考虑从1011向0100传输的报文。同样的,存在两条最短路径:(1)1011-0011-0100,(2)1011-1100-0100。第一条路径中,报文首先沿负跨度传输,接着沿正跨度传输,能够用来传输报文;第二条路径中,报文首先沿正跨度传输,接着沿负跨度传输,这是一条违反传输规则的路径,报文不能选择这条路径进行传输。
考虑从0011向1100传输的报文,存在两条最短路径:(1)0011-0100-1100、(2)0011-1011-1100。两条通路都是两个正跨度,都能够用来作为报文的传输选择。
考虑从0100向1011传输的报文,存在两条最短路径:(1)0100-1100-1011、(2)0100-0011-1011。第一条通路先沿正跨度传输,再沿负跨度传输,违反了传输规则,因此报文不能选择这条路径进行传输;第二条通路先沿负跨度进行传输,再沿正跨度传输,可以采用。
当最小可选路径被占用时,特别是当报文只有一条可选路径的情况下,采用绕道路由的方式。绕道路由将会使报文包传输时增加一到多次跨度。在本发明中,当报文绕道路由时只增加一个跨度。
考虑由0100向1001传输的报文包,当可选通路被阻塞了之后,报文可以首先路由到0010,0000或者0011,这样随后就会分别传输到1010、1000以及1011之中。对于这三种不同的传输方式来说,当报文首先传输到0000时,报文传输了一个负跨度,之后再经由两次正跨度传输到目的节点1001;对报文包经由0010,0011绕道的情况下,报文传输将经过一次负跨度,一次正跨度后再经过一次负跨度,显然是违背了传输的原则,不允许进行这样的路由选择。
那么,给出的容错计算机网络中,无故障无死锁自适应路由策略可以用如下几条规则描述:
规则1:报文包进行路由的通道序列必须首先沿负跨度传输,如果沿正跨度传输之后,报文包不允许再沿负跨度传输。
规则2:报文包在进行通道选择时,根据规则1对备选的通路进行选择。
规则3:若产生的两个备选通道都可使用时,任选一条。若仅有一条通道可用,选择本通道。若可选通道均阻塞,根据规则4与规则5进行绕道路由。
规则4:当源节点在第二个子网络中时,报文绕道路由时选取的绕道节点满足节点的编码号小于源节点编号。
规则5:当源节点在第一个子网络中时,报文绕道路由时选取绕道节点满足节点编码小于目的节点编码。
下面结合附图说明本发明的方法如何通过消除循环等待以消除死锁的原理。
图1中展示了本发明所适用的容错计算机网络结构。系统结构含有32个计算节点,其中每一个计算节点都能提供足够强大的计算能力。此系统可以划分为两个子网络,其中每一子网络中均含有十六个计算节点。且每个子网络中含有8个彼此连接的交换器,每一个交换器连接两个计算节点。每个交换器连接到另一子网络中的一台交换器。每一个交换器的度均为10,其连接了两个本地计算节点以及八个相邻的交换器。
图2展示了本网络中可能出现的死锁情况以及此时的通道依赖图。如图2中(a)所示,缓存B1,B2,B3以及B4分别表示通道0100-0101、0101-1101、1100-1101以及1100-0100。报文包p1占用缓存B1且申请缓存B4,报文p2占用B4申请缓存B3,报文p3占用B3申请缓存B2,报文p4占用缓存B2申请缓存B1。此时,很显然的产生了通道依赖关系,也就是说产生了死锁,如图2中(b)所示,即环0101-0100-1100-1101-0101中的四个报文可能产生死锁配置。类似的死锁结构很容易构成,缓存B’1,B’2,B’3以及B’4分别表示通道0100-0011、0011-1011、1011-1100以及1100-0100。报文包p’1占用缓存B’1且申请缓存B’2,报文p’2占用B’2申请缓存B’3,报文p’3占用B’3申请缓存B’4,报文p’4占用缓存B’4申请缓存B’1。此时,很显然的产生了通道依赖关系,也就是说同样产生了死锁,即环0100-0011-1011-0100中的四个报文可能产生死锁配置。
表1中展示了无故障网络中如何进行无死锁路由。首先根据当前节点的状态进行判断,如果当前节点为源节点且与终点之间不直接相连,那么判断最短路径上的中继节点是否可以作为报文传输的下一跨度。若两条最小路径上的中继节点均可作为传输节点,那么任选传向任一中继节点的通道作为输出通道。若仅存在一条最小路径上的中继节点可以作为报文传输的下一结点,那么使用表2中所示的绕道路由策略进行传输。如果当前节点与目的节点d直接相连,那么就将报文传输给d。若当前节点为目的节点,则将报文收起。
表1无故障网络中的无死锁适应性路由伪代码
表2中展示了在无故障网络中进行无死锁绕道路由的策略。首先判断当前节点是否源节点,且此时最短路径的下一传输通道是否可用。若最短路径上的下一跨度可用,那么就向该通道传输报文。若当前路径上的下一跳通路不可用,那么则分为下列情况进行处理。若源点s位于第二子网络(N~2N-1)内,那么就将报文绕道传输到标号为i1的中继节点v,节点v满足节点标号N≤i1<v1。若源节点位于第一子网络0~N-1内,则将报文绕道传输到标号为i1的节点v,节点v满足0≤i1<(v’1)modN。若当前节点不在传输的最短路径中,则将报文传输给其在另一子网络的对应节点(i1+N)mod2N中。若当前节点为与目的节点相连的中继节点,则将报文传输给d。若当前节点是目的节点,则收回报文。
表2无死锁适应性绕道路由伪代码
图3中展示了采用了本路由策略后对于死锁的消除情况。在图2中展示的两种死锁配置中,如图3中(b)所示,根据本路由策略不会产生原死锁链路中的1100->1101->0101以及链路0011->1011->1100部分。因此在采用本方法的情况下能够有效的避免死锁。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
Claims (2)
1.一种无死锁自适应路由方法,其特征在于,根据数据源节点与目的节点的逻辑连接关系,按照负向选择策略选择所述源节点到目的节点的通路,所述逻辑连接关系定义如下:
对容错网络的第一个子网络中的N个交换器按0~N-1编号,第二个子网络中N个交换器按N~2N-1编号,若位于不同网络的两个交换器的节点编号对N取模的值相同,则位于不同网络的这两个交换器之间存在一条链路;
所述负向选择策略定义如下:
当前节点的编号大于下一节点编号,则这条通路定义为负跨度;反之则为正跨度,若报文沿负跨度传输后,允许其向负跨度以及正跨度传输;若报文沿正跨度传输后,则仅允许报文沿正跨度传输。
2.如权利要求1所述的无死锁自适应路由方法,其特征在于,按照负向选择策略选择所述源节点到目的节点的通路的方式为:
若有两条最短路径,且路径都可用,则随机选择一条输出;
若有两条最短路径,有一条的路径可用,则选择该条路径输出;
若无可用最短路径,则绕道路由;
所述绕道路由的方式具体为:根据数据源节点与目的节点所在网络的位置关系,选择符合传输原则的中继节点,所述中继节点符合以下情况:
若源节点s在第二子网络N~2N-1内,将报文传输到中继节点i1,其中,N≤i1<v1,结束;
若源节点s在第一子网络0~N内,将报文传输到中继节点i1,其中,0≤i1<(v’1)modN,结束;
其中,v1为源节点的编号,v’1为目的节点的编号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110436008.9A CN103179034B (zh) | 2011-12-22 | 2011-12-22 | 无死锁自适应路由方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110436008.9A CN103179034B (zh) | 2011-12-22 | 2011-12-22 | 无死锁自适应路由方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103179034A CN103179034A (zh) | 2013-06-26 |
CN103179034B true CN103179034B (zh) | 2016-01-20 |
Family
ID=48638665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110436008.9A Active CN103179034B (zh) | 2011-12-22 | 2011-12-22 | 无死锁自适应路由方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103179034B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099904B (zh) | 2014-04-30 | 2018-06-05 | 华为技术有限公司 | 一种确定中间路由节点的方法、装置及系统 |
CN117135110B (zh) * | 2023-10-25 | 2024-03-01 | 苏州元脑智能科技有限公司 | 一种自适应路由方法、装置、系统、设备及存储介质 |
CN117319308B (zh) * | 2023-11-28 | 2024-02-23 | 苏州元脑智能科技有限公司 | 数据传输方法、装置、设备、系统和存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
CN101335704A (zh) * | 2008-04-18 | 2008-12-31 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4682887B2 (ja) * | 2006-03-22 | 2011-05-11 | 日本電気株式会社 | 故障復旧方法およびノードならびにネットワーク |
-
2011
- 2011-12-22 CN CN201110436008.9A patent/CN103179034B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101262444A (zh) * | 2008-03-10 | 2008-09-10 | 清华大学 | 基于通道交叠的容错mesh网避免死锁的路由方法 |
CN101335704A (zh) * | 2008-04-18 | 2008-12-31 | 清华大学 | 三维torus网中的无死锁自适应路由方法 |
Non-Patent Citations (1)
Title |
---|
Deadlock-Free Adaptive Routing in Meshes with Fault-Tolerance Ability Based on Channel Overlapping;Dong Xiang;《IEEE TRANSACTIONS ON DEPENDABLE AND SECURE COMPUTING》;20110228;第8卷(第1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN103179034A (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101888333B (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
Ho et al. | Segment shared protection in mesh communications networks with bandwidth guaranteed tunnels | |
CN100461751C (zh) | 具有交替路由控制的标签交换路径网络 | |
EP2252016B1 (en) | Method and apparatus for locally implementing port selection via synchronized port state databases maintained by the forwarding plane of a network element | |
Lin et al. | Flatnet: Towards a flatter data center network | |
CN102932250B (zh) | 一种基于容错计算机网络结构的无死锁自适应路由方法 | |
CN101945050B (zh) | 一种基于胖树结构的动态容错方法和系统 | |
Sem-Jacobsen et al. | Dynamic fault tolerance in fat trees | |
US9529775B2 (en) | Network topology of hierarchical ring with gray code and binary code | |
CN103179034B (zh) | 无死锁自适应路由方法 | |
CN1825832A (zh) | 快速环生成树协议 | |
CN104639437A (zh) | 堆叠系统中广播报文的转发方法及装置 | |
Sivapriya et al. | Efficient fuzzy-based multi-constraint multicasting with fault tolerance routing mechanism | |
Bogdanski | Optimized routing for fat-tree topologies | |
CN110932920A (zh) | 一种网络拓扑结构 | |
CN102143076B (zh) | 一种多重保护叠加的保护组实现方法和装置 | |
Sharma et al. | The augmented data vortex switch fabric: An all-optical packet switched interconnection network with enhanced fault tolerance | |
Ho et al. | Allocation of protection domains in dynamic WDM mesh networks | |
CN110213162A (zh) | 一种面向大规模计算机系统的容错路由方法 | |
Austin et al. | Fast, scalable, and distributed restoration in general mesh optical networks | |
Guozhu et al. | A literature review of resiliency technologies in military software defined networks | |
Seydim | Wormhole routing in parallel computers | |
Safaei et al. | A novel routing algorithm for achieving static fault-tolerance in 2-D meshes | |
CN108768816B (zh) | Ptn环网保护的多环保护配置方法及系统 | |
Day et al. | A fault tolerant routing scheme for hypercubes |
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 |