动态状态驱动的流控及Torus网络自适应路由方法

文档序号:8225965阅读:322来源:国知局
动态状态驱动的流控及Torus网络自适应路由方法
【技术领域】
[0001] 本发明涉及计算机技术领域,具体涉及一种动态状态驱动的流控及Torus网络自 适应路由方法。
【背景技术】
[0002] Torus网络是一种完全对称的拓扑结构,具有很多优良特性,如网络直径小,所有 节点度相同,结构简单,路径多以及可扩展性好等。因此被广泛应用于商用系统中,如2004 年超级计算机TOP500中排名第一的IBMBlueGene/L就采用了 3-DTorus网络;最新的 超级计算机IBMBlueGene/Q和2011年TOP500中排名第一的KComputer就分别采用了 5-DTorus和6-DTorus网络作为系统互连结构,因此在Torus网络中设计高效、无死锁路 由方法至关重要。
[0003] 虚切通交换(VirtualCut-ThroughSwitching)引入了流水线式消息传输,在路 由器完全接收分组之前,分组直接跨到下一个路由器上。VCT交换被广泛用于超级计算机 中,如商用超级计算机CrayXT,IBMBlueGeneQ就采用了VCT交换技术。
[0004] 如何在Torus网络现有的较少数量的虚通道(VirtualChannel)资源和缓冲区 (Buffer)资源的基础上,设计出缓冲区资源使用均衡的流控技术,并提出高效的无死锁完 全自适应路由方法成为一个新的亟待解决的研宄课题。

【发明内容】

