CN103873367A - 胖树网络中的无死锁路由 - Google Patents
胖树网络中的无死锁路由 Download PDFInfo
- Publication number
- CN103873367A CN103873367A CN201310627428.4A CN201310627428A CN103873367A CN 103873367 A CN103873367 A CN 103873367A CN 201310627428 A CN201310627428 A CN 201310627428A CN 103873367 A CN103873367 A CN 103873367A
- Authority
- CN
- China
- Prior art keywords
- route
- switch
- turning
- network
- fat tree
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
Abstract
本发明涉及胖树网络中的无死锁路由。在胖树网络中的源和目的地交换机之间路由数据分组的方法和装置。为每个数据分组选择具有三个或更少路由阶段的路由,使得路由遵循源和目的地交换机之间的跨过网络的最短路径。经由路由,在第一和第二虚拟通道中的一个上从源到目的地交换机传送数据分组,除非该路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯。如果路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯,则经由路由,直到转弯发生的交换机处在第一虚拟通道上传送数据分组,并且从该交换机起在第二虚拟通道上传送数据分组。这提供胖树网络中无死锁操作的完全连接。提供直接胖树网络,末端节点连接到胖树拓扑的多个级中的交换机。
Description
技术领域
本发明一般涉及胖树网络中的无死锁路由。
背景技术
胖树网络是包括以多根树形拓扑连接的多个交换机的分层递归结构网络。这些网络得到广泛的普及并被用在许多现代的高性能计算系统和商业数据中心基础设施中。胖树拓扑结构存在大量变型,但从附图的图1中可以理解这些网络的基本原理。其显示了被称为“k元n树”的具体的非常规则的胖树网络的例子。在这种指定中,k为树的数基(即在每一级中子和/或父的数量),n是级数。k元n树有n级交换机,每个交换机具有数基2k,其中一半端口向下连接,而另一半向上连接。(顶级中的交换机(即树的根)在原理上只需要数基k,因为它们没有父,但实际上这些端口可能存在并且是未连接的以允许未来网络扩展)。图1的网络是二进制4树,由此k=2且n=4,其中正方形表示交换机并且它们之间的线表示交换机间链路。交换机形成间接网络拓扑的互连网络,即末端节点(计算节点、服务器等)连接在网络的边缘处,从而在计算和联网之间提供明确的区分。图1中的末端节点由圆圈表示,并连接到交换机的底层,即树拓扑的叶子。
经由包括两个路由阶段的简单路由过程,可在胖树网络中的任何一对末端节点之间传输分组。第一路由阶段是“向上阶段”,其中路由跟随拓扑的向上方向(即朝向根)中的一个或多个交换机到交换机跳跃。这接着是“向下阶段”,在“向下阶段”中,路由跟随拓扑的向下方向中的一个或多个交换机到交换机跳跃。利用这种路由策略,最短路径路由是直接的,因为路由只包括向上/向下转弯,而不包括向下/向上转弯,从而避免了死锁。(如果在通道依赖关系图中的资源之间有循环依赖,则死锁可能发生,因为这可能导致网络的操作中资源请求之间不可调和的冲突)。在任何源和目的地(未连接到相同的叶交换机)之间还有多条等长的路径,从而使能网络操作中的多条路径和负载平衡。胖树网络还提供高平分带宽,并且层次结构易于扩展到非常大的网络。
由于胖树网络的间接特性,用于这些网络的路由算法只处理从一个末端节点到另一个末端节点的流量,而不提供从网络中的任何交换机到任何其它交换机的连接。完全的交换机到交换机连接将需要使用具有向上/向下转弯的路由,而这些转弯可以在网络中引入死锁,必须不惜一切代价避免死锁。然而,直接的交换机到交换机连接对若干网络管理功能来说可以是非常有益的,例如通信拓扑变化(节点和/或交换机的添加或去除)、本地故障事件(例如链路断开)的分布以及诊断(测量任意交换机对之间的延迟或吞吐量)。此外,目前的InfiniBand交换机经常具有需要与网络中所有交换机连接的嵌入的子网管理器。(InfiniBand是InfiniBand贸易协会的商标)。
在Bogdanski等人在ACM Trans.Architecture and CodeOptimization、第8卷第4期、2012年1月的“sFtree:A fully connectedand deadlock-free switch-to-switch routing algorithm for fat-trees”中描述了胖树网络中完全连接的提议。此提议指定在整个间接网络拓扑内的特定反转的子树,其中在路由期间向下/向上转弯可能发生。如果传统两阶段的向上-向下路由不提供源交换机和目的地交换机之间的连接,则使用四阶段的向上-向下-向上-向下路由,其中,在指定的子树中发生向下/向上转弯。通过路由限制来避免硬件修改,例如使用作者认为对于这些网络不可取的虚拟通道,这提供了无死锁的路由。提出的路由方法既不是最短路径,也不能充分利用路径多样性。此外,因为它在一个反转的子树中集中交换机到交换机流量,该网络容易由于网络故障而发生拥塞效应和连接损失。
一般对于网络中避免死锁来说各种机制是已知的,包括使用虚拟通道(即资源(例如交换机缓冲器和链接)的分区以提供一个物理通道内的多个逻辑通道),以及诸如注入限制的流控制机制以防止任何单个的资源停止运送。Domke等人在Proceedings of the25th IEEE InternationalParallel&Distributed Processing Symposium(IPDPS),Anchorage,USA,第613-624页,2011年5月上的“Deadlock-free Oblivious Routing forArbitrary Topologies”中讨论了在任意节点到节点的网络拓扑中为避免死锁使用虚拟通道。这提出了基于网络拓扑的详细分析的复杂系统。这个算法和类似的算法通常需要2到12个虚拟通道,以保证无死锁。Sancho等人在Proc.IEEE International Conference on Parallel Processing(ICPP),Vancouver,Canada,第409-418页,2002年8月的“EffectiveMethodology for Deadlock-Free Minimal Routing in InfiniBandNetworks”中公开了在InfiniBand网络中为无死锁路由而使用虚拟渠道和服务级。这需要包括最小的路径计算并映射到任意拓扑的生成树的复杂网络分析,其中,虚拟通道被分配(如果可用的话)以打破死锁。这些用于任意拓扑的各种技术在胖树网络中导致表现不佳,因为它们未能利用树的多路径能力。
发明内容
本发明的一个方面提供了一种在胖树网络中的源交换机与目的地交换机之间路由数据分组的方法,该方法包括:
为每个分组选择具有三个或更少的路由阶段的路由,使得路由遵循源交换机和目的地交换机(即用于所选路由的源交换机和目的地交换机)之间的跨过所述网络的最短路径;
经由所述路由,从源交换机到目的地交换机在第一虚拟通道和第二虚拟通道中的一个上传送数据分组,除非该路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯;以及
如果该路由包括预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯,则经由所述路由,直到所述转弯发生的交换机处在第一虚拟通道上传送数据分组,并且从该交换机起在第二虚拟通道上传送数据分组。
利用体现本发明的路由方法,所有的路由具有三个或更少的路由阶段。这允许路由阶段的六种可能的组合:向上、向下、向上-向下、向下-向上、向上-向下-向上和向下-向上-向下。这六种阶段组合中的任何一种可用于路由,但是对于任何给定的路由,使用适当的阶段组合,使得路由遵循整个网络拓扑中的源和目的地之间的最短路径(即最小数量的交换机间跳跃)。通过为包括预定类型的转弯的路由使用两个虚拟通道而避免死锁。在一些实施例中,这是向下到向上转弯。在其他实施例中,它是向上到向下转弯。如果为数据分组选择的路由包括这种特定类型的转弯,则从源直到该转弯发生的交换机(“转弯交换机”)处在第一虚拟通道上传送该分组,并且从转弯交换机到目的地在第二虚拟通道上传送该分组。其他路由对于从源到目的地的整个路由可使用任一个虚拟通道。这提供了简单但是高效的路由系统,该路由系统提供胖树网络中的完全的交换机到交换机连接。对于任何路由,需要不超过三个路由阶段,可使用适当的阶段组合,使得总是为任何的源交换机和目的地交换机对选择最短路径。通过仅仅使用两个虚拟通道,即只是比必要的物理通道多一个通道,始终保证避免死锁。和上述Bogdanski等人的想法相反,这个简单的双通道系统提供显着的性能优势。可充分利用胖树网络中路径多样性,同时实现完全的最短路径连接。通过在多个路径上的负载均衡,延迟可以被最小化,而效率可被进一步提高。此外,通过避免路径限制,可靠性和效率均得到提高:拥塞影响的可能性减小而容错性提高。因此,总的来说,体现本发明的路由方法提供了完全连接的胖树网络中的简单、可靠且高效的路由。
在优选实施例中,向下到向上转弯和向上到向下转弯中的所述预定的转弯是向下到向上转弯,从而分组在具有向下/向上转弯的路由上从第一虚拟通道改变到第二虚拟通道。在特别简单的实现中,对于不包括预定的一个转弯的路由,在第一虚拟通道上传送分组。然后最初在第一通道上传送所有分组,仅在做出向下/向上(或可替代地向上/向下)转弯时改变到第二通道。
体现本发明的路由方法可包括为数据分组计算路由的步骤。通常,可预先为网络拓扑中的交换机对计算路由并且然后在适当时选择,或者路由可作为路由选择过程的一部分被动态计算。此外,可整体计算用于给定的源交换机和给定的目的地交换机之间的路由,或者可在逐个跳跃的基础上对于给定的路由上的连续交换机计算路由。在任何情况下,优选实施例包括:通过为路由上的每个交换机确定用于下一跳跃的路由阶段的方向和在该方向上的路由上的下一交换机,而为数据分组计算路由。然后,对于路由上的每个交换机,可依赖于所述方向确定用于下一跳跃的虚拟通道。
如果路由被预先计算,例如在网络操作之前脱机计算,则体现本发明的路由方法可包括:使用预定路由数据,为数据分组选择路由,该预定路由数据指示网络中的交换机对之间的预先计算的路由。这样的路由数据可包括由交换机在网络操作期间访问的一个或多个数据结构(例如路由表)。可替代的实施例包括在网络的操作中为每个数据分组动态计算路由。通常,可单独为每个分组或为数据分组的组(例如给定消息中的所有分组)执行这样的动态路由计算。在下述优选实施例中,通过在所述路径中连续交换机处为每个数据分组在逐个跳跃的基础上计算路由,来执行动态路由计算。
发明的第二方面提供了一种包括程序代码装置的计算机程序,用于使得相似交换机胖树网络中的交换机的处理器和其他交换机共同执行根据发明第一方面的方法。
可在操作中动态地执行给定的路由上的分组传送的虚拟通道分配,或者在每个交换机中在逐个跳跃的基础上,或者在用于路由的源交换机处。然而,如果希望的话,例如在网络的操作之前可通过网络管理计算机预先执行路由计算和给特定虚拟通道的路由分配。因此本发明的第三方面提供了一种计算机实现的方法,用于确定在胖树网络的交换机之间的数据分组的路由,该方法包括:
对于源交换机和目的地交换机对之间的路由,选择具有三个或更少路由阶段的相应的路由,使得每个路由遵循源交换机和目的地交换机之间的跨过所述网络的最短路径;
分配从源交换机到目的地交换机的每个路由给第一虚拟通道和第二虚拟通道中的一个,除非该路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯;以及
如果路由包括预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯,则直到所述转弯发生的交换机处将路由分配给第一虚拟通道,并从该交换机起将路由分配给第二虚拟通道。
这样的方法可包括:提供由网络中的交换机使用的路由数据,路由数据指示所述路由中的每个和其虚拟通道分配,例如作为在网络操作期间由交换机访问的路由表。
发明的第四方面是程序代码装置,用于使计算机执行根据发明第三方面的方法。将理解的是,术语“计算机”用于最一般的意义,并且包括具有用于执行计算机程序的数据处理能力的任何装置、部件或系统。此外,体现本发明的计算机程序可构成独立的程序或者可以是更大程序的元素,并可以被提供,例如实施在例如用于加载在计算机中的磁盘或电子传输的计算机可读介质中。计算机程序的程序代码装置可包括一组指令的以任何语言、代码或符号的任何表达式,该组指令旨在直接或者在(a)到另一语言、代码或符号的转换以及(b)以不同材料形式的再现中的任一者或两者之后使得计算机执行考虑的方法。
发明的第五方面提供了一种胖树网络,包括以胖树拓扑连接的多个交换机,交换机适合于实现根据发明第一方面的路由方法。本发明的再一方面提供了根据发明第五方面的胖树网络的交换机。
与传统的胖树网络类似,体现本发明第五方面的胖树网络可能是间接网络。在这种情况下,胖树拓扑的最低级中的每个交换机可连接到至少一个末端节点。然后由路由方法使能的完全连接可针对任何所需的交换机间通信,例如用于网络管理功能而被利用。然而,交换机到交换机路由技术使能胖树拓扑的常规使用的扩展。特别地,体现本发明第五方面的胖树网络可能是直接网络。在这样的直接胖树网络中,胖树拓扑的多个级中的每个交换机都可以连接到至少一个末端节点。因此,网络中的每个交换机可连接到一个或多个末端节点。
通常,在此参考发明的一个方面的实施例描述特征,可在发明的另一个方面的实施例中适当地提供相应的特征。
附图说明
通过示例的方式,现在将参考附图描述发明的优选实施例,其中:
图1显示示例性的胖树网络拓扑;
图2是用于体现本发明的路由方法中的交换机的示意图;
图3示出体现本发明的胖树网络中的交换机指定;
图4指示由实现体现本发明的路由方法的交换机所执行的步骤;
图5至图10示出用图4的方法获得的路由阶段的不同组合的示例性路由;
图11示出体现本发明的直接胖树网络的示例;以及
图12显示体现本发明的混合的直接/间接网络的示例。
具体实施方式
图2是网络交换机1的简化示意图,网络交换机1用于在胖树网络中实现体现本发明的路由方法。在此示例中,交换机1具有四个端口,用于以类似于图1中的二进制胖树拓扑的连接。两个面向上的端口被标记为u1和u2,而两个面向下的端口被标记为d1和d2。交换机包括通常的网络接口电路(I/F)2,用于经由连接到端口的网络链接发送和接收数据分组。交换机构造3包括通常的缓冲器和连接,经由该缓冲器和连接,接收的分组在输入端口和相应输出端口之间穿过交换机,用于其跨网络的路由。此过程由交换机控制器4控制。交换机构造3支持用于在网络中传输数据分组的两个虚拟通道,被指定为VC0和VC1。因此,通过缓冲器等的逻辑分区,在交换机控制器4以通常的方式的控制下,交换机的物理资源被分区以提供相同的底层硬件上的两个逻辑通道。控制器4通常控制交换机1的操作,并包括用于执行以下详述的路由功能的路由单元5。通常可在硬件或软件或它们的组合中实现路由单元5。因此,在一些实施例中,路由单元可由处理器实现(其通常包括一个或多个构成的处理器),该处理器由软件配置以执行所述功能,从此处的描述,合适软件对本领域技术人员来说显而易见。在将要描述的特定实施例中,由交换机1在逐个跳跃的基础上动态执行路由计算,路由单元5优选地在硬连线逻辑上实现以实现操作速度。再次,适当的实现方式对于本领域技术人员将易于显而易见。
图3显示体现本发明的网络的第一个例子。该网络10由以间接的二元4树拓扑连接的多个类似的交换机1构造而成。因此,网络10具有n=4级的交换机,其中,数基k=2,从而形成了在末端节点11之间的互连网络,末端节点11连接到交换机层次的最低级(级1)中的叶交换机。交换机1适于实施下文详述的路由方法,借此可在网络中的任何交换机对之间路由数据分组。因此,可为末端节点11之间的节点到节点通信、还为任何两个交换机1之间的交换机间通信这两者执行路由。为其执行路由的数据分组因此可包含任何类型的数据,无论源自末端节点的数据(例如用户数据)和/或源自交换机的数据(例如控制/管理数据)。将要描述的路由方法在本实施例中是基于数字的,其中,网络中的每个交换机1由其级和指示交换机在该级中的位置的(n-1)位的k进制的指定所确定。在图3的示例中,其中n=4且k=2,每个交换机在其级内由该图中指示的3位二进制指定确定。连接到每个叶交换机的两个末端节点可由所示的4位确定,该4位是叶交换机的3位指定和一个附加位。
为了在网络10中的源交换机和目的地交换机的任何给定对之间路由数据分组,每个交换机1的路由单元5实现下文详述的路由算法,由此在逐个跳跃的基础上动态地计算路由并将其分配给虚拟通道VC0、VC1。因此,在本实施例中,经由从源交换机到目的地交换机的路由上的连续交换机的集体操作来选择路由并将其分配给虚拟通道。由每个交换机1实现的路由过程的主要步骤在图4的流程图中指示。当数据分组将被路由到特定的目的地交换机时,该过程在步骤20处开始。这个分组可能已从路由上之前的交换机被发送到当前交换机,或者在作为源交换机的当前交换机处本地产生。在步骤21中,路由单元5首先为路由上的下一个跳跃确定路由阶段的适当方向(即向上或向下)。接着,在步骤22中,路由单元在所选方向上选择特定的父交换机或子交换机作为路由上的下一个交换机。如以下所示,以这样的方式执行步骤21和22,所述方式使得所选路由将始终遵循整个网络拓扑中的源交换机和目的地交换机之间的最短路径(交换机间跳跃数的最小可能数量)。在步骤23中,路由单元5然后确定将用于下一跳跃的虚拟通道。虚拟通道的分配在这里依赖于所选的路由方向,并根据以下说明的原理而被执行,以便避免网络操作期间的死锁。在步骤24中,经由适当的端口将分组传送到分配的虚拟通道上的下一个交换机,该过程完成。
下面更详细地阐述图4过程的各个步骤。首先考虑步骤21中的路由方向的确定,以这样的方式执行该步骤,该方式使得路由可以有三个或更少的路由阶段的任何组合。因此,所有的路由具有下列阶段组合中的一个:向上、向下、向上-向下、向下-向上、向上-向下-向下、向下-向上-向下。执行步骤21时,对于每个路由,路由单元确保使用合适的阶段组合,使得路由可遵循跨整个网络的最短路径。
图4中的步骤22选择所需方向上特定的最短路径路由。具体地,网络的拓扑是这样的,对于许多对源交换机和目的地交换机来说,存在不止一个的最短路径路由。在这种情况下,可以采用可以是静态或动态的各种各样的路径选择策略来选择特定的最短路径。这样的策略在本领域是众所周知的,这里不作讨论。足以说,由胖树拓扑所提供的路径多样性可根据期望在给定情况下利用。
图4的步骤23确保在网络10的操作中无死锁路由。通过改变包括预定的一个转弯类型的路由上的虚拟通道来避免死锁。在本实施例中,这是向下到向上转弯。具体地,如果为数据分组选择的路由包括向下到向上转弯,则从源交换机直到向下-向下转弯发生的交换机(“转弯交换机”)处在第一虚拟通道(在这里是VC0)上发送所述包。然后从转弯交换机到目的地交换机在第二虚拟通道(在这里是VC1)上发送所述分组。不包括向下到向上转弯的路由对于从源到目的地的整个路由可使用任一个虚拟通道。在本实施例中,该路由使用通道VC0,据此所有路由至少在最初遵循VC0,其中,包含向下/向上转弯的路由在转弯交换机处改变到VC1。通过避免通道依赖图中的循环依赖,用于将路由分配给虚拟通道的这种策略保证无死锁操作。
用于在路由单元5中实现以执行上述步骤的示例性路由算法由下面给出的伪代码定义。在这段代码中:
L(s)指示交换机s的级,1≤L(s)≤n;
每个交换机由(n-1)位数字确定,该数字从1编号到n-1,数字1(最右边)是最低有效,而数字n-1(最左边)是最高有效;
Di(s)指示交换机s的第i个数字,1≤Di(s)<k,1≤i≤n-1
c表示当前交换机位置;
d表示目的地交换机位置;
MSD(c,d)=c和d之间最高有效的不同数字;以及
LSD(c,d)=c和d之间最低有效的不同数字
步骤21:确定路由方向
可见,经由该算法的步骤21的结果依赖于在整体网络拓扑中目的地交换机相对于当前交换机的位置。在源交换机处选择初始路由方向有效地选择六个允许的阶段组合中特定的一个,从而提供如上所述的最短路径。
第22步:选择下一交换机
可见,经由该算法的步骤22的结果依赖于当前交换机和目的地交换机的相对位置以及当前路由方向两者。
步骤23:虚拟通道分配
利用上述算法,对于给定分组的目的地交换机可在分组中由图3中所示的其级和3位位置指定来指示。当前虚拟通道VC在该分组中由1位标志指示。可在分组中指示当前路由方向,或者可由交换机从接收端来确定,即,接收端是面朝上还是面朝下。
图5至图10示出对于六种不同的路由阶段组合中的每一个用上述方法获得的路由的示例。VC0上的路由通过虚的路由线表示,而VC1上的路由通过实的路由线表示。图5和图6分别显示一个阶段的向上路由和向下路由。在每一种情况下,路由方法找到到目的地交换机的单个最短路径并在VC0上路由。图7示出被分配给VC0的两阶段的向上-向下路由。这里有四种可替代的最短路径,通过级3交换机s(3;0xy),其中x和y可以取任一个二进制值,正如由图中虚线所指示。经由s(3;011)的路由在这里由路径选择策略选择。图8示出两阶段的向下-向上路由。这条路由包括向下/向上转弯,因此被分配给VC0直到转弯交换机s(1;010),并且从该交换机到目的地交换机被分配给VC1。在这里,将再次有四种可替换的最短路径,通过级1交换机s(1;0xy),其中在这种情况下选择了经由(1;010)的路由。图9示出了三阶段的向上-向下-向上路由。在这种情况下,有八个可替换的最短路径,通过级4交换机s(4;x00)和级1交换机s(1;1yz),其中z也可以采用任一个二进制值。这里选择经由s(4;100)和s(1;100)的路由。该路由包括向下/向上转弯,因此被分配给VC0直到转弯交换机s(1;100),并且从该交换机其向前被分配给VC1。图10显示三阶段的向下-向上-向下路由。再次,有八个可替代的最短路径,经由级1交换机s(1;00x)和级4交换机s(4;y11),其中,选择了经由s(1;001)和s(4;011)的路由。该路由还包括向下/向上转弯,并被分配给VC0直到转弯交换机s(1;001),并从该交换机其向前被分配给VC1。
可见,上述实施例提供了用于完全连接的胖树网络10的简单而高效的路由方法。通过选择具有所述的三个或更少路由阶段的适当组合的路由,在源交换机和目的地交换机之间经由最短网络路径传送所有的分组。路径多样性可由任何所需的路径选择机制充分利用,而虚拟通道分配策略保证只有两个虚拟通道的无死锁操作。
体现本发明的方法通常可应用于任何类型的胖树网络。例如上述实施例中通常可应用到k元n树。以和网络10类似的方式构造这种k元n树,其中,在n级中布置n.kn-1个交换机,(n-1).kn个交换机间链路,以及附接到叶交换机的kn个末端节点。上述实施例也可以以直接方式扩展到扩展的广义的胖树(XGFT),这对于本领域技术人员而言易于显而易见。XGFT的特征在于:级数n和两个参数向量mi、wi,其中mi是每一级i中的子数量(1≤i≤n,mi≥1),而wi是每一级中的父数量(1≤i≤n,wi≥1)。
用于胖树网络的交换机到交换机路由技术还使得能够扩展胖树拓扑的传统使用。特别地,可实现直接胖树网络,其中在胖树拓扑的多个级中的交换机(优选是网络中的每个交换机)的每一个都能够连接到至少一个末端节点。在这样的网络中,如果希望的话,交换机可与各自的末端节点集成,或者分别提供以用于到多个末端节点的连接。例如,直接的k元n树的特征在于三个参数(n,k,b),其中n和k和之前一样,而b是毛发(bristling)因子,即连接到每个交换机的末端节点数量。这种网络具有n.kn-1个交换机和b.n.kn-1个末端节点。顶层和底层中的交换机具有数基k+b。所有的其他交换机具有数基2.k+b。图11示出这种网络的示例,在这种情况下,双向的二元4树具有b=2。对于n≥2,这样的网络具有(n-1).kn个交换机;直径(横穿的交换机数量)=2n-1;(k/2).kn-1=kn/2平分链路;平分带宽(单向)=R.kn/2,其中R=链路速率;每个节点的平分带宽(单向)=(R.kn/2)/(b.n.k-1n/2)=(R.k)/(b.n);每个节点相关的平分带宽=k/(b.n)。用于完全平分带宽的要求则是k≥b.n。
直接胖树网络还可基于XGFT。这种网络的特征在于级数n和三个参数向量mi,wi,bi,其中mi是每级i的子数量(此处对于2≤i≤n,mi≥1);wi是每级的父数量(此处对于2≤i≤n,wi≥1);而bi是毛发因子(对于1≤bi≤n,bi≥1)。和原始的XGFT概念相比:m1被省略,因为第一级的子数量(即每个第一级交换机的末端节点的数量)由bi给出;而w1也被省略,因为每个末端节点的多个父不被允许。
直接胖树网络提供各种好处,包括比传统的胖树更短的平均路径长度和更好的成本/性能比。高数基交换机可被利用以用于直接拓扑,并且在固定交换机数基k处存在关于成本/性能的拓扑灵活性:可通过增加毛发因子b而降低成本,通过减少b而改善性能。增加的可扩展性继承自直接拓扑而无需在典型的胖树网络中叉车式升级。此外,根据级数n和选择的毛发值b,对于给定的数基k更好地利用局部性是可能的。
体现本发明的直接k元n树网络可提供每个级的毛发因子,从而给出特征在于两个参数(k,n)和一个参数矢量bi(具有1≤bi≤n,bi≥0)的网络。这可用于均衡所有级的交换机数基,例如对于数基2k+b:b1=bn=b+k,b2≤i≤n=b,或者对于数基2k:b1=bn=k,b2≤i≤n=0。后者有效地提供了混合的直接/间接胖树网络。事实上,直接胖树网络本身适合于使用在混合的直接/间接网络形式中。例如在数据中心应用中,末端节点可以连接到板上、机箱和机架级上的每个交换机。这些级可以使用紧密集成的交换机(与末端节点CPU(中央处理单元)在相同芯片或包装上)。然而,为了缩放到多个机架,具有一个或多个传统的间接级的互连网络可以被添加。这些级可以使用传统的独立交换机。
混合网络的一个特定实施例在图12中示出。这是基于图11的直接网络,添加有从顶层向底层的环绕式链路。这降低了平均路径长度并均衡所有级上的交换机数基。许多其他的混合网络形式对于本领域技术人员将是显而易见的。
将理解的是,可对上述示例性实施例做出很多的变化和修改。例如,与具有向下/向上转弯的路由相反,分配给路由的虚拟通道在具有向上/向下转弯的路由的转弯交换机处改变。无论哪个转弯触发虚拟通道分配的改变,通常可在两个通道中的任一个上路由不含有这种转弯的路由。
虽然以上在逐个跳跃的基础上动态确定路径计算和通道分配,可以设想各种替代。路由可被动态计算以用于源路由实现,从而源节点计算然后在分组中以某种方式指定的整个路由。该计算还可确定和指定通道分配,或者这可由路由中的交换机动态确定。在其他实施例中,路由计算(如果希望的话,还有通道分配)可在网络操作之前离线完成,例如通过网络管理计算机。在这种情况下,网络中的交换机对的预先计算的结果可由一个或多个数据结构定义,例如路由表,其被提供给交换机用于在网络操作期间为特定分组选择路由。
可以对所述实施例作出许多其他的变化和修改而不脱离本发明范围。
Claims (20)
1.一种在胖树网络中的源交换机与目的地交换机之间路由数据分组的方法,所述方法包括:
为每个分组选择具有三个或更少的路由阶段的路由,使得所述路由遵循所述源交换机和目的地交换机之间的跨过所述网络的最短路径;
经过所述路由,从所述源交换机到目的地交换机在第一虚拟通道和第二虚拟通道中的一个上传送所述数据分组,除非所述路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯;以及
如果所述路由包括预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯,则经由所述路由,直到所述转弯发生的交换机处在所述第一虚拟通道上传送所述数据分组,并且从该交换机起在所述第二虚拟通道上传送所述数据分组。
2.如权利要求1所述的方法,其中所述预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯是向下到向上转弯。
3.如权利要求1或2所述的方法,包括:如果所述路由不包括预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯,则在所述第一虚拟通道上传送所述数据分组。
4.如前述任一权利要求所述的方法,包括为所述数据分组计算路由。
5.如权利要求4所述的方法,包括:通过为所述路由上的每个交换机确定用于下一跳跃的路由阶段的方向和在该方向上的所述路由上的下一交换机,为所述数据分组计算路由。
6.如权利要求5所述的方法,包括:依赖于所述方向,为所述路由上的每个交换机确定下一跳跃的虚拟通道。
7.如前述任一权利要求所述的方法,包括:使用预定路由数据,为所述数据分组选择路由,所述预定路由数据指示所述网络中的交换机对之间的预先计算的路由。
8.如权利要求4至6中任一项所述的方法,包括在所述网络的操作中为每个数据分组动态计算路由。
9.如权利要求8所述的方法,包括:在所述路径中的连续交换机处为每个数据分组逐个跳跃地计算路由。
10.一种用于在胖树网络中的源交换机与目的地交换机之间路由数据分组的装置,所述装置包括适于执行如权利要求1-9中任一项所述的方法的模块。
11.一种计算机实现的方法,用于确定在胖树网络中的源交换机与目的地交换机之间的数据分组的路由,所述方法包括:
对于所述源交换机和目的地交换机对之间的路由,选择具有三个或更少路由阶段的相应的路由,使得每个路由遵循所述源交换机和所述目的地交换机之间的跨过所述网络的最短路径;
分配从所述源交换机到所述目的地交换机的每个路由给第一虚拟通道和第二虚拟通道中的一个,除非该路由包括预定的、向下到向上转弯和向上到向下转弯中的一个转弯;以及
如果路由包括预定的、向下到向上转弯和向上到向下转弯中的所述一个转弯,则直到所述转弯发生的交换机处将所述路由分配给所述第一虚拟通道,并且从该交换机起将所述路由分配给所述第二虚拟通道。
12.如权利要求11所述的方法,包括:提供由所述网络中的交换机使用的路由数据,所述路由数据指示所述的路由中的每个路由及其虚拟通道分配。
13.一种用于确定胖树网络中的交换机之间的数据分组的路由的装置,所述装置包括适于执行如权利要求11或12所述的方法的模块。
14.一种胖树网络,包括以胖树拓扑连接的多个交换机,所述交换机适于实现如权利要求1至9中任一项所述的路由方法。
15.如权利要求14所述的间接胖树网络,其中所述胖树拓扑的最低级中的每个交换机连接到至少一个末端节点。
16.如权利要求14所述的直接胖树网络,其中所述胖树拓扑的多个级中的交换机每个都连接到至少一个末端节点。
17.如权利要求16所述的直接胖树网络,其中所述网络中的每个交换机都连接到至少一个末端节点。
18.一种网络,包括如权利要求16或17所述的至少一个直接胖树网络和至少一个互连网络。
19.一种基本上如前所述的胖树网络。
20.一种如权利要求14或19所述的胖树网络的交换机。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1222580.1A GB2508891A (en) | 2012-12-14 | 2012-12-14 | Deadlock-free routing of data packets in fat tree networks |
GB1222580.1 | 2012-12-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103873367A true CN103873367A (zh) | 2014-06-18 |
CN103873367B CN103873367B (zh) | 2017-05-03 |
Family
ID=47630743
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310627428.4A Active CN103873367B (zh) | 2012-12-14 | 2013-11-29 | 路由数据分组以及确定路由的方法和装置、胖树网络 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN103873367B (zh) |
DE (1) | DE102013111341A1 (zh) |
GB (1) | GB2508891A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106576055A (zh) * | 2014-09-24 | 2017-04-19 | 英特尔公司 | 用于改进高性能计算中的集体操作的性能的系统、方法和装置 |
CN108111410A (zh) * | 2016-11-24 | 2018-06-01 | 特拉维夫迈络思科技有限公司 | 具有最少数量虚拟缓冲区的无损多维笛卡尔拓扑结构中的无死锁路由 |
CN109691037A (zh) * | 2016-09-12 | 2019-04-26 | 华为技术有限公司 | 用于数据中心负载均衡的方法和系统 |
CN112350929A (zh) * | 2019-08-08 | 2021-02-09 | 特拉维夫迈络思科技有限公司 | 以最小数目虚拟通道在无损笛卡尔拓扑中产生无死锁路由 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11425027B2 (en) | 2020-11-01 | 2022-08-23 | Mellanox Technologies, Ltd. | Turn-based deadlock-free routing in a Cartesian topology |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1514591A (zh) * | 2002-12-31 | 2004-07-21 | 浪潮电子信息产业股份有限公司 | 高速、高性价比的多分支胖树网络拓扑结构 |
US7200117B2 (en) * | 2002-01-31 | 2007-04-03 | Sun Microsystems, Inc. | Method of optimizing network capacity and fault tolerance in deadlock-free routing |
WO2010097489A1 (es) * | 2009-02-24 | 2010-09-02 | Universidad de Alcalá de Henares | Procedimiento de encaminamiento de tramas de datos y puente de red |
CN102282810A (zh) * | 2009-01-19 | 2011-12-14 | 惠普开发有限公司 | 负载平衡 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8139490B2 (en) * | 2009-12-21 | 2012-03-20 | Google Inc. | Deadlock prevention in direct networks of arbitrary topology |
-
2012
- 2012-12-14 GB GB1222580.1A patent/GB2508891A/en not_active Withdrawn
-
2013
- 2013-10-15 DE DE102013111341.9A patent/DE102013111341A1/de not_active Ceased
- 2013-11-29 CN CN201310627428.4A patent/CN103873367B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7200117B2 (en) * | 2002-01-31 | 2007-04-03 | Sun Microsystems, Inc. | Method of optimizing network capacity and fault tolerance in deadlock-free routing |
CN1514591A (zh) * | 2002-12-31 | 2004-07-21 | 浪潮电子信息产业股份有限公司 | 高速、高性价比的多分支胖树网络拓扑结构 |
CN102282810A (zh) * | 2009-01-19 | 2011-12-14 | 惠普开发有限公司 | 负载平衡 |
WO2010097489A1 (es) * | 2009-02-24 | 2010-09-02 | Universidad de Alcalá de Henares | Procedimiento de encaminamiento de tramas de datos y puente de red |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106576055A (zh) * | 2014-09-24 | 2017-04-19 | 英特尔公司 | 用于改进高性能计算中的集体操作的性能的系统、方法和装置 |
CN106576055B (zh) * | 2014-09-24 | 2019-11-12 | 英特尔公司 | 用于改进高性能计算中的集体操作的性能的系统、方法和装置 |
CN109691037A (zh) * | 2016-09-12 | 2019-04-26 | 华为技术有限公司 | 用于数据中心负载均衡的方法和系统 |
US10715446B2 (en) | 2016-09-12 | 2020-07-14 | Huawei Technologies Co., Ltd. | Methods and systems for data center load balancing |
CN109691037B (zh) * | 2016-09-12 | 2021-01-15 | 华为技术有限公司 | 用于数据中心负载均衡的方法和系统 |
CN108111410A (zh) * | 2016-11-24 | 2018-06-01 | 特拉维夫迈络思科技有限公司 | 具有最少数量虚拟缓冲区的无损多维笛卡尔拓扑结构中的无死锁路由 |
CN112350929A (zh) * | 2019-08-08 | 2021-02-09 | 特拉维夫迈络思科技有限公司 | 以最小数目虚拟通道在无损笛卡尔拓扑中产生无死锁路由 |
CN112350929B (zh) * | 2019-08-08 | 2022-07-05 | 迈络思科技有限公司 | 以虚拟通道在拓扑中产生无死锁路由的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
GB201222580D0 (en) | 2013-01-30 |
CN103873367B (zh) | 2017-05-03 |
DE102013111341A1 (de) | 2014-06-18 |
GB2508891A (en) | 2014-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9294385B2 (en) | Deadlock-free routing in fat tree networks | |
US11411890B2 (en) | System and method for supporting efficient load-balancing in a high performance computing (HPC) environment | |
KR102205882B1 (ko) | 팻-트리 라우팅에 기반하여 별개의 인피니밴드 서브넷들 사이에서 트래픽을 라우팅하기 위한 시스템 및 방법 | |
Prisacari et al. | Bandwidth-optimal all-to-all exchanges in fat tree networks | |
US9825844B2 (en) | Network topology of hierarchical ring with recursive shortcuts | |
CN111130858B (zh) | 一种sd-wan场景下的动态多目标虚拟网络映射方法 | |
CN103873367A (zh) | 胖树网络中的无死锁路由 | |
Wang et al. | NovaCube: A low latency Torus-based network architecture for data centers | |
CN102780628B (zh) | 面向多核微处理器的片上互连网络路由方法 | |
US20160239356A1 (en) | All-to-all message exchange in parallel computing systems | |
CN103404090A (zh) | 应用于在网络中转发数据时用于载荷散布的表查找方法的可变大小表构造的改进系统和方法 | |
US10237205B2 (en) | Switch routing algorithms | |
Belabed et al. | Striking a balance between traffic engineering and energy efficiency in virtual machine placement | |
CN115277429B (zh) | 基于灵活以太网的电力通信业务资源分配方法及装置 | |
CN109861925A (zh) | 数据传输方法、相关装置及网络 | |
Bogdanski | Optimized routing for fat-tree topologies | |
US10284457B2 (en) | System and method for virtual link trunking | |
JP6526156B2 (ja) | ネットワークトポロジーシステム並びにトポロジー及びそのルーティングテーブルの構築方法 | |
US9906435B2 (en) | Method and apparatus for determining intermediate routing node and system | |
US9491102B1 (en) | Traffic load balancing in a multi-connect topology | |
Nasirian et al. | Platonica: an efficient and high-performance dual-centric data center network architecture | |
Kiriha et al. | Survey on data center networking technologies | |
Maglione-Mathey et al. | Leveraging infiniband controller to configure deadlock-free routing engines for dragonflies | |
Belabed et al. | Impact of virtual bridging on virtual machine placement in data center networking | |
CN103916322A (zh) | 定义软件定义网络的网络元件的查找系统的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |