一种面向链路资源的自适应互连与路由控制方法和系统与流程

文档序号:17817427发布日期:2019-06-05 21:55
一种面向链路资源的自适应互连与路由控制方法和系统与流程

本发明属于计算机领域,具体涉及并行计算机互连网络,特别是并行计算机互连网络路由算法。



背景技术:

目前,在网路互连技术领域,如何利用有限的网络交换资源,产生更高性价比的网络性能,已成为网络结构设计与性能调优的瓶颈技术。随着SDN可配置光交换矩阵在数据中心和超算集群中的使用,灵活的物理光路切换越来越多地被网络架构师所看重。值得注意的是,在面向下一代E级超算的网络结构设计中,直接网络的跨维度链路,由于其可以直接通过物理链路连接网络中距离遥远的两个交换节点,逐渐成为网络架构师加速网络通信的shortcut链路策略之一。针对网络中的路由算法,尤其是像Torus、Mesh网络,目前相关算法都是集中在如何利用现有固定的网络链路,通过优化路由算法提高网络通信性能,同时保证路由的无死锁性。

艾级(Exascale)高性能计算机的研究是当下的热点,预计艾级计算机的系统规模将会达到十万节点规模以上。高性能互连网络的研究,是艾级计算机实现的关键一环。目前,高维度直接网络被广泛应用于P级(Petascale)计算机中,而且有很好的性能表现。

随着网络规模的扩大,高维度直接网络全局通信性能的下降将会成为搭建艾级系统的难点。为了弥补直接网络全局通信性能短板,在数据中心领域,已经有研究提出增加快速通路的方案,在高性能计算网络中使用该技术是未来的趋势。



技术实现要素:

针对上述问题,本发明提出一种面向直接网络快速通路链路资源的自适应互连与路由控制方法和系统方法,其中包括:

高维交换机互连步骤,选取高维交换机的多个节点为通讯节点,以每个该通讯节点为分组标识,将该高维交换机的所有该节点划分为多个分组;

路由信息生成步骤,当所有该通讯节点中任意两个该通讯节点之间存在快速通路,则以该快速通路生成兄弟节点信息映射表;

路由表生成步骤,将该分组信息和该兄弟节点信息映射表,建立该高维交换机的路由转发表和虚通道切换表;

路由转发步骤,根据该路由转发表和该虚通道切换表,判断信息转发的路由路径是否存在该快速通路,以使用该快速通路或传统维序路由路径进行路由。

本发明所述的自适应互连与路由控制方法,其中所述高维交换机互连步骤具体包括:设置高维交换机分组参数N,选取位置平均分布的N个该节点作为N个该通讯节点,以每个该通讯节点为中心对该高维交换机的所有节点平均划分为N个该分组;其中N为正整数。

本发明所述的自适应互连与路由控制方法,其中所述路由信息生成步骤具体包括:该通讯节点中的节点A和节点B遍历所有该通讯节点;如该节点A 与该节点B为同一条该快速通路两端的节点,则该节点A与该节点B互为兄弟节点;将所有该快速通路生成该兄弟节点信息映射表。

本发明所述的自适应互连与路由控制方法,其中所述路由表生成步骤具体包括:以该路由路径起始节点所在分组的通讯节点为源节点,以该路由路径终端节点所在分组的通讯节点为目的节点,判断该源节点与该目的节点之间是否存在该快速通路,当仅存在该传统维序路由路径时,或存在该快速通路且该快速通路的跳步数大于传统维序路由路径的跳步数时,则通过该传统维序路由路径进行路由,反之则选取该快速通路进行路由。

本发明所述的自适应互连与路由控制方法,其中所述路由转发步骤还包括:虚通道切换步骤,将该快速通路划分为三阶段路由,包括初段,从该起始节点到该源节点;中段,从该源节点到该目的节点;末段,从该目的节点到该终端节点;建立第一虚通道、第二虚通道和第三虚通道,其中该初段使用该第一虚通道和该第二虚通道,该中段和该末段使用该第三虚通道。

本发明还涉及一种面向直接网络快速通路链路资源的自适应互连与路由控制系统,其中包括:

高维交换机互连模块,用于选取高维交换机的多个节点为通讯节点,以每个该通讯节点为分组标识,将该高维交换机的所有该节点划分为多个分组;

路由信息生成模块,用于建立该高维交换机的兄弟节点信息映射表,当所有该通讯节点中任意两个节点之间存在快速通路,则该任意两个节点互为兄弟节点,以该快速通路生成该兄弟节点信息映射表;

路由表生成模块,用于通过该分组信息和该兄弟节点信息映射表,建立该高维交换机的路由转发表和虚通道切换表;