[0005] 针对现有技术中的缺陷,本发明提供了一种动态状态驱动的流控及Torus网络自 适应路由方法,能够有效避免死锁,提高了系统性能。
[0006] 第一方面,本发明提供一种路由器虚拟通道状态更新方法,包括:
[0007] T时刻,第二路由器的第一虚拟通道为非安全状态,若在T时刻,第二路由器中第 一虚拟通道存储的数据包申请到了第三路由器中某一通道的缓存区,则在T时刻结束之 前,第二路由器更新第二路由器的第一虚拟通道为安全状态。
[0008] 其中,所述第二路由器的第一虚拟通道为非安全状态为:所述第二路由器的第一 虚拟通道中存储的数据包为非安全数据包,其中判断第二路由器的第一虚拟通道中存储的 数据包为非安全数据包的方法为:
[0009] 若第二路由器的第一虚拟通道中存储的数据包的上一节点路由器为第一路由器, 如果该数据包从第一路由器到第二路由器是通过环绕通道,且环绕通道所在的维度是该数 据包从第一路由器节点到目的节点所需要通过环绕通道中的最低维;或该数据包从第一路 由器节点达目的节点不再需要通过任何环绕通道,且该数据包从第一路由器到第二路由器 遵循Mesh网络中的无死锁自适应路由方法,则该数据包对于第二路由器为安全数据包,否 贝1J,该数据包对于第二路由器为非安全数据包。
[0010] 第二方面,本发明提供一种基于路由器虚拟通道状态更新方法的动态状态驱动的 流控方法,
[0011] 对于第一路由器、第二路由器和第三路由器,每个路由器节点中包含第一虚拟通 道和第二虚拟通道,所述第一虚拟通道和第二虚拟通道中各包含一个缓冲区,每个缓冲区 用于存储一个数据包;
[0012] 所述第一路由器中第一虚拟通道中的数据包相对于下一跳节点第二路由器为非 安全数据包,T时刻,第一路由器中第一虚拟通道中的数据包欲申请第二路由器作为其下一 跳节点,第一路由器读取第二路由器此刻的状态信息为第一虚拟通道为空闲状态,第二虚 拟通道为非安全状态,第一路由器暂停将第一虚拟通道中的数据包向第二路由器中的第一 虚拟通道发送;
[0013] 若在T时刻,第二路由器中第二虚拟通道存储的数据包申请到了第三路由器中某 一通道的缓存区,则在T时刻结束之前第二路由器更新自身状态为第一虚拟通道为空闲状 态,第二虚拟通道为安全状态;
[0014] T+1时刻,第一路由器中第一虚拟通道中的数据包继续申请第二路由器作为其下 一跳节点,第一路由器读取第二路由器此刻的状态信息为第一虚拟通道为空闲状态,第二 虚拟通道为安全状态,第一路由器将第一虚拟通道中的数据包向第二路由器中的第一虚拟 通道发送。
[0015] 其中,每个路由器节点中的第一虚拟通道和第二虚拟通道不能同时为不安全状 〇
[0016] 其中,所述Mesh网络无死锁自适应路由方法为维序路由方法和负向优先路由方 法中的一种。
[0017] 第三方面,本发明提供一种Torus网络自适应路由方法,包括:
[0018] 在n维的torus网络,数据包从源路由器S(Sl,s2,…,sn)到目的路由器DWp d2, . . .,dn)传输中,如果数据包当前所处的路由器为C(Cl,c2, . . .,cn),与之相邻的路由器 为已…汴,Ef,E2+,E2-,? ? ?,En+,En_)其中,+\-分别表示正负方向上的邻居路由器,E# 的i表示第i维上的邻居路由器;
[0019] 数据包从C向所有更靠近目的路由器的相邻路由器Ei进行路由时,遵循上述的流 控方法。
[0020] 由上述技术方案可知,本发明的路由器虚拟通道状态更新方法及动态状态驱动的 流控方法,通过监测路由器中处于非安全状态的虚拟通道中的数据包是否已申请到下一跳 节点上的缓存区来实时更新路由器中虚拟通道的状态,如果处于非安全状态的虚拟通道中 的数据包已经申请到下一跳节点上的缓存区,那么立即将该虚拟通道的状态更新为安全状 态,从而当有非安全数据包申请存入该路由器时,若该路由器中的另一虚拟通道为空闲状 态,则该非安全数据包就可以申请成功,并可以立即向该路由器发送数据。本发明所述的路 由器虚拟通道状态更新方法及动态状态驱动的流控方法,可以有效减少数据包的堵塞,从 而改善系统性能。另外,本发明所述的Torus网络自适应路由方法,基于动态状态驱动的流 控方法,可以有效的避免死锁。
【附图说明】
[0021] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明 的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 这些附图获得其他的附图。
[0022] 图1是本发明实施例一提供的路由器虚拟通道状态转换示意图;
[0023] 图2是现有技术中的路由器虚拟通道状态转换示意图;
[0024] 图3是本发明实施例二提供的动态数据包状态驱动的流控过程示意图;
[0025]图4是现有技术中基于静态数据包状态的流控过程示意图;
[0026] 图5是本发明实施例三提供的Torus网络自适应路由方法的流程图。
【具体实施方式】
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]本发明实施例一提供的路由器虚拟通道状态更新方法包括:
[0029]T时刻,第二路由器的第一虚拟通道为非安全状态,若在T时刻,第二路由器中第 一虚拟通道存储的数据包申请到了第三路由器中某一通道的缓存区,则在T时刻结束之 前,第二路由器更新第二路由器的第一虚拟通道为安全状态。
[0030]其中,所述第二路由器的第一虚拟通道为非安全状态为:所述第二路由器的第一 虚拟通道中存储的数据包为非安全数据包,其中判断第二路由器的第一虚拟通道中存储的 数据包为非安全数据包的方法为:
[0031]若第二路由器的第一虚拟通道中存储的数据包的上一节点路由器为第一路由器, 如果该数据包从第一路由器到第二路由器是通过环绕通道,且环绕通道所在的维度是该数 据包从第一路由器节点到目的节点所需要通过环绕通道中的最低维;或该数据包从第一路 由器节点达目的节点不再需要通过任何环绕通道,且该数据包从第一路由器到第二路由器 遵循Mesh网络中的无死锁自适应路由方法,则该数据包对于第二路由器为安全数据包,否 贝1J,该数据包对于第二路由器为非安全数据包。
[0032] 参见图1和图2,图1是本发明实施例一提供的路由器虚拟通道状态转换示意图。 图2是现有技术中的路由器虚拟通道状态转换示意图。
[0033] 从图1可以看出,路由器虚拟通道的状态可以由非安全状态转变为安全状态。
[0034] 结合与图2的对比可以发现,现有技术中,路由器虚拟通道的状态只能由安全和 空闲之间、非安全和空闲之间相互转换,而不能由非安全状态转变为安全状态。
[0035]由于路由器中的两个虚拟通道不能同时为非安全状态,因此,当某一个数据包相 对于该路由器为非安全数据包,且该路由器中一个虚拟通道为空闲状态、另一个虚拟通道 为非安全状态时,该数据包就不能向该路由器发送
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1