多路径网络中路由的分布式选择的路由生成方法和系统的制作方法

文档序号:7962569
专利名称:多路径网络中路由的分布式选择的路由生成方法和系统的制作方法
技术领域
本发明涉及具有共享通信架构的通信网络和多处理系统或网络。更具体地说,本发明涉及便于多路径网络的节点之间信息的传送的有效路由生成技术,以及网络内路由的分布式生成。
背景技术
并行计算机系统已证明是迄今实现超出常规计算体系结构的能力的大大增加的处理速度的有利解决方案。随着诸如IBMRS/6000SP1TM和IBMRS/6000SP2TM之类大型并行处理机的出现,可有效地管理大量的数据,并且可快速进行复杂计算(IBM和RS/6000是本申请的受让人,Old Orchard Road,Armonk,N.Y.的国际商用机器公司的注册商标)。
典型的大型并行处理系统可包括相当大量的,通常几百个甚至数千个独立但是相当简单的基于微处理器的节点,所述节点通过包含高速分级交换网络的通信架构互连。通过网络在其间能够进行通信的节点间路由分组形式的消息。作为一个例子,节点可包含微处理器和相关的配套电路,例如随机存取存储器(RAM),只读存储器(ROM)和输入/输出(I/O)电路,输入/输出(I/O)电路还包括具有使节点能够通过网络通信的接口的通信子系统。
在目前存在的各种可用形式的分组网络中,最传统的体系结构多半实现较小的交叉点交换机的多级互连布置,每个交换机一般是一个N端口双向路由器,N通常为4或8,N端口中的每个端口通过交叉点矩阵内部互连。为此,该交换机可被认为是8端口路由器交换机。在这样的网络中,从网络的一侧(所谓的输入端)开始的一级中的每个交换机通过唯一的路径(一般是字节宽的物理连接)与下一级中的交换机连接,依次类推,直到最后一级到达网络的相对侧(所谓的输出端)为止。一般可以单集成电路(即“交换机芯片”)的形式得到包括在该网络中的双向路由器交换机,所述交换机芯片在操作上是无阻塞的,因此是流行的设计选择。在1996年8月31日颁发的P.Hochschild等的美国专利No.5546391,“A Central Shared Queue Based TimeMultiplexed Packet Switch With Deadlock Avoidance”中描述了这样的交换机芯片。
交换网络一般包含组织成互连的两级的许多交换机芯片;一个四交换机芯片输入级和后面的一个四交换机芯片输出级,所有这八个交换机芯片包括在单一交换板上。就这样的布置来说,在输入级中的不同交换机芯片上的任意两个端口间传递的消息会首先通过包含源或输入端口的输入级中的交换机芯片被路由到构成输出级的四个交换机中的任意一个,随后通过输出级中的交换机芯片,消息会被发送回到(即消息分组会倒转其方向)包括消息的目的地(输出)端口的输入级中的交换机芯片。另一方面,在包括多个这样的交换板的较大系统中,消息可通过交换板的输入级中的交换机芯片从处理节点路由到交换板的输出级中的交换机芯片,并从输出级交换机芯片路由到另一互连的交换板(随后立刻路由到输入级中的交换机芯片)。在例证的交换板中,直接与节点链接的交换机芯片被称为节点交换机芯片(NSC),直接与其它交换板连接的那些交换机芯片被称为链路交换机芯片(LSC)。
上述这种交换板可简单地互连多个节点,另一方面,在较大的系统中,多个互连的交换板可使它们的输入级与节点连接,使它们的输出级与其它交换板连接,这些交换板被称为节点交换板(NSB)。更复杂的交换网络可包含插入多个NSB之间并且互连所述多个NSB的中间级交换板。这些中间交换板(ISB)充当在与第一和第二NSB中的交换机耦接的节点间路由消息分组的管道。
在美国专利No.6021442;5884090;5812549;5453978和5355364中进一步描述了交换网络,这些专利均在此整体引为参考。
任何交换网络的操作方面的一个考虑因素是应选择用于移动消息的路由,以致所需的带宽可以用于通信。带宽损耗的一个原因是源-目的地对间的路线的不平衡分配和它们间的竞争。虽然不可能避免所有通信模式(traffic pattern)的竞争,不过目标应是降低竞争。通过一组全局均衡的路由的生成,可部分实现该目标。路由生成的复杂性取决于网络的类型和规模,以及在任意源-目的地对之间使用的路由的数目。各种技术已被用于在多路径网络中生成路由。虽然一些技术动态生成路由,不过其它技术根据网络的连通性产生静态路由。动态方法通常相对于通信模式的变化自动调整,并且往往会尽可能实现平衡的通信流。另一方面,静态方法是预先计算的,在网络的正常操作期间并不改变。
虽然预先计算看起来更简单,但是产生对各种通信模式最佳的一组可接受路由的负担主要取决于使用的算法。一般来说,路由的全局均衡由这些算法来解决,而由于所涉及的复杂性的缘故,局部均衡的问题未被注意到。
作为另一种考虑因素,多数(即使不是全部)现有路由生成技术,包括预先计算的路由方法是集中的路由生成技术(例如,在网络的一个处理节点上实现),一般不可按照分布式处理来实现例如,国际商用机器公司已发布高性能交换机(HPS),在“An Introduction to the NewIBM eServer pSeriesHigh Performance Switch”,SG24-6978-00,2003年12月(在此整体引为参考)中描述了它的一个实施例。目前可用的HPS采用集中式路由生成技术,其中网络被分成不同大小的积木块类型。不同大小的积木块类型包括网络的不同数目的交换点。从单一的处理节点,通过考虑网络中的每个源节点-目的地节点对,识别源节点-目的地节点对所属的最小积木块类型,并从该积木块类型的可用路由中为该源节点-目的地节点对选择至少一个路由,静态生成路由。尽管集中式实现效率较高,但是当需要在网络的单个处理节点上进行路由生成时,该技术非常低效。以分布方式实现该技术的尝试要求处理节点按某种方式排列,并且在任何特定的处理节点上,需要从列表中的第一处理节点开始生成路由,直到当前的处理节点被处理为止。这显然需要额外的计算时间以及空间。
从而,本领域需要另外的路由生成技术,尤其需要支持源节点-目的地节点对之间的多个路径的网络的分布式路由生成技术。

