发明名称 三维torus网中的无死锁自适应路由方法
摘要 三维torus网络无死锁的自适应路由方法属于分布式高性能容错计算技术领域,其特征在于,将每条物理通道中分为两条虚拟通道,允许不同虚拟子网之间共享某些虚拟通道,这两条通道均为两向通道,并分配到三维torus网络的四个虚拟子网中,利用转弯模型避免了各子网内以及各子网间可能形成的死锁,并达到更高的自适应性。本发明与传统的Duato协议和GOAL方法相比,当标准化输入负载和网络中故障节点数提高时,我们的方法明显可以提高网络实际流量,并降低传输延迟,从而提高整个网络的传输性能。
申请公布号 CN101335704A 申请公布日期 2008.12.31
申请号 CN200810104405.4 申请日期 2008.04.18
申请人 清华大学 发明人 向东;陈振;王琦
分类号 H04L12/56(2006.01);H04L29/06(2006.01) 主分类号 H04L12/56(2006.01)
代理机构 北京众合诚成知识产权代理有限公司 代理人 朱琨
主权项 1、三维torus网中的无死锁自适应路由方法,其特征在于,所述方法是在每一维上有k个节点的三维torus网上依次按步骤实现的:步骤(1):初始化对于三维torus网络,连接每一维两个边界之间的物理通道称为边界通道;把每条物理通道被划分为两条虚拟通道:c1和c2,这两条通道均为两向通道,c1通道分为c1+和c1-两个方向的通道,c2通道分为c2+和c2-两个方向的通道,“+”和“-”表示消息传输的正负方向;将三维torus网划分为划分为如下八个虚拟子网:x+y+z+、x+y+z-、x+y-z+、x+y-z-、x-y+z+、x-y+z-、x-y-z+、x-y-z-,x+、x-即表示在x轴上的正、负方向的路由,对于y轴、z轴同理;把上述八个虚拟子网两两合并,从而得到以下四个虚拟子网:x+y+z*(c1+,c1+,c1),x+y-z*(c2+,c1-,c1),x-y*z+(c1-,c2,c2+),x-y*z-(c2-,c2,c2-),括号中的标号表示分配到每个虚拟子网中的虚拟通道,“+”和“-”表示消息传输的正负方向,“*”表示正负任意方向,x+y+z*和x+y-z*在z方向上共享c1通道,x-y*z+和x-y*z-在y方向上共享c2通道,从而在x,y,z三个方向上,每条物理通道都只用到了两条虚拟通道,当消息在y方向和z方向之间转弯时,消息跳转到不同于原分配通道的另外一条虚拟通道,以避免死锁;步骤(2):对于每个消息消息依次按以下步骤分配到所属虚拟子网:设当前节点为curr,目的节点为dest,当前节点和目的节点在两维上的偏移量为A=xd-xc,B=yd-yc,C=zd-zc,其中下标c、d分别代表当前节点和目的节点,VN表示消息所属的虚拟子网分配;当A≥0且B≥0时,如果A<k/2,B≥k/2,VN=x+y-z*;如果A<k/2,B<k/2,VN=x+y+z*;当A≥0且B<0时,如果A<k/2,B≥-k/2,VN=x+y-z*;如果A<k/2,B<-k/2,VN=x+y+z*;当A<0且B≥0时,如果A≤-k/2,B≥k/2,VN=x+y-z*;如果A≤-k/2,B<k/2,VN=x+y+z*;当A<0且B<0时,如果A<-k/2,B<-k/2,VN=x+y+z*;如果A<-k/2,B>-k/2,VN=x+y-z*;当A≥0且C≥0时,如果A>k/2,C≥k/2,VN=x-y*z-;如果A>k/2,C<k/2,VN=x-y*z+;当A≥0且C<0时,如果A>k/2,C≥-k/2,VN=x-y*z+;如果A>k/2,C<-k/2,VN=x-y*z-;当A<0且C≥0时,如果A>-k/2,C≥k/2,VN=x-y*z-;如果A>-k/2,C<k/2,VN=x-y*z+;当A<0且C<0时,如果A>-k/2,C<-k/2,VN=x-y*z+;如果A>-k/2,C>-k/2,VN=x-y*z-;步骤(3):消息在三维平面上消息依次按以下步骤路由:步骤(3.1):如果消息在x+y+z*虚拟子网中:如果A≥0,B≥0,则选择通道x(c1+),y(c1+),z(c1);如果A<0,B≥0,则选择通道x(c2+),y(c1+),z(c1);如果A≥0,B<0,则选择通道x(c1+),y(c2+),z(c1);如果A<0,B<0,则选择通道x(c2+),y(c2+),z)c1);步骤(3.2):如果消息在x+y-z*虚拟子网中:如果A≥0,B≥0,则选择通道x(c2+),y(c2-),z(c1);如果A<0,B≥0,则选择通道x(c1+),y(c2-),z(c1);如果A≥0,B<0,则选择通道x(c2+),y(c1-),z(c1);如果A<0,B<0,则选择通道x(c1+),y(c1-),z(c1);步骤(3.3):如果消息在x-y*z+虚拟子网中:如果A≥0,C≥0,则选择通道x(c2-),y(c2),z(c2+);如果A<0,C≥0,则选择通道x(c1-),y(c2),z(c2+);如果A≥0,C<0,则选择通道x(c2-),y(c2),z(c1+);如果A<0,C<0,则选择通道x(c1-),y(c2),z(c1+);步骤(3.4):如果消息在x-y*z-虚拟子网中:如果A≥0,C≥0,则选择通道x(c1-),y(c2),z(c1-);如果A<0,C≥0,则选择通道x(c2-),y(c2),z(c1-);如果A≥0,C<0,则选择通道x(c1-),y(c2),z(c2-);如果A<0,C<0,则选择通道x(c2-),y(c2),z(c2-)。
地址 100084北京市100084-82信箱