CN107612746A - 一种构建Torus网络的方法、Torus网络和路由算法 - Google Patents
一种构建Torus网络的方法、Torus网络和路由算法 Download PDFInfo
- Publication number
- CN107612746A CN107612746A CN201710947911.9A CN201710947911A CN107612746A CN 107612746 A CN107612746 A CN 107612746A CN 201710947911 A CN201710947911 A CN 201710947911A CN 107612746 A CN107612746 A CN 107612746A
- Authority
- CN
- China
- Prior art keywords
- networks
- torus
- torus networks
- interchanger
- topology
- 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
Links
Landscapes
- Multi Processors (AREA)
Abstract
本发明公开了一种构建Torus网络的方法、Torus网络和路由算法,该构建Torus网络的方法包括:拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系;拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络;拓扑检验模块检验构造后的Fabric网络是否与配置文件一致;在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络。本发明通过上述技术方案,从而可有效压缩网络直径,降低通信延迟,提高网络性能,可有效应对超大规模互连网络的需求。
Description
技术领域
本发明涉及通信领域,具体来说,涉及一种构建Torus网络的方法、Torus网络和路由算法。
背景技术
随着技术进步和工艺发展,高性能计算机的计算能力越来越强,系统规模不断扩展,性能每4年增强10倍,预计到2018年就会出现E级计算机。美国的红杉树超级计算机系统规模达到9.6万个节点,日本的“京”计算机(K Computer)也达到8.8万个节点,未来的E级计算(Exascale Computing)系统规模将达到甚至超过十万节点的数量级,如此众多的处理器如何高效通信对互连网络提出了严峻挑战。高性能互连网络该如何发展来应对这些挑战呢?互连网络的拓扑结构和路由算法从宏观上决定了网络的可扩展性和通信性能,其中,可扩展性指网络模块化可扩展的能力,网络规模的扩展必须伴随着所期望的性能按比例地提高。但是,网络可扩展性不仅受拓扑性质的限制,而且受到物理技术和管理需求如封装工艺、系统冷却、电源功耗和传输管理等限制。
高性能计算的应用负载普遍具有局部性特征:空间局部性和/或时间局部性,其中,通信局部性对计算效率有着重要影响,此外,直接网络相对于间接网络更具有优势,例如,Mesh网格比较适合具有通信局部性的应用,但其网络直径较大,传输延迟高;Torus网络在Mesh网络的基础上增加环回链路来压缩网络直径,进一步提升性能,而且结构对称,具有较好的可扩展性。
此外,3D-Torus(3维环绕)网络曾经在高性能互连领域占据主导地位,例如Cray的T3D/T3E系列,但是随着高性能计算的飞速发展,系统规模越来越大,对互连网络的要求也提出严峻的挑战,提升网络维度可有效压缩网络直径,提升网络性能。因此,高维度互连网络成为了主流趋势,例如,IBM(International Business Machines Corporation,IT公司-国际商业机器公司)的第三代互连系统Bluegene/Q就是在3D-Torus网络的基础上进一步提升维度,采用了5D-Torus(5维环绕)的新型拓扑,同时,由于Bluegene/Q将互连网络集成在处理器芯片内部,可充分发挥处理器内部的高速数据通信性能,因而系统性能有了更大提升。此外,日本的“京”计算机互连网络Tofu更是将维度提高到了6维,在3D-Torus网络的基础上嵌套了3D-Mesh网络构成了6维拓扑,其由12个节点互连构成的第一层子网是A、B、C构成的3个维度的Mesh拓扑,称为一个节点组(Node Group),每个节点组中的节点具有相同的X、Y、Z坐标,同时,Tofu网络互连的第二个层次是X、Y、Z的3维Torus网络拓扑,其负责节点组间的全局互连,另外,其互连芯片由10端口中的6个负责X、Y、Z的3D-Trous路由,另4个端口负责A、B、C维度的路由。但是,IBM的Bluegene/Q和“京”计算机的Tofu网络都是专有定制网络,研发周期长,系统成本昂贵。如果基于商用交换机构建构建高维度Torus网络,将极大的降低高性能计算的网络系统成本,有力的促进我国高性能计算产业发展。
此外,“京”计算机的Tofu互连系统的路由算法与拓扑的两个层次相适应,支持确定性路由和自适应路由,此外,确定性维序路由分为三个阶段:数据包从源节点出发,第一跳首先是遍历A、B、C的3个维度路由,之后按X、Y、Z维度路由,直至目标节点组,最后再遍历A、B、C的3个维度,到达目标节点。此外,为简化端对端协议设计,每个路由阶段都使用确定性健忘式路由(Deterministic Oblivious Routing),即在每个维度上都是确定的最短路径(fixed-order minimal path),但每次具体的维序选择可以不同。为了提高网络容错能力,Tofu互连系统可以根据网络拥塞情况采用自适应路由,当链路出现故障或发生拥塞时可以根据链路状态灵活选择路径,对于链路故障具有较强的容错能力。此外,为了解除路由过程中可能的死锁风险,采用了两个逃逸虚通道来解除环路死锁;分离请求虚通道和响应虚通道来解除网络中同时传输请求和响应数据而引入的请求响应死锁。
但是,国内没有6D-Torus网络及相应的路由算法,即目前基于商用交换机只能构建3D-Torus网络,面对E级计算十万节点的超大规模,3D-Torus网络直径非常大,通信延迟过长,严重限制网络性能。
此外,国际上日本“京”计算机的Tofu网络是私有定制网络,其路由算法也是先遍历A、B、C维度,然后在遍历X、Y、Z维度,最后在A、B、C维度路由,直至目标节点,这种路由算法的好处是路由算法简单,但是由于A、B、C维度的长度是确定的,对于超大规模网络,X、Y、Z维度的长度必然会很长,而分布式路由算法优先走最长维度有利于提升网络性能,且容错能力更强,因而其路由算法性能会受到限制。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的问题,本发明提出一种构建Torus网络的方法、Torus网络和路由算法,其具有低延迟,高性能、低成本、低功耗的特点。
本发明的技术方案是这样实现的:
根据本发明的一个方面,提供了一种构建Torus网络的方法。
该构建Torus网络的方法包括:拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系;拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络;拓扑检验模块检验构造后的Fabric网络是否与配置文件一致;在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络。
根据本发明的一个实施例,拓扑构建模块将Fabric网络转换为Torus网络包括:拓扑构建模块定位所有交换机,从而确定所有交换机的坐标信息;拓扑构建模块根据坐标信息,连接所有交换机,以及遍历每个交换机,将与每个交换机直接相连的节点连接起来。
根据本发明的一个实施例,Torus网络包括:3D-Torus网络、6D-Torus网络。
根据本发明的一个实施例,将12个3D-Torus网络组合成6D-Torus网络。
根据本发明的一个实施例,通过将3D-Torus网络中的每个节点替换为硅元结构硅元结构,从而构成6D-Torus网络;其中,硅元结构硅元结构包括:正方体结构以及处于正方体结构内的正方形结构,正方体结构包括:四个顶点构成的上顶面和四个顶点构成的下底面,正方形的每个顶点分别与上顶面的一顶点和下底面的一顶点连接,并且上顶面的一顶点和下底面的一顶点的连线与正方形垂直,其中,正方体结构和正方形结构的顶点均为超节点。
根据本发明的一个实施例,超节点通过交换机和节点连接构成。
根据本发明的另一方面,提供了一种Torus网络。
该Torus网络包括:Torus网络通过上述任一项的构建Torus网络的方法构建。
根据本发明的另一方面,提供了一种应用于上述Torus网络的路由算法。
该路由算法包括:解析接收到的数据包中的目标本地标识符;根据目标本地标识符,构建转发表,以及通过转发表返回数据包的目的端口,其中,目的端口用来进行服务级别和虚通道的匹配;根据目的端口,确定转发的时间。
本发明的有益技术效果在于:
本发明通过拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系,以及拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络,以及拓扑检验模块检验构造后的Fabric网络是否与配置文件一致,最后在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络,从而可有效压缩网络直径,降低通信延迟,提高网络性能,可有效应对超大规模互连网络的需求。
此外,本发明还通过解析接收到的数据包中的目标本地标识符,以及根据目标本地标识符,构建转发表,以及通过转发表返回数据包的目的端口,其中,目的端口用来进行服务级别和虚通道的匹配,最后根据目的端口,确定转发的时间,从而避免了死锁的情况。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的构建Torus网络的方法的流程图;
图2是根据本发明实施例的超节点的网络结构示意图;
图3是根据本发明实施例的硅元的网络结构示意图;
图4是根据本发明实施例的硅立方结构的示意图;
图5是根据本发明实施例的构造6D-Torus网络的方法流程图;
图6是根据本发明实施例的路由算法的流程图;
图7是根据本发明实施例的路由模块结构示意图;
图8是根据本发明实施例的设置线性转发表的流程图;
图9是根据本发明实施例的服务级别模块函数关系示意图;
图10是根据本发明实施例的虚通道模块函数关系示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种构建Torus网络的方法。
如图1所示,根据本发明实施例的一种构建Torus网络的方法包括:步骤S101,拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系;步骤S103,拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络;步骤S105,拓扑检验模块检验构造后的Fabric网络是否与配置文件一致;步骤S107,在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络。
借助于本发明的上述技术方案,通过拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系,以及拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络,以及拓扑检验模块检验构造后的Fabric网络是否与配置文件一致,最后在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络,从而可有效压缩网络直径,降低通信延迟,提高网络性能,可有效应对超大规模互连网络的需求。
根据本发明的一个实施例,拓扑构建模块将Fabric网络转换为Torus网络包括:拓扑构建模块定位所有交换机,从而确定所有交换机的坐标信息;拓扑构建模块根据坐标信息,连接所有交换机,以及遍历每个交换机,将与每个交换机直接相连的节点连接起来。
根据本发明的一个实施例,Torus网络包括:3D-Torus网络、6D-Torus网络。
根据本发明的一个实施例,将12个3D-Torus网络组合成6D-Torus网络。
根据本发明的一个实施例,通过将3D-Torus网络中的每个节点替换为硅元结构硅元结构,从而构成6D-Torus网络;其中,硅元结构硅元结构包括:正方体结构以及处于正方体结构内的正方形结构,正方体结构包括:四个顶点构成的上顶面和四个顶点构成的下底面,正方形的每个顶点分别与上顶面的一顶点和下底面的一顶点连接,并且上顶面的一顶点和下底面的一顶点的连线与正方形垂直,其中,正方体结构和正方形结构的顶点均为超节点。
根据本发明的一个实施例,超节点通过交换机和节点连接构成。
根据本发明的另一方面,提供了一种Torus网络。
该Torus网络包括:Torus网络通过上述任一项的构建Torus网络的方法构建。
为了更好的描述本发明,下面通过具体的实施例对本发明的技术方案进行详细的描述。
本发明采用基于交换机构建6D Torus网络,并提出确定性维序路由算法以及基于虚通道的死锁避免方法,具有低延迟,高性能、低成本、低功耗的特点。此外,交换机可根据实际需求进行选择,为了更好的描述本发明的技术方案下面以商用交换机为例进行说明。
1.1基于商用交换机构建高维度Torus网络。
对于n维Torus网络,每个维度有正负2个方向,每个维度最少需要2个交换机端口用于互连。因此,一共需要2*n个端口,对于具有m个端口的商用交换机来说,剩余的(m-n)个端口可以连接计算节点。如果每个维度的基数分别为K1、K2…Kn,则n维Torus网络可提供K1*K2...Kn*(m-n)个计算节点,从而使得网络的可扩展性非常好,具有极强的互连能力,例如,基于24端口的低端交换机,仅需12个端口就可构造6D-Torus(6维环绕)网络,每个交换机还可连接12个计算节点,压缩比为1:1。此外,对于结构为[8,8,8,6,6,6]的6D-Torus拓扑,该网络可连接110592个交换机,系统可连接1327104个计算节点。因此,基于廉价的低端口商用交换机即可构建百万计算节点规模的系统,可完全满足E级计算的互连需求。
1.2硅立方:6D Torus网络架构
由于链路吞吐率是与节点网络链路数量成反比的,因此,本发明进一步将部分Torus拓扑压缩为Mesh拓扑。对于长度为2的维度只需要1条链路,并足以与其他长维度结合嵌入1个环拓扑,可以将部分维度长度限制为2来减少链路数量。例以6D-Torus网络为例,将a、b维度的长度限制为2,因此各需1条链路,对位相连即可,c维度限制为3可提供容错能力,需要2条链路,加上X、Y、Z维度各2条,总共10条链路,从而节省的2个链路可用于连接计算节点,有利于提升计算密度。
此外,通信系统分为三层:第一层为全交换网络,节点(或计算机节点)通过商用交换机高速连接,形成一个超节点。如图2所示,每一个超节点对外有10条连接,用于连接交换机,分别为a、b、c+、c-、X+、X-、Y+、Y-、Z+、Z-。
另外,12个超节点分别通过a、b、c+、c-网络链路连接起来,每个超节点通过a、b、c+、c-四条连接连接到4个超节点,形成一个2×2×3的三维立方体结构,即硅元,如图3所示。硅元内部通信最多3跳可达,网络直径小,通信局部性好,适合高性能计算。
此外,每一个硅元中的超节点都通过X+、X-、Y+、Y-、Z+、Z-这六个链路,在X、Y、Z三个维度连接硅元中对应的超级节点,以硅元为单位构建3D-Torus网络,相当于在3D-Torus网络的每个节点中嵌入了1个硅元,也可以认为将12个3D-Torus网络组合为一个大的硅元,如图4所示,最终形成了整个系统,即硅立方结构(Si-Cube)。
1.3具体实施
1.3.1交换机、节点编码规则
根据交换机和各个节点在拓扑中的位置关系,将交换机、节点所在各个维度的坐标信息进行编码,交换机编码为SW_X_Y_Z_a_b_c,其中X、Y、Z为所在维度的坐标值,a、b、c为交换机在硅元内所在维度的坐标值。此外,节点编码前6位采用与其连接的交换机编码,节点编码为H_X_Y_Z_a_b_c_N,最后一位N为与交换机连接的节点编号,表示交换机连接的不同节点。
1.3.2拓扑连接
交换机间连接分别遍历每个维度,将与其直接相邻的交换机连接起来(包含环回链路),然后在将与之相连的节点连接即可构建硅立方拓扑。如下面的表1显示的是拓扑连接关系,每个交换机与其在X、Y、Z、a、b、c六个维度的正方向直接连接的交换机进行连接,并连接了一个计算节点。
表1
1.3.3拓扑解析
首先通过配置文件可以构造任意维度Torus网络,然后通过脚本解析生成每一个交换机的GUID(Global Unique Identifier,全局唯一标识)对应的坐标配置文件,可得到坐标信息。将上述表1所示文件用Python脚本解析成下表2的交换机的全局唯一标识与坐标对应关系文件。
表2
1.3.4构造高维度拓扑,为了更好的描述本发明,下面以构建6D-Torus网络为例。
图5描述的是构建高维度Torus拓扑的流程,具体如下:
1、首先,拓扑解析模块(parse_config)完成Torus网络的解析工作;
2、然后,拓扑连接模块(capture_fabric)完成拓扑文件中的所有交换机和节点的创建工作,构造出Fabric网络(交换机和节点没有坐标信息);
3、之后,拓扑检验模块(Verify setup)完成检测Fabric的构造与配置文件的是否一致;
4、核心模块是拓扑构建模块(Build Torus),实现从Fabric网络到Torus拓扑(交换机和节点具有坐标信息)的转换,其内部有三个核心功能:定位交换机(parse_guid2coord)、连接交换机(build_all_tswitch_connect)、连接节点与交换机(build_all_ca_connect)。
(1)定位交换机
通过配置文件,解析出每一行交换机对应的全局唯一标识和坐标,然后通过全局唯一标识查找Fabric网络中的交换机信息f_sw(Fabric网络中的交换机是没有坐标信息的),最后通过install_tswitch函数将f_sw转换成Torus网络中的t_sw(Torus网络中的交换机带有坐标信息)并给其赋予坐标信息放入到t->sw_array中。
(2)连接交换机
遍历Torus网络交换机集合t->sw_array中的每个交换机的每个维度将与其直接连接的交换机都连接起来。例如,连接t_sw0第一个维度(即x维度)时,先将t_sw0的坐标缓冲到数组sw_coord中,然后通过坐标归一化函数操作后,取到t_sw0当前维度相邻的交换机的坐标缓冲到sw_coord[dim_index]中从而得到了t_sw1交换机,连接t_sw0与t_sw1,将t_sw1赋值给t_sw0继续循环连接,由于link_tswitches_common函数中已经增加判断是否有重复的link相连,故不会产生重复的连接link数。
(3)连接交换机与节点
最后遍历t_sw交换机池的每个交换机t->sw_array,将与其直接相连的节点都连接起来。此外,依次检查当前交换机的所有端口的连接情况(可以通过检测交换端口的状态可以判断此端口的连接情况,如当端口状态为:PASSTHRU时代表此端口连接的是节点CA会创建一个link连接CA和此端口),当遍历完t->sw_array后所有的CA连接交换机的link的连接工作结束。
5、最后,网络诊断、报告模块(fabric diagnose/report)负责对Torus网络健康状况诊断并报告。
根据本发明的实施例,还提供了一种路由算法。
如图6所示,根据本发明实施例的路由算法包括:
步骤601,解析接收到的数据包中的目标本地标识符;
步骤603,根据目标本地标识符,构建转发表,以及通过转发表返回数据包的目的端口,其中,目的端口用来进行服务级别和虚通道的匹配;
步骤605,根据目的端口,确定转发的时间。
为了更好的描述本发明,下面通过具体的实施例对本发明的技术方案进行详细的描述。
1.3.5计算路由
1、高维度Torus网络无死锁维序路由算法
高性能计算对计算网络的带宽、延迟、可扩展性、可靠性等方面都提出了极高的要求。针对6D Torus拓扑结构特征,基于最短路径优先原则设计了路由顺序可配置、路由维度可扩展的维序路由。
(1)维序路由的顺序可配置,支持最长维度优先路由。对于相同规模的系统,拓扑结构不同对系统整体性能有不同影响,对于Tours拓扑,优先走长维度有利于提升网络性能。因此,设计路由算法可根据Tours拓扑各维度长度配置路由顺序,例如,对于拓扑结构为2*2*3*4*16*8的Tours拓扑,会优先在长度为16的维度进行路由然后在长度为8的维度路由,直至到达目的地。而“京”计算机的路由算法是先遍历A、B、C维度,然后才走X、Y、Z维度,而A、B、C维度的长度固定是2*2*3,相对的,3D-Torus网络的X、Y、Z维度的长度通常比较大,因此我们设计的路由算法更有利于增强网络性能,同时也可以根据应用的通信特征进行配置,实现作业调度的灵活支持。
(2)路由维度可扩展,拓扑维度可支持至任意维度。拓扑结构不局限于6维,增强系统可扩展性,理论上可支持任意维度(由于受到硬件资源限制,目前商用IB(InfiniBand,无限带宽技术)交换机是通过SL(Service Level,服务级别)标识存在死锁的维度,而服务级别仅用4bit标识,因此限制最多可支持4个维度存在死锁。这也限制了长度超过4的维度不多于4)。对于不需要QOS(Quality of Service,服务质量)支持的应用,可将标识服务质量级别的服务级别对应的bit(比特)位用来标识某个维度是否存在时间线(dateline),也就是通过牺牲服务质量来换取维度的扩展。最多可支持4个维度存在时间线。
(3)提供丰富的服务质量支持。对于通信局部性较强的应用,如果不存在跨越时间线的通信,那么用来避免死锁的VL(Virtual Lene,虚通道)资源可以转换为服务质量支持。为此,对于虚通道也进行了调整,增加了灵活度,可提供多个服务质量级别。首先,bit0处理维序路由非法转向导致的死锁;bit1控制当前维度时间线的虚通道切换,如果不存在时间线,这一位可用于服务质量控制,这样设计主要是针对硅立方这样的拓扑结构,有些维度不需要服务质量,就可以提供更丰富的服务质量支持。另外,bit2还是实现服务质量功能,因此,可将服务质量级别扩展到4个,最高位作为管理通道保留。
2、路由算法描述
基于最短路径优先原则设计维序路由,根据目标节点和源节点的LID(位置标识符)确定其在拓扑中的位置关系,通过计算所在位置各个维度上的偏移量即可确定路由路径。对于规则拓扑的6D-Torus网络,可分解为若干个正交的维,很容易按照各维上偏移量之和计算出当前节点与目的节点之间的距离。同时,按照维度长度递减的顺序遍历每个维度,每路由一步偏移量减1,在当前维的偏移量减为0后才计算下一维的偏移量。维序路由依次走完每个维度,因此,对于Mesh网络不存在死锁。但是,当部件发送故障,需要绕路时,会产生死锁,比如出现链路故障或交换机故障,可以通过绕路来提高容错能力,但是,这种绕路是提前转向,破坏了维序的要求,会导致非法转向,进而产生死锁。
死锁是指一组报文将永远被阻塞,每个报文总在请求其他报文占用的资源,而自己又占用着其他报文所请求的资源。而虚通道可以用于提高交换机的交换能力,同时可以用于防止死锁,一般是通过缓冲器来实现。对于非法转向导致的死锁可通过切换虚通道来避免转向死锁,比如正常在0或1号虚通道传输,对于非法转向可采用2或3号虚通道,即可去除死锁。
对于Torus环绕网,天然的存在环路(为了减少网络直径,增加环回链路),导致通道资源的循环占用而发生死锁,可以通过设置时间线来破坏这种循环占用来避免死锁。对于每个维度的环,选定一个节点作为时间线,网络包首先在虚通道0中传输,当进入时间线后,强制切换至虚通道1中传输,即可避免环路死锁。
3、路由算法详解
路由解析过程如下:
(1)交换机解析到达数据包的本地路由头中的DLID(Destination LocalIdentifier,目标本地标识符),用于构建路由转发表LFT;
(2)转发表返回数据包的目的端口(或输出端口),该目的端口用来进行服务级别-虚通道的匹配;
(3)一旦目的端口和VL确定,内部crossbar(交叉开关矩阵或纵横式交换矩阵)就确定转发时机。该机制用来利用虚通道和目的路径的信誉值来进行转发。
由于IB的通信协议是基于目标本地标识符进行路由,数据包头只含有服务级别和目标本地标识符。目标本地标识符反映了目标节点的位置信息,而服务级别则附带了在每个维度是否通过时间线信息。IB协议基于维序路由算法来产生线性转发表,根据目标位置标识符返回对应的输出端口。转发表LFT存储的是每个目标本地标识符及其对应的输出端口。服务级别是根据路由信息判断所经过的路径是否通过时间线来设置对应的bit位,最高位设置服务质量,如果不需要服务质量,可用于标注时间线。虚通道可去除死锁并提供服务质量支持,其计算方式是由数据包的输入端口,输出端口和服务级别信息确定的。首先,bit0处理维序路由非法转向导致的死锁;bit1控制当前维度时间线的虚通道切换,如果不存在时间线,这一位可用于服务质量控制,这样设计主要是针对硅立方这样的拓扑结构,有些维度不需要时间线,就可以提供更丰富的服务质量支持。bit2实现服务质量功能,因此,可将服务质量级别扩展到4个,最高位作为管理通道保留。
本发明设计的路由算法严格遵守IB通信协议,完全兼容商用IB交换机。另外,路由模块主要实现三个功能:设置线性转发表LFT、设置服务级别和分配虚通道,结构关系如图7所示。
(1)设置线性转发表LFT
线性转发表LFT模块基于最短路径原则计算路由,根据目标位置标识符解析目标节点所在的位置信息,采用维序路由算法计算输出端口。
此外,该LFT模块函数关系如图8所示。
首先,函数route_torus负责为拓扑内每个交换机计算路由。通过调用函数torus_lft,构建交换机线性转发表LFT;
然后,函数torus_lft构建转发表LFT,其为每个交换机分配内存,调用lft_port函数计算转发表LFT输出端口,并将得到的端口写入LFT表;
之后,函数Lft_Port计算转发表LFT输出端口(函数返回用于到达目标交换机的交换机输出端口号,如果不能路由返回-1。严格按照由低维度到高维度的顺序遍历每个交换机,调用Next_Hop_Dim函数在当前维度计算下一跳输出端口,在目标方向上尽可能的前进,直到到达turning switch(简称ts,其为与目标节点在当前维度的距离偏移量为0)或无法前进才转向。若到达ts,说明在当前维度已经路由完,将转向更高维度继续路由;否则,说明当前维度的下一跳不可达(链路故障或交换机故障),需提前转向更高维度。然后在下一维度继续路由,过程类似,最终转向最高维度,直至达到目标终点;
其中,函数Next_Hop_Dim计算当前维度下一跳输出端口。定义ts为路径从一个坐标方向转向另一个方向的交换机。如果在该路径上可到达下一个ts,调用函数next_hop_path按最短可获得路径前进;如果在该路径上不可到达下一个ts,调用ring_dir_path函数按最短路径方向前进,尽管不直接可达,但仍前进,直到无路可走,再转向其他方向。
而函数Next hop path计算当前维度下一跳输出方向和端口组。需要考虑是否路径有被破坏(区别:next_hop_idx并不考虑路径是否可获得),如果沿着当前坐标方向从源交换机到目标交换机可以前进,返回真,并设置*pt_grp为端口组索引进行下一跳。
函数ring_dir_path计算当前维度最短路径路由方向。如果从源交换机到达目标交换机要走环的正方向返回一个正数,否则,返回负数,如果源和目的相同或目标不可到达返回0。
函数get_pathlen计算从源节点到目标节点在当前维度经由虚通道0和虚通道1的路径长度,其中,虚通道1是环回通道。取最短路径。
函数next_hop_idx计算下一跳输出端口。如果可能沿着当前维度坐标方向从源交换机到目标交换机前进,返回真,并设置端口组指针*pt_grp指向用于下一跳的端口组。判决是严格按最短路径原则执行的,并不考虑turning switch路径是否可获得。
(2)设置服务级别
函数通过设置服务级别各个bit来表示路由和服务质量信息。根据在每个维度是否通过时间线来给路径设置服务级别值。服务级别的bit0-2编码指示从源到目标节点的Torus路径上的给定维度(基数大于4,存在死锁)是否成环(通过时间线)。服务级别bit3编码服务质量级别,如果不需要服务质量,该位可用来标识时间线。服务级别各bit位功能如表3所示。
bit | 3 | 2 | 1 | 0 |
SL | QOS/coord[3] | coord[2] | coord[1] | coord[0] |
表3
综合这些函数的结果可得到最终的服务级别。
此外,服务级别模块函数关系如图9所示。
函数torus path sl计算路径服务级别。首先通过节点位置标识符找到对应的端口,再找到与之连接的交换机,然后调用函数SL Set来设置服务级别低3位bit值:根据在各个维度是否通过时间线(环回链路)来决定是否使用VL1虚通道,进而设置相应的服务级别bit位;服务级别的最高位通过函数SL set QOS获得。如果不需要服务质量,则服务级别最高位可用于标注对应维度是否通过时间线,从而可支持更高维度长度大于4的拓扑。
函数Use VL根据当前维度是否通过时间线确定服务级别值。基于最短路径选择选择在环的哪个方向路由,并判断否通过时间线来计算路径的服务级别值。
函数SL set QOS设置服务级别对应的服务质量信息。首先,根据时间线的数量来判断是否需要设置服务质量。如果需要,截取服务质量设置服务级别的高bit位作为服务质量;否则,可用来设置时间线。
函数SL get QOS负责获取服务级别的服务质量信息。首先根据时间线的数量来判断服务级别是否包含服务质量信息,如果包含,则截取服务级别的服务质量位;否则,返回服务级别值。
(3)设置虚通道
当有链路/交换机故障,可以计算转发表LFT表项来绕过故障点路由而不改变路径服务级别值。对于交换机发生故障的情况,如果不需要在故障交换机上转向,可以采用绕远的路径来绕过由于故障部件所破坏的环连通性来处理故障。对于由于故障交换机导致的转向,可以向故障交换机前进,然后当进程被故障阻塞时转向,采用维序算法允许的转向。然而,这样的路径也会导致一个后续的非法转向,因此,采用增加虚通道来分离这些非法转向的流量,构建服务级别-虚通道映射表(或SL2VL表):正常转向利用一类虚通道(例如VL0-1)而非法转向使用另一组分离的虚通道(例如VL2-3)。
在这些规则下,算法保证单个交换机故障无死锁路由,并且不需要改变路径服务级别值,也确保多个交换机故障无死锁路由,只要这些故障点是在最后维度且相邻的。对于维序路由,这意为着故障交换机I,J,K和I,J,K+1将不会导致死锁,这些容错路由规则试图避免两次通过时间线的路径(通过并返回),所以不必担心采用哪个服务级别。而且,由于故障导致环被破坏时也不存在死锁问题了,因此也不必担心这种路由在服务级别选择所带来的影响。
虚通道模块函数系统如图10所示。
函数Torus update SL2VL设置虚通道。根据服务级别包含的路由信息和服务质量信息对虚通道进行编码。遍历全部服务级别,调用函数SL Set来设置对应的虚通道值。并将结果写入SL2VL表。
函数SL Set将路由和服务质量信息编码到虚通道bit位。虚通道bit0根据输入端口和输出端口来判断是否是非法转向,如果是非法转向将赋值高虚通道,否则,正常走低虚通道。虚通道bit1根据服务级别指示的当前维度是否通过时间线来设置,如果通过时间线,设为高虚通道,否则,低虚通道。如果不存在死锁,该位可用来提供服务质量支持。bit2是服务质量设置,根据服务级别携带的服务质量信息来设置虚通道值,最多可支持4个服务质量级别,综合这些函数按位或的结果可得到最终的虚通道。由于IB规定虚通道15是管理虚通道,因此,虚通道最高位不能使用,故仅设置3位。虚通道具体设置入表4所示。
bit | 3 | 2 | 1 | 0 |
VL | X | QoS | QoS/DeadLock | Illegal Turn |
表4
函数Set turn VL设置转向虚通道bit0:根据输入端口和输出端口的信息来判断是否非法转向,如果输入端口坐标方向高于输出端口的坐标方向,说明是非法转向,虚通道bit0设置为1,否则,对于正常的路由,设置为0。
函数Set loop VL设置环路死锁避免虚通道。对于内部交换链路,虚通道bit1根据数据包在当前维度是否需要通过“环回”链路(过时间线)进行编码。若时间线的数量大于零,则说明会通过时间线,需要将虚通道bit1设置高位以避免死锁,否则,置0,该位可进行服务质量设置,以支持更多的服务质量级别。
函数Set QOS VL设置服务质量。根据时间线数量对虚通道进行设置,若时间线数量大于零,则需要处理死锁,因此仅对虚通道bit 2编码服务质量级别。若时间线的数量等于零,则不需要处理死锁,因此将虚通道的bit1和bit2都用来设置服务质量。
(4)测试结果
本发明已经在Mellanox公司商用IB网络模拟器OpenSM上通过测试验证,测试6D-Torus[6x6x6x2x2x3]拓扑结构,验证路由算法正确,不存在死锁。
高维度Torus网络可有效压缩网络直径,降低通信延迟,提高网络性能,可有效应对E级计算对超大规模互连网络的需求,例如,6D-Torus拓扑相对3D-Torus拓扑和胖树拓扑,具有高性能、低成本、低能耗、绿色环保等优势,特别是针对E级计算的超大规模系统,基于商用交换机构建6D-Torus网络可突破技术封锁,进一步降低系统成本,实现节能减排的科学发展理念,填补该领域技术空白。
基于商用交换机实现6D-Torus网络可降低系统成本,以Mellanox商用交换机为例,表5给出了6D Torus和二层胖树构建十万节点规模网络所需的成本和功耗。
6D-Torus网络和胖树成本对比。其中,6D-Torus网络采用具有36的端口的Mellanox SX6036低端口交换机,每个交换机连接18个计算节点,其余18个端口连接交换机,压缩比是1:1,共需6480台交换机,可连接116,640个计算节点,消耗电缆160720根。然而,无阻塞胖树拓扑需要479台648端口的Mellanox SX6536交换机(核心交换机162,边缘交换机317),每台边缘交换机连接324个计算节点,电缆数量为205,108根,网络仅能互连102,708个节点,而胖树由于需要昂贵的大端口交换机,导致系统成本和功耗都激增。6D-Torus网络功耗为胖树拓扑的30.8%。6D-Torus网络系统成本仅为胖树的26.4%。具体数值见表5,由此可见,采用高维度拓扑可有效降低网络成本和功耗。
表5
综上所述,借助于本发明的上述技术方案,通过拓扑解析模块解析Torus网络,从而确定每个交换机和每个节点在Torus网络中的位置关系,以及拓扑连接模块根据位置关系,创建所有交换机和所有节点,从而构造出Fabric网络,以及拓扑检验模块检验构造后的Fabric网络是否与配置文件一致,最后在构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将Fabric网络转换为Torus网络,从而可有效压缩网络直径,降低通信延迟,提高网络性能,可有效应对超大规模互连网络的需求。此外,本发明还通过解析接收到的数据包中的目标本地标识符,以及根据目标本地标识符,构建转发表,以及通过转发表返回数据包的目的端口,其中,目的端口用来进行服务级别和虚通道的匹配,最后根据目的端口,确定转发的时间,从而避免了死锁的情况。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种构建Torus网络的方法,其特征在于,包括:
拓扑解析模块解析所述Torus网络,从而确定每个交换机和每个节点在所述Torus网络中的位置关系;
拓扑连接模块根据所述位置关系,创建所有交换机和所有节点,从而构造出Fabric网络;
拓扑检验模块检验构造后的Fabric网络是否与配置文件一致;
在所述构造后的Fabric网络与配置文件一致的情况下,拓扑构建模块将所述Fabric网络转换为所述Torus网络。
2.根据权利要求1所述的方法,其特征在于,拓扑构建模块将所述Fabric网络转换为所述Torus网络包括:
所述拓扑构建模块定位所述所有交换机,从而确定所述所有交换机的坐标信息;
所述拓扑构建模块根据所述坐标信息,连接所述所有交换机,以及遍历每个交换机,将与所述每个交换机直接相连的节点连接起来。
3.根据权利要求2所述的方法,其特征在于,所述Torus网络包括:3D-Torus网络、6D-Torus网络。
4.根据权利要求3所述的方法,其特征在于,将12个所述3D-Torus网络组合成所述6D-Torus网络。
5.根据权利要求3所述的方法,其特征在于,通过将所述3D-Torus网络中的每个节点替换为硅元结构,从而构成所述6D-Torus网络;
其中,所述硅元结构包括:正方体结构以及处于所述正方体结构内的正方形结构,所述正方体结构包括:四个顶点构成的上顶面和四个顶点构成的下底面,所述正方形的每个顶点分别与所述上顶面的一顶点和所述下底面的一顶点连接,并且所述上顶面的一顶点和所述下底面的一顶点的连线与所述正方形垂直,其中,所述正方体结构和所述正方形结构的顶点均为超节点。
6.根据权利要求5所述的方法,其特征在于,所述超节点通过所述交换机和所述节点连接构成。
7.一种Torus网络,其特征在于,所述Torus网络通过上述权利要求1-6任一项所述的构建Torus网络的方法构建。
8.一种应用于上述权利要求7所述的Torus网络的路由算法,其特征在于,包括:
解析接收到的数据包中的目标本地标识符;
根据所述目标本地标识符,构建转发表,以及通过所述转发表返回所述数据包的目的端口,其中,所述目的端口用来进行服务级别和虚通道的匹配;
根据所述目的端口,确定转发的时间。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710947911.9A CN107612746B (zh) | 2017-10-12 | 2017-10-12 | 一种构建Torus网络的方法、Torus网络和路由算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710947911.9A CN107612746B (zh) | 2017-10-12 | 2017-10-12 | 一种构建Torus网络的方法、Torus网络和路由算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107612746A true CN107612746A (zh) | 2018-01-19 |
CN107612746B CN107612746B (zh) | 2020-12-22 |
Family
ID=61068008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710947911.9A Active CN107612746B (zh) | 2017-10-12 | 2017-10-12 | 一种构建Torus网络的方法、Torus网络和路由算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107612746B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
CN108494845A (zh) * | 2018-03-14 | 2018-09-04 | 曙光信息产业(北京)有限公司 | 一种基于6D-Torus网络的作业调度方法和装置 |
CN109379243A (zh) * | 2018-12-28 | 2019-02-22 | 曙光信息产业(北京)有限公司 | 硅立方高性能计算机的拓扑展示模型的建立方法 |
CN109561034A (zh) * | 2018-12-25 | 2019-04-02 | 中科曙光信息产业成都有限公司 | 三维网络拓扑结构及其路由算法 |
CN110198268A (zh) * | 2019-05-15 | 2019-09-03 | 清华大学 | 高维度Torus网络架构及自适应路由方法 |
CN112039678A (zh) * | 2019-06-04 | 2020-12-04 | 清华大学 | 基于Torus网络的组播方法 |
US11044169B2 (en) | 2019-01-07 | 2021-06-22 | International Business Machines Corporation | Mapping 2-dimensional meshes on 3-dimensional torus |
US11467876B2 (en) * | 2018-12-18 | 2022-10-11 | Fujitsu Limited | Information processing apparatus, information processing method and non-transitory computer-readable storage medium for storing information processing program of determining relations among nodes in N-dimensional torus structure |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787478A (zh) * | 2004-12-09 | 2006-06-14 | 电子科技大学 | 一种多维交换结构中的无死锁自适应路由方法 |
CN101330413A (zh) * | 2007-06-22 | 2008-12-24 | 上海红神信息技术有限公司 | 基于环绕网络与超立方网络架构的混合多阶张量扩展方法 |
CN102404409A (zh) * | 2011-12-12 | 2012-04-04 | 东南大学 | 一种基于光分组交换的对等式云网络系统 |
US20140119728A1 (en) * | 2012-10-26 | 2014-05-01 | Sodero Networks, Inc. | Method and apparatus for implementing a multi-dimensional optical circuit switching fabric |
CN103874157A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
CN103888361A (zh) * | 2013-05-15 | 2014-06-25 | 中国人民解放军国防科学技术大学 | 一种面向胖树型拓扑结构的光路由器 |
CN103986672A (zh) * | 2014-05-23 | 2014-08-13 | 清华大学 | 片上网络拓扑结构的重构方法及系统 |
-
2017
- 2017-10-12 CN CN201710947911.9A patent/CN107612746B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1787478A (zh) * | 2004-12-09 | 2006-06-14 | 电子科技大学 | 一种多维交换结构中的无死锁自适应路由方法 |
CN101330413A (zh) * | 2007-06-22 | 2008-12-24 | 上海红神信息技术有限公司 | 基于环绕网络与超立方网络架构的混合多阶张量扩展方法 |
CN102404409A (zh) * | 2011-12-12 | 2012-04-04 | 东南大学 | 一种基于光分组交换的对等式云网络系统 |
US20140119728A1 (en) * | 2012-10-26 | 2014-05-01 | Sodero Networks, Inc. | Method and apparatus for implementing a multi-dimensional optical circuit switching fabric |
CN103874157A (zh) * | 2012-12-12 | 2014-06-18 | 华为技术有限公司 | 路由转发、建立路由表、和获取内容的方法及其装置 |
CN103888361A (zh) * | 2013-05-15 | 2014-06-25 | 中国人民解放军国防科学技术大学 | 一种面向胖树型拓扑结构的光路由器 |
CN103986672A (zh) * | 2014-05-23 | 2014-08-13 | 清华大学 | 片上网络拓扑结构的重构方法及系统 |
Non-Patent Citations (2)
Title |
---|
张大坤等: "三维片上网络拓扑结构研究综述", 《计算机科学与探索》 * |
朱旭东等: "一种在多维分组交换结构中使用的基于死锁恢复策略的自适应路由算法", 《电子与信息学报》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108494845A (zh) * | 2018-03-14 | 2018-09-04 | 曙光信息产业(北京)有限公司 | 一种基于6D-Torus网络的作业调度方法和装置 |
CN108494845B (zh) * | 2018-03-14 | 2020-12-22 | 曙光信息产业(北京)有限公司 | 一种基于6D-Torus网络的作业调度方法和装置 |
CN108429679A (zh) * | 2018-04-23 | 2018-08-21 | 曙光信息产业(北京)有限公司 | 扩展型互连网络及其路由算法 |
CN108429679B (zh) * | 2018-04-23 | 2020-12-22 | 曙光信息产业(北京)有限公司 | 扩展型互连网络的拓扑结构及其路由方法 |
US11467876B2 (en) * | 2018-12-18 | 2022-10-11 | Fujitsu Limited | Information processing apparatus, information processing method and non-transitory computer-readable storage medium for storing information processing program of determining relations among nodes in N-dimensional torus structure |
CN109561034A (zh) * | 2018-12-25 | 2019-04-02 | 中科曙光信息产业成都有限公司 | 三维网络拓扑结构及其路由算法 |
CN109561034B (zh) * | 2018-12-25 | 2021-06-04 | 中科曙光信息产业成都有限公司 | 三维网络拓扑结构及其路由算法 |
CN109379243A (zh) * | 2018-12-28 | 2019-02-22 | 曙光信息产业(北京)有限公司 | 硅立方高性能计算机的拓扑展示模型的建立方法 |
US11044169B2 (en) | 2019-01-07 | 2021-06-22 | International Business Machines Corporation | Mapping 2-dimensional meshes on 3-dimensional torus |
CN110198268A (zh) * | 2019-05-15 | 2019-09-03 | 清华大学 | 高维度Torus网络架构及自适应路由方法 |
CN112039678A (zh) * | 2019-06-04 | 2020-12-04 | 清华大学 | 基于Torus网络的组播方法 |
CN112039678B (zh) * | 2019-06-04 | 2021-11-19 | 清华大学 | 基于Torus网络的组播方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107612746B (zh) | 2020-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107612746A (zh) | 一种构建Torus网络的方法、Torus网络和路由算法 | |
CN105075199B (zh) | 具有到每一资源的多个分布式连接的直接网络系统 | |
CN101483614B (zh) | 三维片上网络架构方法 | |
CN101888333B (zh) | 用于在网络元件的转发平面内保持端口状态表的方法和装置 | |
CN104539547B (zh) | 一种用于三维集成电路片上网络的路由器及路由方法 | |
CN105138493B (zh) | 适用并行运算的无交换器网络建构系统及方法 | |
KR20140139032A (ko) | 패킷플로우 상호연결 패브릭 | |
CN104579951B (zh) | 片上网络中新颖的故障与拥塞模型下的容错方法 | |
CN103346967B (zh) | 一种数据中心网络拓扑结构及其路由方法 | |
CN105471749B (zh) | 阶数灵活的低直径大规模互连网络拓扑结构及路由方法 | |
CN102882783B (zh) | 基于tsv的三维集成电路的片上网络的拓扑架构、路由方法 | |
CN103222236B (zh) | 网络中继系统和通信装置 | |
CN109561034A (zh) | 三维网络拓扑结构及其路由算法 | |
CN107959643A (zh) | 一种通过交换芯片构建的交换系统及其路由算法 | |
CN108259387A (zh) | 一种通过交换机构建的交换系统及其路由算法 | |
US20230327976A1 (en) | Deadlock-free multipath routing for direct interconnect networks | |
CN102629912A (zh) | 面向无缓冲片上网络的容错偏转路由方法及装置 | |
CN108429679A (zh) | 扩展型互连网络及其路由算法 | |
CN101388834A (zh) | 三维片上网络架构方法 | |
CN115002584A (zh) | 使用具有一对多光交换机的光网络的可重新配置的计算平台 | |
CN109246006A (zh) | 一种通过交换芯片构建的交换系统及其路由算法 | |
CN105530206A (zh) | 一种基于Torus网络的双接入结构及其工作方式 | |
Bogdanski | Optimized routing for fat-tree topologies | |
CN104954439B (zh) | 一种云服务器及其节点互联方法、云服务器系统 | |
CN116016384B (zh) | 基于环形布局的可扩展片上网络拓扑结构及其路由方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210930 Address after: 300450 floors 1-3, No. 15, Haitai Huake street, Huayuan Industrial Zone (outside the ring), Binhai New Area, Tianjin Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Patentee after: ZHONGKE SUGON INFORMATION INDUSTRY CHENGDU Co.,Ltd. Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street. Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd. |
|
TR01 | Transfer of patent right |