发明内容
通过提供生成路由,以便于互连节点的网络中数据分组的路由的分布式方法,克服现有技术的缺点,并提供额外的优点,在互连节点的网络中,节点由链路和交换点互连。网络包括不同大小的积木块(building block)类型,每个积木块类型包括网络的至少一个节点和网络的至少一个交换机芯片。不同大小的积木块类型包括网络的不同数目的交换机芯片。该方法包括在实现节点识别网络的节点所属的积木块类型,并且对于每个积木块类型(i)选择该积木块类型内不属于较小的积木块类型的目的地芯片;(ii)根据扇形展开条件(fanningcondition),选择到目的地芯片的至少一个目的地节点的至少一个路由;和(iii)对积木块类型内的每个目的地芯片重复这两个选择步骤。
在增强的方面,所述选择(ii)包括根据扇形展开条件,选择到目的地芯片上的所有目的地节点的所需数目的路由。此外,该分布式方法在网络的多个源节点中的每个节点独立实现。对于每个积木块类型,该方法还可包括创建积木块类型的网络子图,其中选择(ii)可包括从根据网络子图识别的积木块类型内的各对交换机芯片间的可用路由中,选择到至少一个目的地节点的至少一个路由。此外,选择(ii)可包括根据扇形展开条件,选择源节点和目的地芯片的至少一个目的地节点之间的至少一个最短路由。扇形展开条件可包括选择的路由从源节点基本均匀地扇出(fan out)到网络的中央,并从网络的中央扇入(fanin)到目的地节点;和实现经过位于网络的相同层次的链路的路由的全局均衡。
这里还描述和要求保护与上面总结的方法对应的系统和计算机程序产品。
此外,通过本发明的技术实现了另外的特征和优点。这里详细说明了本发明的其它实施例和方面,这些其它实施例和方面被视为要求保护的发明的一部分。