路由转发模块,用于根据该路由转发表和该虚通道切换表,判断信息转发的路由路径是否存在该快速通路,以使用该快速通路或传统维序路由路径进行路由。

本发明所述的自适应互连与路由控制系统,其中所述高维交换机互连模块具体包括:设置高维交换机分组参数N,选取位置平均分布的N个该节点作为N个该通讯节点,以每个该通讯节点为中心对该高维交换机的所有节点平均划分为N个该分组;其中N为正整数。

本发明所述的自适应互连与路由控制系统,其中所述路由信息生成模块具体包括:

遍历模块,用于节点A和节点B遍历所有该通讯节点,当该节点A与该节点B为同一条该快速通路两端的节点,则该节点A与该节点B互为兄弟节点;其中以该通讯节点中的任一节点为该节点A,以该通讯节点中的该节点A 以外的任一节点为该节点B;

映射表模块,用于将所有该快速通路生成该兄弟节点信息映射表。

本发明所述的自适应互连与路由控制系统,其中所述路由表生成模块具体包括:以该路由路径起始节点所在分组的通讯节点为源节点,以该路由路径终端节点所在分组的通讯节点为目的节点,判断该源节点与该目的节点之间是否存在该快速通路,当仅存在该传统维序路由路径时,或存在该快速通路且该快速通路的跳步数大于传统维序路由路径的跳步数时,则通过该传统维序路由路径进行路由,反之则选取该快速通路进行路由。

本发明所述的自适应互连与路由控制方法,其中所述路由转发模块还包括:虚拟通道切换模块,用于构建多个虚通道以避免路由死锁;即划分该快速通路为三阶段路由,包括初段,从该起始节点到该源节点;中段,从该源节点到该目的节点;末段,从该目的节点到该终端节点;建立第一虚通道、第二虚通道和第三虚通道,其中该初段使用该第一虚通道和该第二虚通道,该中段和该末段使用该第三虚通道。

附图说明

图1是本发明所述的自适应互连与路由控制系统结构图。

图2是本发明一个实施例的高维交换机分组方法实施流程图。

图3是本发明所述的高维交换机分组实施结果举例示意图。

图4是本发明所述的N=4的高维交换机分组实施过程举例示意图。

图5是本发明一个实施例的路由信息生成方法实施流程图。

图6A是本发明所述的路由信息生成方法实施举例示意图。

图6B是本发明所述的路由信息生成方法实施举例的兄弟节点信息映射表图。

图7是本发明一个实施例的路由转发表生成方法实施流程图。

图8A是本发明所述的快速通路新环路虚通道依赖关系举例示意图。

图8B是本发明所述的快速通路新环路虚通道添加C_s前环路上的死锁配置示意图。

图8C是本发明所述的快速通路新环路虚通道添加C_s前环路上的虚通道示意图。

图8D是本发明所述的快速通路新环路虚通道添加C_s前环路上的虚通道依赖关系示意图。

图8E是本发明所述的快速通路新环路虚通道添加C_s后环路上的虚通道示意图。

图8F是本发明所述的快速通路新环路虚通道C_s后环路上的虚通道依赖关系示意图。

图9是本发明一个实施例的虚通道切换方法实施流程图。

图10是本发明所述的高维直接网络路由转发实施举例示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明提出的一种面向直接网络快速通路链路资源的自适应互连与路由控制方法和系统进一步详细说明。应当理解,此处所描述的具体实施方法仅仅用以解释本发明,并不用于限定本发明。

高维交换机是高维度直接网络搭建的重要单元。在高维直接网络中搭建将直接网络中原本不相邻的节点直接连接的链路,即快速通路。本发明提出一套高维交换机之间的互连方法以及相应的无死锁路由方法。

具体讲,本发明首先对高维度直接网络中每个高维交换机内的节点进行分组互连;然后,将通过快速通路相连的节点对的信息存储在映射表中。最后按照分组结果和映射表提供的信息以及维度的固定顺序进行路由选择,为网络中的每个节点计算到其他节点的输出端口及虚通道,实现无死锁的路由转发。如图1所示,本发明包含三个子模块:高维交换机互连模块,路由信息生成模块,路由表生成模块。

所述高维交换机互连模块,按照参数配置将高维交换机内节点分组并且每组设置一个通讯节点。其特点有三:第一,每组节点个数相同;第二,组与组之间的路径没有交叉;第三,通讯节点与本组节点的欧拉距离最小。这样分组可以平衡各小组负载和尽量降低数据包的跳数。通过将高维交换机内节点分组,为路由转发表生成方法提供分组信息。分组信息包含了该小组通讯节点在内的所有节点坐标值。给定节点,可以根据分组信息找到其所在小组,以及小组通讯节点。

所述路由信息生成模块,将快速通路连接的节点,记录在映射表中。为了方便描述,把通过快速通路连接的节点定义为兄弟节点。映射表所记录的兄弟节点信息,保存了快速通路上的连接关系,为路由转发表生成方法提供了必要的信息。

所述路由表生成模块,利用高维交换机互连模块提供的分组信息和路由信息生成模块提供的映射表,为每个节点生成路由转发表和虚通道切换表。

针对高维交换机互连模块,本发明提供一种将每个高维交换机内的节点平均划分为多个小组的方法。该方法中用到一个输入参数N,代表每个高维交换机内的小组数,也是高维交换机内拥有的快速通路的链路数量。该方法可以自适应的根据N的值进行快速链路互连和分组。概括来说,本分组方法先为每个分组选择通讯节点,然后以通讯节点为基准,依次向小组中添加最近的节点。具体实施细节如图2,分组结果示例如图3,图4展示了N=4时的分组过程,详细步骤如下:

步骤101:读取输入参数:读取输入参数N。以图3(d)为例,输入参数 N为4。

步骤102:选择起始点:选择高维交换机内任意一点,添加到当前分组 Gi中,并作为通讯节点。在图3(d)的示例中,选定该高维交换机中坐标为 (0,0,0)的节点添加到第一个小组G0中,并作为其通讯节点。

步骤103:判断当前小组是否是高维交换机中最后一个小组。根据每个小组中应分配的节点个数,能够计算出剩余节点需要分配到多少个小组中,以此判断当前小组是否为最后一个小组。在图3(d)示例中,每个小组应分配3 个节点,未分配节点还有11个,所以当前小组不是最后一个分组。

步骤104:将未分组节点全部加入当前小组:若当前小组是后一个小组,将所有剩余节点加入当前小组。

步骤105:选择与Gi通讯节点最远点,添加到Gi+1,并作为其通讯节点。在图3(d)示例中,选择节点(1,2,1),添加到第二个小组G1,并作为其通讯节点。

步骤106:按通讯节点位置和维度顺序,依次向Gi和Gi+1添加节点。在未分组节点中选择与Gi通讯节点最近的节点加入小组Gi,当通讯节点同时与多个节点距离最近时,按照维度顺序挑选其中一个。然后对Gi+1小组进行同样的操作。在图3的示例中,按照a、c、b维度顺序,从与通讯节点最近的节点中挑选节点,加入对应分组。当其中同时存在两个b维度上的节点时,优先选择与其他分组通讯节点有相同b维度坐标值的节点。在图3(d)示例中,选择(1,0,0)节点加入G0小组中,选择(0,2,1)节点加入G1小组中。

步骤107:判断当前分组是否已满,当前分组中节点个数是否已达到每小组应分配节点个数。

步骤108:分组结束判断,判断高维交换机内是否全部节点都已分组。

步骤109:遍历分组,在未分组节点中按维度顺序和已有通讯节点位置,选择新小组的通讯节点。新小组通讯节点选择与上一个小组通讯节点最近的节点,当有多个节点满足要求时,按照维度顺序挑选其中一个。在图3的示例中,按照a、c、b维度顺序,从与上一个小组通讯节点最近的节点中挑选新通讯节点,当其中同时存在两个b维度上的节点时,优先选择与其他小组通讯节点有不同b坐标值的节点。

步骤110:分组间是否有交叉,检查各小组内节点是否能够构成一个连通的图。在图4(b)示例中,分组间存在交叉。

步骤111:调整维度顺序。将维度顺序调整为b,a,c。

针对路由信息生成模块,本发明提供一种方法记录通过快速链路连接的节点信息,具体实施细节如图5,举例如图6A所示,详细步骤如下:

步骤201:Swi遍历交换节点。选择初始节点,在网络中遍历交换节点。在图6B示例中,选择(0,0,0,1,0)节点作为初始节点。

步骤202:Swj遍历交换节点。选择初始节点,在网络中遍历交换节点。在图6B示例中,选择(0,0,0,4,1)节点作为初始节点。

步骤203:判断Swi和Swj是否是兄弟节点:检查Swi与Swj是否是同一根快快速链路两端的节点。在图6B示例中,(0,0,0,1,0)与(0,0,0, 4,1)是兄弟节点。

步骤204:映射表记录{Swi,Swj}:若Swi与Swj是兄弟节点,将{Swi, Swj}记录到映射表中。在图6B示例中,在映射表中添加一条记录{(0,0,0, 1,0),(0,0,0,4,1)}。

步骤205:Swi遍历结束判断。

步骤206:Swj遍历结束判断。