本发明的主题在说明书完结后的权利要求中特别指出和明确要求保护。结合附图,根据下面的详细说明,本发明的上述和其它目的、特征和优点将是显而易见的,其中图1描述具有八个交换机芯片的交换板的一个实施例,它可被用在将利用根据本发明的一个方面的路由生成的通信网络中;图2描述采用根据本发明的一个方面的扇形展开路由生成技术的128节点系统中的交换板的一种逻辑布局;图3描述图的128节点系统布局,表示节点交换板1(NSB1)和节点交换板4(NSB4)之间的链路连接;图4描述图3的源组A的节点和目的地组B的节点之间的16条可能路径;图5描述图2的128节点系统布局,表示节点交换板1(NSB1)和节点交换板5(NSB5)之间的链路连接;图6描述图5的网络的抽象化,表示源组A和目的地组C的节点之间的64条可能路径;图7描述利用常规的路由算法,例如在上面引入的美国专利中描述的常规路由算法,在源组A和目的地组C的节点间选择的16条不分离的路由的一个例子;图8描述利用根据本发明的一个方面的扇形展开路由生成技术,在源组A和目的地组C的节点间选择的16条分离的路由的一个例子;图9是根据本发明的一个方面的扇形展开路由生成技术的一个流程图实施例;图10A和10B是在IBM SP系统内实现的根据本发明的一个方面的扇形展开路由生成技术的一个流程图实施例;图11是根据本发明的一个方面的图10A和10B的路由生成技术的步骤4的一个实施例的流程图;图12根据本发明的一个方面,描述具有八个交换机芯片的交换板的一个实施例,它可用在通信网络中,从而利用这里公开的分布式分治路由生成,其中通信网络的一种积木块类型被识别;图13根据本发明的一个方面,描述图12的交换板,其中通信网络的第二种不同大小的积木块类型被识别;图14根据本发明的一个方面,描述其中识别多个另外的不同大小的积木块类型,供分布式分治路由生成之用的通信网络的一个实施例;图15是根据本发明的一个方面,可在网络的多个处理节点分布式实现的分治路由生成技术的一个流程图实施例;图16是根据本发明的一个方面,用于识别通信网络布局中不同大小的积木块类型的一个流程图实施例;图17根据本发明的一个方面,描述图14的通信网络布局的一部分,表示不同节点交换板上的源芯片-目的地芯片对之间的积木块类型内的链路连接,源芯片A和目的地芯片B间的16条可能路径示于图4中;图18根据本发明的一个方面,描述图14的通信网络布局的源交换机芯片C和目的地交换机芯片D之间的不同大小的积木块类型内的链路连接的另一例子;图19根据本发明的一个方面,描述图18的源芯片C和目的地芯片D对之间的32条可用路由。
具体实施例方式
一般来说,这里提供的是用于在具有源和目的地间的多条路径的网络中产生均衡路由的各种路由生成方法。下面描述一种应用中,双向多级分组交换网络用扇形展开路由生成技术。具体地说,这里在大型并行处理系统的上下文,尤其在Armonk,New York的国际商用机器(IBM)制造的Scalable Parallel Processing Systems的IBMRS/6000SPTM和IBM eServer pSeries系列内采用的高性能通信网络内举例说明本发明的各个方面。
根据本发明的一个方面,这里给出的扇形展开路由生成技术规定选择的路由将从源均匀扇出,并均匀扇入目的地,其中在网络的介入链路上保持路由加载的全局和局部均衡。不管网络中的交叉点是否与源和/或目的地连接,或者源和目的地是否位于复杂网络的外围,这种一般原理都适用。路由的这种分布有助于避免多数通信模式的竞争,有助于提供常规网络中系统的统一认识。
假定在网络中的每个源-目的地对间将产生n条路由,那么这里描述的扇形展开路由生成技术规定在从源节点到网络中的下一组交叉点的可用链路上将以n种方式发生扇出。类似地,均匀地从通向目的地节点的最后一组交叉点发生到目的地节点的扇入。该过程持续到路由在网络的中心相遇为止。当存在偶数的中继段(hop)时,路由将在中间的一组交叉点相遇,或者当在源节点和目的地节点间存在奇数中继段时,直到它们到达可被直接链接,从而完成路由的相邻的多组交叉点为止。该过程适用于每个源-目的地对,导致网络中的链路被路由均匀使用。选择中间交叉点的一种考虑是使路由上的中继段的数目最小,以及获得互斥路由的低计数和访问交叉点的低均匀概率,同时保持扇形展开条件。
如上简要所述,下面结合多级分组交换网络举例说明本发明的扇形展开路由生成技术,并对照用于相同网络的公知的路由生成方法进行比较。所分析的网络是在IBM的SPTM系统中采用的交换网络。SP系统中的节点由双向多级网络互连。每个节点以分组的形式发送消息和从其它节点接收消息。源节点将路由信息包含到分组报头中,以致交换部件能够沿着正确的路径把分组转发到目的地。路由表生成器(RTG)实现计算所有源-目的地对间的多条路径(标准为4)的IBMSP2TM方法。按照惯例,RTG以宽度优先搜索(breadth first search)算法为基础。
在进一步说明之前,定义说明中采用的一些术语SP系统对于本文献来说,IBM的SPTM系统一般意味着由交换机架构互连的一组节点。
节点术语节点指的是例如通过交换机架构在它们间通信的处理器。
N-way系统SP系统被分类为N-way系统,其中N是配置可支持的节点的最大数目。
交换机架构交换机架构是通过通信链路互连的一组交换部件或交换机芯片。不是交换机架构上的所有交换机芯片都与节点连接。
交换机芯片交换机芯片是具有双向端口的8端口纵横(cross-bar)设备,它能够把进入8个输入信道任意之一的分组路由到8个输出信道任意之一。
交换板物理上,交换板是交换机架构的基本单元。在一个例子中,它包含8个交换机芯片。根据系统的配置,一定数目的交换板被链接在一起,形成交换机架构。不是系统中的所有交换板都可与节点直接链接。
链路术语链路用于表示相同交换板或者不同交换板上的两个交换机芯片间的连接。
节点交换板直接与节点链接的交换板被称为节点交换板(NSB)。多达16个节点可与一个NSB链接。
中间交换板链接大型SP系统中的NSB的交换板被称为中间交换板(ISB)。节点不能直接与ISB链接。具有ISB的系统一般包含4、8或16个ISB。通常,一个ISB也可被看作一个中间级。
路由路由是系统中的任意一对节点之间的路径,根据需要,包括交换机芯片和链路。
全局均衡如果相同数目或者基本相同数目的路由通过位于网络的相同层次的链路,那么系统是全局均衡的。即,全局均衡的网络是其中位于网络的相同层次的链路传送相同的静态负载的网络。
局部均衡这里使用的局部均衡指的是其路由通过网络的单个链路的源-目的地对的扩展。局部均衡指的是在其路由能够通过某一链路的完整一组源-目的地对中,其路由通过某一链路的源-目的地对的基本一致的选择。
积木块类型这里使用的积木块类型是在指定的网络拓扑内出现的网络组件的唯一的基本积木块。网络可具有一个或多个不同大小的积木块类型,每个积木块类型可具有一个或多个成员。每个积木块类型具有网络的至少一个节点和网络的至少一个交换点,其中不同大小的积木块类型具有网络的不同数目的交换点。图12-14图解说明了一种网络布局的四种不同大小的积木块类型。
图1中描述了交换板100的一个实施例。该交换板包含8个交换机芯片0-7。作为一个例子,芯片4-7被假定为与节点链接,同时标记了四个节点(即N1-N4)。由于交换板100被假定与节点连接,因此交换板构成节点交换板或NSB。
图2描述了128节点系统200中的交换反的逻辑布局的一个实施例。在系统200内,与节点连接的交换板是节点交换板(标记为NSB1-NSB8),而链接NSB的交换板是中间交换板(标记为ISB1-ISB4)。NSB1-NSB8的每个输出端实际上能够与四个节点连接。
图3描述图2的128节点系统,表示了NSB1和NSB4之间的链路连接。图4是图3中源组A上的节点和目的地组B上的节点之间的16条路径的推断。这些路径被标记为1-16,每个圆代表交换网络内的一个交换机芯片或交换点。如图所示,这16条路径在中心分离。从而,出自A上的每个源节点的路由将从出自A的一条不同链路开始,并在一条完全分离的路径上到达B上的目的地节点。当在组A上的任意源节点和组B上的任意目的地节点间产生多条路由时,产生多达四条分离的路由。源组A和目的地组B间的所有路由均匀分布在这16条路径上。
图5描述图2的128节点布局,表示NSB1和NSB5之间的链路连接。图6表示图5的抽象化,表示源组A上的一个节点和目的地组C上的一个节点之间的64条可能路径。由于交换板,即中间交换板上的各组四个交换机芯片之间的交叉连接,事实上图6的第三列中的16个交换机芯片均具有到达下一列的四条途径,因此得到数目64。注意图6中有圆圈的交换点均代表交换网络中的一个交换机芯片。源-目的地对A-C不同于源-目的地对A-B,因为在网络的中央存在交叉连接。
由于局部均衡不是IBM的SP2TM路由方案的标准,因此SP2方案选择图7中所示的16条路径把消息从源A上的节点路由到目的地C上的节点。如图所示,在源组A上的节点和目的地组C上的节点之间存在利用常规的SP2风格路由算法选择的16条不分离的路径。这些不分离的路径被发现在到组C的倒数第二级造成竞争。在本例中,从A到C的所有路径通过一条链路到达C。
本质上,图7图解说明的是如果作为选择路由的一个条件,均匀的扩展或局部均衡未被解决,那么可能得出和由目前的SP2TM方案产生的图7的选择类似的选择。从而,在一个方面,本发明具有要求在具有相同起始链路和终止链路的各组源节点和目的地节点间经过的路由从源节点均匀扇出,并均匀扇入目的地节点。这样,实现局部均衡。
图8描述了采用本发明的扇形展开路由生成技术,所得到的路由的分布的一个实施例。如图8中所示,该技术在网络中央的分离路径上展开路由,并使用到达C的所有四条路径。
总结起来,IBM的SP2TM路由生成方案确保位于网络的相同层次的链路上,路由的全局均衡。例如,NSB上的单板(onboard)链路在网络的一个层次上,而NSB-ISB链路在网络的一个不同层次上。通过确保相同总数的路由通过位于相同层次的链路,实现全局均衡。目前的SP方案并不关心这些集合路由的源-目的地扩展。从而,这种实现方法产生在一些节点组之间重叠并且导致如图7中所示的网络中的竞争的路由。
根据本发明的一个方面,通过要求不同交换机芯片上的节点之间的路由尽可能地分离,确保通过链路的路由的均匀展开或者扇形展开,或者说局部均衡。这意味着路由从源芯片扇出一直到网络的中央,随后扇入目的地芯片。如图8中所示,这样的散布确保工作期间的最小竞争。
IBM的SP2TM系统的路由表生成器进行宽度优先搜索,以分配均衡链路上的全局权重的路由。SP方案建立在每个源节点路由的生成树(spanning tree),随后使用该生成树来定义源节点和每个其它目的地节点间最短路径的所需数目(标准为4)。为了均衡链路上的负载,根据其出站链路的权重,交换机芯片上的可用交换端口被区分优先次序,为权重较小的链路分配较高的优先级。当两个或更多的出站链路具有相同的权重时,端口号最小的端口接受优于其它链路的优先级。
相反,本发明的扇形展开路由生成技术可按照许多方式来实现。一种方法涉及创建从每个源交换机芯片和每个目的地交换机芯片扇出的路由,随后通过介入交换机芯片结合所述路由,同时保持链路权重的全局均衡。一旦在源芯片和目的地芯片扇形展开路由,那么系统的连通性将确保连接路由的两端的最短路径将是分离的,从而实现局部均衡。
本发明的另一种实现是修改目前的IBM SP2TM路由生成方案,以便对中间交换机芯片施加选择出站链路的恰当的优先化规则,以致满足扇形展开条件。这种方案中只需要处理中间交换机芯片的原因是因为在起始交换机芯片,扇形展开条件由目前的SP2方案满足。SP2方案随后选择四个ISB之一来选择在网络的不同侧的一对芯片,例如A和C之间的路由。在ISB内的16条路径中,SP2方案选择退出该ISB上的相同交换机芯片的四条路径。存在图7的路径1-4或5-8或9-12或13-16。
通过对ISB上的第一级芯片的路由选择应用优先化条件,本发明的扇形展开生成技术选择经过四个不同的ISB芯片进入目的地NSB的四条路径,如图8中所示。更具体地说,根据本发明的一个方面,对于芯片对A和C之间的路由,仍然选择四个ISB之一。不同在于在ISB内选择一组四条路径,以致它们是分离的。为相同的源交换板上的不同源芯片A选择不同的ISB。注意假定构成源列表,以致按照顺序选择节点,例如第一个交换机芯片上的所有四个节点,随后下一交换机芯片上的所有四个节点,依次类推。源交换板也被顺序处理。本发明的扇形展开路由生成技术确保相同交换机芯片上的目的地被顺序推送,以致它们被顺序处理。另外,不同的目的地交换机芯片被顺序处理。本质上,共享相同源链路的一组四个节点被相继处理。在源节点的处理期间,共享相同目的地链路的一组四个目的地节点被相继处理。参考图9-11的处理将更好地理解这一点。同样,虽然128节点SP网络被用于举例说明,不过这里公开的原理更普遍,适用于各种网络。
图9描述根据本发明的一个方面的扇形展开路由生成技术900的概述。当开始处理910时,通过读入布局信息,包括任何路由规范920,获得网络连接信息。该信息可在文件中提供或者通过数据结构传递。选择930具有链路的共同起点和终点组的源-目的地(S-D)组,随后在该组内的每个S-D对间选择最短的路由,以致路由从交换机芯片上的源均匀地扇出到网络的中央,随后集中到目的地交换机芯片,同时保持通过位于网络的相同层次的链路的路由的全局均衡940。选择的路由被保存,全局链路利用数据被更新950。处理随后确定所有S-D组是否已被处理960,并继续循环以选择下一S-D组,直到所有S-D组已被处理为止,之后处理退出该例程970。
根据本发明的一个方面,在图10A和10B中给出了扇形展开路由生成技术对SP网络的一种应用。通过读入布局信息,包括任何路由限制,开始1010该处理1000。SP网络具有关于某些配置的一些路由限制。随后形成源节点的列表1020(步骤1)。之后,通过向网络中的所有链路分配为0的权重值,初始化全局均衡数据1030(步骤2)。从源列表中选择源节点,并形成该源节点的目的地列表1040(步骤3)。
随后探索该网络,直到到达一个目的地节点为止。所述探索包括根据所有NSB芯片的链路的最小全局权重,区分每一级的输出端口的优先次序,和在根据ISB芯片的链路的全局权重区分优先次序之前,依据等级,根据下一级的利用率对输出端口排序1050(步骤4)。下面参考图11进一步说明步骤4的详细过程实现。
继续参见图10B,处理沿着探索的路径建立从源到目的地的路由,并从目的地列表中除去该目的地1060(步骤5)。在处理了当前目的地之后,处理从目的地列表中选择下一目的地1070,并返回以便为新的S-D对探索网络。一旦对于选择的源节点来说,目的地列表为空,那么从源列表中除去该源节点1080(步骤6),处理确定源列表是否为空。如果否,那么在步骤3选择新的源节点。否则,处理结束,退出该例程1095。
图11提供图10A和10B的扇形展开路由生成技术的步骤4的其它实现细节。利用通过保持在探索网络时遇到的交换机芯片和节点的先进先出(FIFO)列表而实现的宽度优先搜索,可实现所述探索。首先,源节点被推送到FIFO中1110。该第一项也将是从FIFO除去的第一项。随后询问该列表是节点,NSB芯片还是ISB芯片1130。如果是节点或NSB芯片,那么处理根据与本级的邻居(即输出端口)连接的链路的最小全局权重,区分这些端口的优先次序。由于来自FIFO的列表包含节点,那么判定1130指示该节点只有一个邻居,所述邻居是与之连接的交换机芯片。该交换机芯片被推入FIFO中,因为它还未被处理1170。源也是它本身的目的地;从而产生它本身的路由。目的地列表还不为空1180,从而处理返回。与该源节点连接的交换机芯片从FIFO中被除去。还未向出自该交换机芯片的链路分配任何权重,从而从端口0上的链路开始到端口7上的链路区分它们的优先次序。除源节点外的全部将都被推入FIFO中。源节点不被推入FIFO中,因为它已被处理。该项目,即交换机芯片不是目的地。从而算法返回,从FIFO中移除下一项目。每当从FIFO弹出一个节点时,其邻居理应已被处理。探索信息被用于形成源节点和目的地节点间的路由。
如果除去的项目是ISB芯片,那么采用邻居的等级排序,其中较少被访问的端口具有较高的等级1150。如果一个以上的邻居具有相同的等级,那么对等级重新排序,其链路的全局权重最低的端口获得最高的优先级1160。从具有最高优先级的那个邻居开始,把未在FIFO中的所有邻居加入到FIFO中。
在访问在另一源节点的处理期间已被访问的NSB芯片的时候,某些输出链路可能具有关于它们的权重。如果这样,那么按照对下一选择来说,具有最小权重的输出链路将具有较高优先级的方式对输出链路排序。如果两个链路具有相同的权重,那么具有较小端口标识符的一个链路将获得较高的优先级。易于看出在实现本发明的技术的时候,将按顺序循环使用交换机上出自源交换机芯片的输出链路,由此满足扇形展开条件。NSB上的第二级交换机芯片的情况也是一样的。在处理目的地一侧的NSB芯片时,除了按照某一顺序到达目的地之外,区分优先次序不具有任何影响。这是因为从网络的中央到特定目的地的路由没有任何路径选择。
如果对ISB芯片使用相同的优先化方法,那么存在路由集中在相同链路上的可能。图7表示在芯片A上的源和芯片C上的目的地之间,将由IBM的目前的SP2TM算法选择的16条路径。如果源芯片标识符为4,那么它将选择路径1、2、3和4来到达任意目的地芯片4-7上的目的地。同样地,源芯片5会选择路径5-8,源芯片6会选择路径9-12,源芯片7会选择路径13-16。如果需要多个路由,那么对于每条所需的路径,这些会被改变次序。当为系统生成所有路由时,将存在链路的权重的全局均衡。
图8描述利用根据本发明的一个方面的扇形展开路由生成技术选择的16条路径。在处理不同NSB上的源芯片时,图9-11的扇形展开方法的等级排序和优先化条件将选择ISB上的两级ISB芯片之间不同的一组分离链路,并确保ISB上的所有16个链路被用于提供该层次的链路的全局均衡。由于避免了在输出ISB芯片上的集中,因此扇形展开条件被满足。
上面描述的集中式扇形展开路由生成方法整体致力于通信网络,同时仍然包括路由的全局和局部均衡的标准。从而,对于在网络的处理节点(主处理器)的分布式路由生成来说,该方法不易于实现。例如,如果上述集中式路由生成方法将在网络内的多个处理节点上实现,那么处理节点需要按照一定的方式排序。在任何特定节点上,需要从列表中的第一处理节点开始生成路由,直到当前处理节点被处理为止。这会需要必需的计算的额外时间以及空间。从而,下面参考图12-19公开的是本发明的另一方面,其中采用分布式分治法来增强路由生成过程,并扩展上面描述的扇形展开路由生成技术。
一般来说,下面公开的分布式分治法利用了指定网络布局的规则性,所述规则性使网络可被分解成一组分级按大小排列的积木块类型。在指定的积木块类型中,仅仅计算一次每个积木块类型内的交换机芯片间的可用路由(即路径)就足够了。积木块类型内的交换机芯片间的路径随后可被用于选择类似积木块元件上的对应交换点间的一个或多个路由。这里公开的分布式分治路由生成方法允许处理节点(即网络的主处理器)通过建立到处理节点所属的相应积木块类型中的其它目的地节点的可用路径,产生路由,随后选择积木块类型内的路由,以致上面描述的扇形展开技术的全局和局部均衡条件被满足。提出的分治法特别适合于分布式路由生成。
同样,这里给出的说明假定作为网络的基本网络积木块,在IBMeServer pSeries群集中存在IBM高性能交换机(HPS),以解释分治路由生成方法及其实现。
通信网络的拓扑使网络可被逻辑分割成为4的乘方,即4、16、4、256等的组件的同样积木块类型或组。这是可能的,因为为系统的物理积木块的交换板按照规则的模式被连接,以形成较大的交换机架构。如图12中所示的交换板100包括两组四个8端口双向交换机芯片,它们之间存在完美的混洗互连。交换板100具有32个端口,它们可利用网络与源节点或目的地节点连接,或者与较大网络的其它交换板连接。从而,交换机芯片1200是网络的最小积木块类型,较大的积木块类型,例如交换板1300(图13),或者多组交换板1400和1500(图14)可被识别。如图13和14中所示,积木块类型1300是一组16个处理节点,而积木块1400是一组64个处理节点,积木块类型1450是一组256个处理节点。本质上,图14的网络可被看作互连数目以4的乘方增长的许多节点的不同大小的积木块类型的分级形成。
对于理想的(完美的)布局,任意积木块元件内的路由将与相同类型的另一积木块元件内的路由相同。虽然在相同交换机芯片上的节点间只存在一条唯一的路由,但是在16个处理节点的积木块内的节点间存在4条可能的路由,在64个处理节点的积木块内的节点间存在16条可能的路由,依次类推。尽管源节点-目的地节点对间的可能路由的数目随着该节点对所属的积木块类型的大小而增大,不过只选择n条截然不同的路由(通常n=4)(如果可用的话)。当n条以上的路由可用时,选择n条路由以便提供积木块类型内的所有链路上路由的静态均衡。从而,能够产生指定大小的一个积木块元件内的路由,随后把这些路由用于该类型的其它积木块元件。
在处理节点的数目不是16的乘方的网络中,可在网络的不同的最大尺寸的积木块中的节点间产生路由。通过每次考虑一对积木块类型,并为积木块类型间的每个源节点-目的地节点对选择n条路径,可选择这些路由,同时保持链路上的负载均衡。除了全局均衡之外,该方法将提供链路上的负载的更一致的局部均衡。
重新说明,这里提出的分布式分治法把网络逻辑分割成不同大小的积木块类型。每个积木块类型包括网络的至少一个节点和该节点所连接的至少一个交换机芯片。网络内的一个节点(例如源节点)被选择,该源节点所属的每个积木块类型被识别。创建该节点所属的每个积木块类型的网络子图。对于该节点所属的每个积木块类型,选择该积木块类型内的目的地芯片,以致该芯片不是源节点的任意较小的积木块类型的一部分,并识别该节点和目的地芯片的所有目的地节点之间的路由。随后从可用路由中选择一条或多条路由,而不需要了解经过所选路由的路径中的链路的任何其它路由。选择路由以确保该路由把链路加入其路径中,以致对于选择的积木块内的所有源-目的地对,它保持每个链路(在选择的路由的路径中)上的负载的均衡。
有利的是,这里提出的原理可在网络的多个处理节点实现,每个处理节点不需要有关网络的其它节点的路由的知识。当需要所述知识时,和集中式方法中一样,算法的量级变成O(N2),而这里描述的分布式路由生成技术把算法的量级降低到O(N),即(量级N)。
图15是根据本发明的一个方面,分布式路由生成技术的计算机实现逻辑的一个流程图实施例。处理1500从识别源节点的积木块类型(即处理节点进行路由生成算法)1510开始。选择积木块类型1520,创建该积木块类型的网络子图1530。所述逻辑随后选择该积木块类型内的不属于该积木块类型内的较小积木块类型的目的地芯片1540,并根据扇形展开条件,选择到目的地芯片上的所有目的地节点的所需数目的路由。所述逻辑确定该积木块内的所有目的地芯片是否已被处理1560,如果否,那么对每个未处理的目的地芯片重复步骤1540和1550。一旦选择的积木块类型已被处理,那么所述逻辑确定该处理节点的所有积木块类型是否已被处理1570,如果否,那么对每个未处理的积木块类型重复步骤1520-156。一旦所有的积木块已被处理,那么完成该处理节点的路由生成1580。
图16描述识别当前网络布局内的积木块类型的一个流程图实施例。该处理1600从读入为网络布局提供的连通信息开始1610。识别网络的最小的积木块类型1620,逻辑确定该积木块类型是否包含在较大的积木块类型内1630。如果否,那么当前网络布局的所有积木块类型已被识别,处理结束1650。假定该积木块类型包含在较大的积木块类型中,那么处理识别网络的下一较大的积木块类型,再次询问该积木块类型是否包含在一个更大的积木块类型中1630。处理继续该循环,直到网络布局内的所有积木块类型已被识别为止。
图17描述包含64个节点的积木块类型,即图14的积木块类型1400的网络子图的例子。在本例中,表示了网络子图和图14中描述的各个交换板上的交换机芯片A和交换机芯片B之间的可用路由。图16的网络子图的交换机芯片A和B之间的16条可用路由或路径等同于图4中描述的16条可能路径。
图18描述图14中描述的最大组,即256个节点的一组的积木块元件的网络子图的另一例子,其中图14的交换机芯片C和交换机芯片D之间的可用路由被识别。在图19中,表示了图18的网络子图中,所选交换机芯片C和D之间的32条可用路由。
虽然存在可选择路由的许多方法,不过当和IBM的eServerpSeries群集系统一起使用时,上面描述的图1-11的路由生成技术被认为特别有益。上述技术的利用确保路由在网络中的链路上的良好的局部和全局均衡。该组条件的使用使分治法适合于分布式实现,该方法在所有节点上运行,每个节点计算它自己的路由。当这样使用时,扇形展开条件确保每个节点不需要为其它节点产生的路由的网络使用信息。
下面陈述满足上述扇形展开条件的路由选择的一个例证。提供该例证只是作为一个例子。对该例证,定义下述变量route_index=计算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=与源节点相关的最小块和至少一个目的地节点之间的source_destination对的总数;src_id=源标识符;dest_id=目的地标识符;smallest_block=最小块的大小;
next_block=当前块内的最大块的大小;和avail_paths=可用路径的数目。
通过向可用路径分配唯一的索引,并根据上面陈述的变量计算所需的索引,可从可用路径中选择从源节点到目的地节点的路由。节点可被赋予从0~N-1的标识符,其中N是网络的大小。“fan factor”被选为源芯片上的节点的数目与目的地芯片上的节点的数目的乘积,以致在芯片对的每个源-目的地对之间可分配一条唯一的路由(如果可用的话)。网络的规则性确保可用路径的数目为fan factor的倍数或约数。当可用路径是fan factor的约数时,每个路径被分配给多条路由。当可用路径是fan factor的倍数时,通过把恰当的偏移量设为计算的路由索引,在目的地中均匀分配路径。可利用计算等式计算路由索引if multiplieity≤1 then route_index被计算为route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else该值为偏移量,以得到route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1对于图14的例证网络,就图12-14中所示的积木块来说,smallest_block=4。scr_index和dest_index从0到3。对于该网络,fan_factor为16,src_skew为4,dest_skew为5。对于4个节点的积木块来说,multiplicity的值为1/16,对于16个节点的积木块来说,multiplicity的值为1/4,对于64个节点的积木块来说,multiplicity的值为1,对于256个节点的最大积木块来说,multiplicity的值为2。
下面表示了当multiplicity为1时(如图4中一样)时,选择的路由的例子(route_index)

当应用于图19的例子时,该例子具有为2的multiplicity,选择的路由索引将按照上述表格或者下述表格之一,取决于目的地标识符。

如果需要选择一个以上的路由,那么通过把dest_index递增每个额外路由的路由数,可选择额外的路由。例如,如果要选择四个路由,那么src_index 0将选择所有四个1、6、11和16,以便去往具有索引0-3的四个目的地。
本发明的一个或多个方面的能力可用软件、固件、硬件或者它们的某一组合来实现。
本发明的一个或多个方面可被包括在制造产品(例如一个或多个计算机程序产品中),所述制造产品具有计算机可用介质。所述介质中具有例如计算机可读程序代码装置或者逻辑(例如指令,代码,命令等),以便提供和简化本发明的能力。所述制造产品可被包括为计算机系统的一部分或者单独销售。
另外,可以提供机器可读的至少一种程序存储装置,所述程序存储装置包含可由机器执行,以便实现本发明的能力的指令的至少一个程序。
这里描述的流程图只是例子。在不脱离本发明的精神的情况下,可对这里描述的这些图或步骤(或操作)做出许多变化。例如,可按照不同的步骤进行所述步骤,或者可以增加、删除或修改步骤。所有这些变化被视为要求保护的发明的一部分。
虽然这里说明了优选实施例,不过对本领域的技术人员来说,在不脱离本发明的精神的情况下,显然可做出各种修改,增加,替换等,于是,这些修改,增加,替换等被认为在由下述权利要求限定的本发明的范围之内。
权利要求
1.一种生成路由以便于互连节点的网络中数据分组的路由的分布式方法,所述节点由链路和交换机芯片互连,所述网络包括不同大小的积木块类型,每个积木块类型包括网络的至少一个节点和网络的至少一个交换机芯片,其中不同大小的积木块类型包括网络的不同数目的交换机芯片,所述方法包括识别网络的节点所属的积木块类型,并且对于每个积木块类型(i)选择该积木块类型内不属于较小的积木块类型的目的地芯片;(ii)根据扇形展开条件,选择到目的地芯片的至少一个目的地节点的至少一个路由;和(iii)对积木块类型内的每个目的地芯片重复选择(i)和选择(ii)。
2.按照权利要求1所述的方法,其中选择(ii)包括根据扇形展开条件,选择到目的地芯片上的所有目的地节点的所需数目的路由。
3.按照权利要求1所述的方法,还包括在网络的多个源节点中的每个源节点实现该分布式方法。
4.按照权利要求1所述的方法,其中对于每个积木块类型,所述方法还包括创建积木块类型的网络子图,并且其中选择(ii)包括从根据网络子图识别的积木块类型内的各对交换机芯片间的可用路由中,选择到至少一个目的地节点的至少一个路由。
5.按照权利要求1所述的方法,其中选择(ii)包括根据扇形展开条件,选择源节点和目的地芯片的至少一个目的地节点之间的至少一个最短路由。
6.按照权利要求5所述的方法,其中选择至少一个路由还包括选择至少一个最短的路由,以便于跨越所有源节点-目的地节点对满足扇形展开条件,所述扇形展开条件包括(a)选择的路由从源节点基本均匀地扇出到网络的中央,并从网络的中央扇入到目的地节点;和(b)实现经过位于网络的相同层次的链路的路由的全局均衡。
7.按照权利要求5所述的方法,其中选择至少一个路由还包括通过对应的路由索引选择所述至少一个路由,所述路由索引如下计算if multiplicity≤1 then route_index被计算为route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else该值为偏移量,以提供route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1其中route_index=计算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=与源节点相关联的最小块和至少一个目的地节点之间的source_destination对的总数;src_id=源标识符;dest_id=目的地标识符;smallest_block=最小块的大小;next_block=当前块内的最大块的大小;和avail_paths=可用路径的数目。
8.一种生成路由以便于互连节点的网络中数据分组的路由的分布式系统,所述节点由链路和交换机芯片互连,所述网络包括不同大小的积木块类型,每个积木块类型包括网络的至少一个节点和网络的至少一个交换机芯片,其中不同大小的积木块类型包括网络的不同数目的交换机芯片,所述系统包括识别网络的源节点所属的积木块类型的装置,并且对于每个积木块类型,所述装置(i)选择该积木块类型内不属于较小的积木块类型的目的地芯片;(ii)根据扇形展开条件,选择到目的地芯片的至少一个目的地节点的至少一个路由;和(iii)对积木块类型内的每个目的地芯片重复选择(i)和选择(ii)。
9.按照权利要求8所述的系统,其中选择(ii)的装置包括根据扇形展开条件选择到目的地芯片上的所有目的地节点的所需数目的路由的装置。
10.按照权利要求8所述的系统,还包括在网络的多个源节点中的每个源节点实现分布式方法的装置。
11.按照权利要求8所述的系统,其中对于每个积木块类型,所述系统还包括创建积木块类型的网络子图的装置,并且其中选择(ii)的装置包括从根据网络子图识别的积木块类型内的各对交换机芯片间的可用路由中,选择到至少一个目的地节点的至少一个路由的装置。
12.按照权利要求8所述的系统,其中选择(ii)的装置包括根据扇形展开条件,选择源节点和目的地芯片的至少一个目的地节点之间的至少一个最短路由的装置。
13.按照权利要求12所述的系统,其中选择至少一个路由的装置还包括选择至少一个最短的路由,以便于跨越所有源节点-目的地节点对满足扇形展开条件的装置,所述扇形展开条件包括(a)选择的路由从源节点基本均匀地扇出到网络的中央,并从网络的中央扇入到目的地节点;和(b)实现经过位于网络的相同层次的链路的路由的全局均衡。
14.按照权利要求12所述的系统,其中选择至少一个路由的装置还包括通过对应的路由索引选择所述至少一个路由的装置,所述路由索引如下计算if multiplicity≤1 then route_index被计算为route_index=(src_index·src_skew+dest_index·dest_skew)%fan_factor+1else该值为偏移量,以提供route_index=offset+(src_index·src_skew+dest_index·dest_skew_%fan_factor+1其中route_index=计算的路由索引;src_index=src_id模smallest_block;dest_index=dest_id模smallest_block;scr_skew=fan_factor/smallest_block;dest_skew=1+fan_factor/smallest_block;multiplicity=avail_paths/fan_factor;offset=floor((dest_id模next_block)/avail_paths)·fan_factorfan_factor=与源节点相关联的最小块和至少一个目的地节点之间的source_destination对的总数;src_id=源标识符;dest_id=目的地标识符;smallest_block=最小块的大小;next_block=当前块内的最大块的大小;和avail_paths=可用路径的数目。
15.可由处理节点读取的至少一个程序存储装置,所述至少一个程序存储装置确实包含可由处理节点执行,以实现按照权利要求1-7任意之一所述的方法的指令的至少一个程序。
全文摘要
提供一种简化互连节点的网络中数据分组的路由的分布式分治路由生成技术。所述网络包括不同大小的积木块类型,每个积木块类型包括网络的至少一个节点和网络的至少一个交换机芯片,其中不同大小的积木块类型包括网络的不同数目的交换机芯片。该技术包括识别网络的源节点所属的积木块类型,对于每个积木块类型选择该积木块类型内不属于较小的积木块类型的目的地芯片;根据扇形展开条件,选择到目的地芯片的至少一个目的地节点的至少一个路由;和对积木块类型内的每个目的地芯片重复这两个选择步骤。
文档编号H04L12/56GK1874316SQ20061008774
公开日2006年12月6日 申请日期2006年5月30日 优先权日2005年5月31日
发明者阿鲁纳·拉马宁 申请人:国际商业机器公司
再多了解一些
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1