针对路由表生成模块,本发明提供一种路由转发表生成方法。其主要特点有三:(1)当目的节点所在分组没有快速链路连接时,则按照传统维序路由方法生成路由转发表。(2)当目的节点所在分组有快速链路连接时,则需要进行三阶段路由:第一阶段,从源节点到快速链路的一端,这条快速链路的另一端必须是目的节点所在小组的通讯节点;第二阶段,从快速链路一端到另一端,即经过快速链路到达目的节点所在小组的通讯节点;第三阶段,从目的节点所在小组的通讯节点到目的节点。(3)当三阶段路由的跳步数大于传统维序路由跳步数时,按照传统维序路由生成路由转发表,否则按三阶段路由方式生成路由转发表。

概括来说,本路由方法首先判断目的节点所在小组是否有快速通路,若没有快速通路,则使用传统维序路由生成转发表项,若有快速通路,则比较三阶段路由的路径和传统维序路由的路径长度。当三阶段路由的路径较短时,判断当前节点处于其路由转发三个阶段中的哪一阶段,进行对应阶段的路由计算,生成转发表项。

具体实施细节如图7,详细步骤如下:

步骤301:输入当前节点Swi、目的节点Swj。

步骤302:获取Swj通讯节点SwCom。利用高维交换机互连模块提供的分组信息获取目的节点所在分组的通讯节点SwCom。

步骤303:判断SwCom是否存在兄弟节点。根据路由信息生成模块提供的映射表判断SwCom是否有通过快速链路相连的节点。

步骤304:计算三阶段路由跳步数Hop1。三阶段路由跳步数由三部分组成,Swi到SwCom兄弟节点的跳步数,SwCom的兄弟节点到SwCom的跳步数,SwCom到Swj的跳步数,Hop1为三段跳步数之和。

步骤305:计算传统维序路由跳步数Hop2。

步骤306:比较Hop1和Hop2大小。如果Hop1大于Hop2,说明当前节点不处于三阶段路由中,或者当前结点处于三阶段路由的第三阶段。

步骤307:判断Swi是否为SwCom兄弟节点。若Swi是SwCom兄弟节点,说明当前节点处于三阶段路由的第二阶段,否则说明当前节点处于三阶段路由的第一阶段。

步骤308:第二阶段路由方法计算路由转发表项。当前节点处于三阶段路由的第二阶段,输出端口为快速链路端口。

步骤309:第一阶段路由方法计算路由转发表项。当前节点处于三阶段路由的第一阶段,按照维度顺序选择从当前节点到SwCom兄弟节点的输出端口。

步骤310:传统维序路由方法计算路由转发表项。

针对路由表生成模块,本发明提供一种虚通道切换方法。虚通道是由一对位于链路两端的交换节点上的消息缓冲区实现的,多条虚通道可以共享一条链路。概括来说,为了避免路由死锁,本方法使用三条虚通道C_dor0,C_dor1和 C_s。三阶段路由中,第一阶段使用传统维序路由中的虚通道C_dor0、C_dor1,第二、三阶段使用虚通道C_s。如图8A~8F所示,虚通道C_s解决了快速通路引入的新环路造成的路由死锁问题。

具体实施细节如图9,详细步骤如下:

步骤401:已知输入端口,输出端口,当前虚通道C_now。

步骤402:判断输出端口是否为快速链路端口。

步骤403:输出C_s。如果输出端口是快速链路端口,说明当前节点处于三阶段路由的第二阶段,将虚通道切换到C_s。

步骤404:是否C_now!=C_s且切换维度。判断当前虚通道C_now与C_s 是否不同,且输入端口与输出端口是否属于不同维度。

步骤405:输出C_dor0。如果满足条件C_now!=C_s且切换维度,说明当前节点不处于三阶段路由,或者处于三阶段路由的第一阶段,将虚通道切换到C_dor0。

步骤406:是否跨越dateline。判断输出端口所在链路是否跨越dateline。

步骤407:输出C_dor1。如果跨越dateline,将虚通道切换到C_dor1。

步骤408:输出C_now。保持当前虚通道不变。

图10是使用本发明路由算法在源节点和目的节点之间生成转发路径的示例。从示例中,可以看出本路由算法有如下特点:

只有当目的节点所在小组的通讯节点上有快速通路,而且通过快速通路到目的节点的路径长度不大于传统维序路由方法所提供的路径长度时,才使用快速通路进行路由转发,否则将按照传统维序路由方法进行路由转发。

不是所有点到点通信都是利用快速通路的最短路径。如图9中,源节点2 到目的节点2的路径并不是网络中的最短路径。

使用本发明可以达到如下的有益效果:

高维交换机互连方法适应性强,可以给根据用户需求及链路资源的状况,提供灵活的快速通路组网方法;路由算法兼容性强,适用于针对不同链路资源情况下高维交换机的互连方案;路由算法无死锁,在快速通路引入更多环路的情况下仍然保证了无死锁特性。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1