用于计算结构的全局树形网络的制作方法

文档序号:6354483阅读:179来源:国知局
专利名称:用于计算结构的全局树形网络的制作方法
相关申请的交叉引用本发明要求2001年2月24日申请的,名为“大规模并行超级计算机(MASSIVELY PARALLEL SUPERCOMPUTER)”的共同拥有的、一并未决美国临时专利申请序列号60/271,124的权利,整个内容和公开内容在此明确合并作为参考,相当于在此完全阐述。本发明申请另外涉及下述共同拥有的,与此同一天提交的一并未决美国专利申请,每一个的全部内容和公开内容在此明确一并作为参考,相当于在此完全阐述。美国专利申请序列号No.(YOR920020027US1,YOR920020044US1(15270)),为″类网络路由(Class Networking Routing)″;美国专利申请序列号No.(YOR920020028US1(15271)),为″用于计算结构的全局树网络(A Global Tree Network for Computing Structures)″;美国专利申请序列号No.(YOR920020029US1(15272)),为“全局中断和屏障网络(Global Interrupt and Barrier Networks)″;美国专利申请序列号No.(YOR920020030US1(15273)),为“优化的可扩展网络开关(Optimized Scalable Network Switch)″;美国专利申请序列号No.(YOR920020031US1,YOR920020032US1(15258)),为″环网络和树网络中的算术函数(Arithmetic Functions in Torus andTree Networks)”;美国专利申请序列号1 No.(YOR920020033US1,YOR920020034US1(15259)),为用于高速信号传输的数据捕获技术(Data Capture Technique for High Speed Signaling)″;美国专利申请序列号No.(YOR920020035US1(15260)),为通过传送/获取窗口控制相干性(Managing Coherence Via Put/Get Windows)’;美国专利申请序列号No.(YOR920020036US1,YOR920020037US1(15261)),为″低延迟存储器存取和同步(Low Latency Memory AccessAnd Synchronization)″;美国专利申请序列号No.(YOR920020038US1(15276),为存在故障时用于文件服务器维护全部性能的双尾部故障转移(Twin-Tailed Fail-Over for FileserversMaintaining Full Performance in the Presence of Failure)″;美国专利申请序列号No.(YOR920020039US1(15277)),为″通过无开销链接级校验和的故障隔离(Fault Isolation Through NoOverhead LinkLevel Checksums)’;美国专利申请序列号No.(YOR920020040US1(15278)),为″通过物理位置用于大规模并行系统的以太网寻址(Ethernet Addressing Via Physical Location for MassivelyParallel Systems)″;美国专利申请序列号No.(YOR920020041US1(15274)),为″通过动态划分的超级计算机中的容错(Fault Tolerancein a Supercomputer Through Dynamic Repartitioning)″;美国专利申请序列号No.(YOR920020042US1(15279)),为″检验点文件系统(Checkpointing Filesystem)″;美国专利申请序列号No.(YOR920020043US1(15262)),为’分布式存储器并行多节点计算机上的多维快速傅里叶变换的有效实现(Efficient Implementation ofMultidimensional Fast Fourier Transform on a Distributed-MemoryParallel Multi-Node Computer)″;美国专利申请序列号No.(YOR9-20010211US2(15275)),为″一种新型大规模并行超级计算机(A Novel Massively Parallel Supercomputer)″;和美国专利申请序列号No.(YOR920020045US1(15263)),为″智能风扇模块和系统(Smart Fan Modules and System)″。
背景技术
发明领域本发明通常涉及分布式存储器消息传递并行计算机设计和系统软件的领域,更具体地说,涉及用于互连用在例如大规模(massively)并行的、分布式存储器计算机中的单个处理器的新颖方法和装置。
现有技术的描述大规模并行计算结构(也称为“巨型计算机(ultra scalecomputer)”或“超级计算机”)通常以非常规则的结构,诸如栅格、网格或环面的形式互连大量计算节点。
在这种大规模并行系统中共同面临的一个问题是涉及许多节点的集合算术(collective arithmetic)或逻辑运算的有效计算。这种系统共同面临的第二个问题是由所有节点有效共享有限多个外部I/O连接。涉及许多计算节点上的集合算术运算的共同计算的例子是需要基于全局求和的全局内积的迭代稀疏线性方程求解技术。
尽管

图1中所示的三维环面互连计算结构10包括在边缘处“缠绕”的简单的3维最近邻互连,对大多数类型的内部处理器通信来说工作很好,但对执行集合运算诸如归约,其中通过每个计算节点12提供的操作数计算的单个结果,或有限资源诸如外部I/O连接(未示出)的有效共享则不好。
因此,非常期望提供超大规模超级计算体系结构,包括为有效和可靠执行许多类运算,包括那些需要全局算术运算诸如全局归约计算、数据分配、同步和有限资源共享的所优化的处理节点的独特的互连。
因为较长的延迟,高速网络的标准连接,诸如环面,不是简单地完全适用于这该目的。
即,仅将树形通信模式映射到物理环面互连上,会导致比如果相邻树节点需要在环面相邻时所需的更大深度的树,或导致当这些节点在环面中不相邻时,在节点间具有更长延迟的树。当互连资源有限时,为了最有效地计算集合运算,需要真正的树形网络,即,节点间的物理互连将这些节点形成为树的网络。
发明概述本发明的一个目的在于为计算结构的单个处理节点互连提供一种系统和方法,以便能有效和可靠地计算全局归约、分配数据、同步和共享有限资源。
本发明的另一目的是提供将排列成树形互连的大规模并行、分布式存储器计算机的单个处理器互连的独立的单个物理网络,并便于全局算术和集合运算。
本发明的另一目的是提供将排列成全局树形互连的大规模并行、分布式存储器计算机的单个处理器互连的独立的单个物理网络,用于将外部(输入/输出)I/O和服务功能性提供给一个或多个虚拟树形网络的节点,该虚拟树形网络是物理网络的子树。这种全局树形互连系统可包括专用的I/O节点,用于保持消息传递环面或栅格计算结构的消息通信量。
根据本发明,提供用于允许在根据树形网络结构互连的处理节点间高速、低延迟的全局通信的系统和方法。全局树形网络最好允许在具有多个互连处理节点的计算机结构中执行并行算法运算期间,执行集合归约(collective reduction)运算。其中包括了路由器装置,其通过链路互连树的多个节点,以便于在树的节点处执行低延迟全局处理运算。其中包括了允许定义“虚拟树”的结构选项,该“虚拟树”由树形网络中的全部节点的子集组成。全局运算包括一个或多个从虚拟树的根节点向下到叶节点的全局广播运送、从虚拟树中的叶节点向上到根节点的全局归约运算,以及从虚拟树中的任何节点到根节点的点对点消息传递。将虚拟树形网络的一个节点连接到I/O节点并用作I/O节点,用于通过外部系统,为虚拟树的每个节点提供I/O功能性。全局树形网络可配置成以异步或同步的方式提供全局屏蔽和中断功能性。这在一并未决申请U.S.专利申请序列号No.(YOR920020029US1(15272))中描述过。因此,最好根据并行算法运算的某一运算阶段执行在并行计算系统中采用的并行算法处理运算。当在大规模并行超级计算结构中实现时,根据处理算法的需要,可物理和逻辑地划分全局树形网络。
在大规模并行计算机中,所有计算节点通常要求存取外部资源,诸如,文件系统。因为提供这种连接的成本远高于单个计算节点的成本,因此提出了有效共享有限多个外部I/O连接的问题。因此,有效共享I/O连接保证了I/O带宽不会成为对于系统可扩展性的限制成本因素。根据平均延迟,假定有限的处理器间互连,则用于共享单个资源的最有效网络是全局树,其中共享的资源处于树的根节点处。
对全局和集合运算来说,单个、大型树可用来互连所有的处理器。然而,文件系统I/O要求在根节点处具有I/O装置的许多小型树。因为大型树包括多个、更小的子树,因此通过在适当大小的子树根处,关键地将外部互连放在其之内,单个、大型树可用于文件系统I/O。另外,文件系统I/O要求可由本发明启动的点对点传递消息并且不需要集合运算。
有利地,包含本发明的全局树形网络的可扩展、大规模并行超级计算机非常适用于在生命科学领域中执行的并行算法。
附图的简单描述根据下述的描述、附加权利要求书和附图,将更容易理解本发明的设备和方法的另外的特征、方面和优点,其中图1描述互连八个计算节点的三维环面网络;图2描述包括三十五(35)个节点(用圆圈表示)的典型系统的例子,以及连接所有节点的树形网络100;图3示例说明在图2的全局树形网络中实现的路由器装置的基本体系结构。
优选实施例的详细描述本发明可在计算机结构中实现,诸如在此所包含的、共同拥有的、一并未决的美国专利申请_[YOR920010211US2,D#15275]中所描述的,在该未决美国专利申请中描述了以三维环面形式的新颖的大规模并行超级计算机体系结构,设计成在teraOPS(每秒万亿浮点运算)数量级的递送处理能力,用于广泛的应用范围。在示例性实施例中所述的大规模并行超级计算机体系结构包括组织成64×32×32三维环面的65,536个处理节点,每个处理节点连接到六(6)个相邻的节点12。图1表示由八(8)个节点12组成的这种环面,并且很清楚地看出通过沿所有三维增加节点12的数量,如何扩展这种互连。用目前的技术,对要求远高于通信的计算或仅需要最近邻通信的应用来说,可将该体系结构扩展到上百teraOPS。应当理解,可在除超级计算机外的许多其他计算机结构中实现本发明。
如所述,连接环面处理节点的互连网络对大多数类型的处理器间通信来说效果不错,但对集合运算,诸如归约来说,则效果不好,其中由每个节点提供的操作数来计算单个结果。
如在此包含的共同拥有的、一并未决的美国专利申请NO.[D#15275]中所述,根据最小延迟,用于在环面上执行集合归约运算的最有效机制是提供真实的树形网络,即,节点间的物理互连将这些节点形成为树的网络。
因此,根据本发明的优选实施例,提供全局树形网络,该网络包括多个互连的路由器装置、每个节点一个专用集成电路(ASIC)。每个路由器提供三个“子”端口和一个“父”端口,有选择性地启动每个端口。二个子端口足以创建树形拓扑。更多的子节点降低了树的高度,或减少了到达根所需的连接。因此,以更多的互连为代价,更多的子节点能降低用于集合运算的延迟。通过以“根”节点开始形成树,该根节点没有父节点(即,没有连接到其父端口的节点)。该根节点形成树的最上“级”。通过将一个或多个根的子端口连接到其他路由器的父端口形成下一级。在这种情况下,根节点是其以下级中的节点的“父节点”。循环地继续该过程直到到达没有子节点的节点为止(即,没有连接到它们的路由器子端口的任何一个的节点)。这些节点称为树的“叶”。例如,如图2的示例树形网络100中所示,节点B110是根节点,以及叶是在离根节点最远的底部的节点120。如在此所提到的,朝该树的根节点向上移的数据称为“上树(uptree)”通信量,而远离根节点、朝叶移动的数据称为“下树(downtree)”通信量。
如将更详细地描述,树形网络可包括由互连路由器(节点)的链路上的虚拟信道支持的多个独立的“虚拟网络”。为共享这些链路,以合理的方式分组并交错虚拟网络数据流。每个虚拟网络具有其自己的存储资源,以及在一个中的功能性死锁不会影响其他的虚拟网络。
每个虚拟网络可进一步细分成虚拟树(或子树),其(在每个虚拟网络中)可以是独立或不独立的。任何节点可构造成16个虚拟树中的一个的根。虚拟树包括指定为根的节点和所有其子节点,除a)也指定为相同虚拟树号(tree number)的根的节点,以及b)满足a)的节点的子节点。因此具有相同虚拟树号的虚拟树不能重叠,但具有不同树号的虚拟树能重叠。
可将节点构造成加入任意数目的虚拟树,或一个也不加入。如果它们加入,那么期望它们遵循所有树形语义,诸如将操作数提供给归约运算。当节点可参与多个虚拟树时,它们必须为它们添加到虚拟网络的每个分组指定一个虚拟树号。
在图2中示出了用在根据本发明的示例树形结构100。更具体地说,图2描述包括三十五(35)个节点(用圆圈表示)的虚拟树形网络的例子,以及连接所有35个节点树形网络100。树形网络100用于全局归约以及广播,将在下文更详细地描述。为输入/输出(I/O)以及与外部系统资源共享的目的,将图2的示例虚拟网络100的节点分组成在图2中引用的五(5)个不重叠虚拟子树以作为虚拟树1-5。即,用圆圈内的不同号表示每个虚拟子树。在每个各个子树1-5的根处的各自的节点111、112、113、114和节点110包括连接到外部系统(例如,主机或文件系统)的接口。因此,每个I/O连接为连接到其根的子树的七(7)个节点的处理所有通信量。在优选实施例中,在每个子树的根部的节点专用于I/O,但并不总是要求这样。
参考图2和虚拟树号1,以及其根部的节点A111,希望将数据发送出该结构的典型的节点115将消息上传到虚拟树的根节点111,在该处,将消息转发给外部连接。通过广播滤波器,到达外部网络连接的数据可转发给特定的节点,诸如115,如在此更详细地描述,该滤波器滤出所有其它节点。在此包含的、共同拥有的、一并未决的美国专利申请No.__[YOR982001-1002,YOR982001-1005以及YOR982001-1009]中可找到有关全局树形网络的运算,特别是有关支持可编程点对点或用于输入/输出、程序加载、系统管理、并行任务监视和调试的功能性的更详细的资料。
再参考图2,通常来说,I/O通信量保持在其根部具有外部连接的虚拟树内。然而,如果外部连接失败,具有外部连接的另一节点可用于故障转移。例如,如果对图2中的节点A111的外部I/O连接失败,那么在其根为节点A的子树内的所有节点能通过节点B110与外部文件系统或主机系统通信。
应当理解到包括在树20中的硬件功能性包括,但不局限于整数加法、整数取最大值、取最小值、位逻辑与(AND)、位逻辑或(OR)、位逻辑异或(XOR)(异OR)以及广播。可以尽可能最低的延迟方式实现这些功能。例如,加法功能产生首先在全局网络上发送的字的最低字节。立即将该低字节增加到来自其他资源的其他字节上(在硬件中),其结果移出到该树的下一级。用这种方式,例如,在移出高位字节前,8字节的字已经了该树的几层。这产生在整个机器上非常低的延迟增加的可能性。如在一并未决的申请U.S.专利申请序列号No.(YOR920020031US1,YOR920020032US1(15258)),名为“环网络和树网络中的算术函数(Arithmetic Function in Tours and TreeNetworks)”中所述,通过适当的数据预处理,也可实现其他的算术功能,诸如取最小值和减法。通过该树上的2次传递,也可实现浮点求和,与没有全局组合树(combining tree)实现该结果的方法相比,均以非常低的延迟。通常,树上的算术或逻辑运算导致沿树向上流,在该处组合所有结果,然后从根再流回树,使该结果分布于所有分支。如将描述的,以可控方式,可从该计算中省略某些分支。
在优选实施例中,本发明的全局树形网络包括互连路由器,每个节点一个,每个路由器移动数据并计算集合归约。图3示例说明用于图2的树形网络的路由器装置200的基本体系结构。如图3所示,每个路由器装置200包括多个端口,例如,四个,可连接到另一路由器,或当不连接时将其禁止。如图3所示,路由器具有四个输入端口210a-213a以及相应的四个输出端口210b-213b以便形成允许构造3-树的数据通路。在一个实施例中,仅可将四个端口中的一个指定为连接到父节点,以及剩余端口的所有三个可连接到子节点。在树的底部的叶节点将仅具有连接到激活的其父节点的一个端口,而树根将不具有激活的父节点,但至少有一个激活的子节点。应理解到通过如图3所示的纵横开关215可创建数据通路。
为描述目的,在图3的路由器装置200中,数据通常从左流向右。因此,分组可从局部输入FIFO202,或路由器输入端口210a-213a中的一个进入路由器装置200。如果分组进入一个端口,那么,根据其是两个虚拟网络中的哪一个,将其放入两个输入FIFO中的一个(例如A或B)。最终通过在上树选择块220或下树(downtree)选择块230中提供的ALU单元240执行的逻辑和算术运算使用这些分组。将上树逻辑或下树选择的结果广播到所有四个输出级210b-213b,根据其指定的运算和输出端口,每个输出级可处理或不处理该结果。选择块220、230包括确定通过该路由器将分组移向何处的判优电路(未示出)。应理解到可存在同时上树和下树通信量。
由输入和接收接口202、204和一套配置寄存器218提供对树的软件存取。通常,使用配置寄存器218来配置路由器和确定其状态,而按应用使用输入和接收接口202、204来分别提供操作数及接收结果。更具体地说,通过将适当的值存入每个路由器的虚拟树配置寄存器218来配置每个虚拟树,其中每个虚拟树具有一个虚拟树配置寄存器。对每个虚拟树,配置寄存器允许节点指定其是否充当1)树根,2)是否加入树,和/或3)是否将强制接收上树广播分组。另外,虚拟树配置寄存器218允许节点指定其子节点的哪一个加入树,或具有它们之下的加入者。这对支持稀疏树来说是很必要的。
应用程序通过CPU输入202和CPU接收204接口与树交互。通过将数据作为分组存储到输入接口(injection interface)202中,直接或通过直接存储器存取(DMA)将数据发送到树中。类似地,通过作为分组从接收接口204读取结果,直接或通过DMA从树中移除该结果。
尽管未示出,将理解到在路由器间,使用例如,允许几个分组占用空隙(worth of slack)的基于令牌的协议实现流控制技术。即,将激活的每个输出端口210b-213b连接到另一路由器的单个输入端口。通常,那个输入端口的每个虚拟信道授予输出端口的相应的虚拟信道一个令牌,以用于每个占用(worth of buffer space)其输入FIFO中的缓冲空间的分组。当输出端口发送分组时使用令牌,并且如果释放FIFO空间,输入端口将令牌返回给输出端口。因此,输出端口可继续发送分组,只要它具有可用令牌。
启动优选实施例的路由器装置内的算术逻辑单元(ALU)块240来在四个执行操作数大小上执行五个归约运算。运算是整数加法、整数取最大值、位逻辑或(OR)、位逻辑异或(XOR)以及位逻辑与(AND)。操作数大小是32位、64位、128位和2048位。应理解到在图3中描述的体系结构不排除对运算或操作数大小的不同选择。具体来说,采用用于选择运算和操作数大小的软件。
通常,加入归约运算的那些节点通过将“归约”型分组存储在CPU输入FIFO202中来输入这些“归约”型分组。以分组的颗粒度(granularity)执行归约,其中根据一个实施例的分组携带例如256字节的有效负载。单个分组通常将携带相同大小的操作数,并在所有操作数上执行相同的归约。可将任何节点构造成不加入用于每个虚拟树的归约。在这种情况下,节点将不将任何数据提供给归约并且不接收结果。
对每个虚拟树来说,将路由器装置200构造成指定其哪个子节点将加入归约。当它从其每个加入子节点和局部输入FIFO(除非局部节点不参加)接收归约分组时,它在分组内容上执行特定的归约运算并将该结果作为单个分组发送给其父节点。即,组合每个分组的第一字以产生结果分组的第一字。组合每个分组的第二字以产生结果分组的第二字,依此类推。用这种方式,沿树向上循环计算全局结果,最后在归约树(reduction tree)的根节点处完成作为包含这些结果的单个分组。
最好,可将任何节点构造成虚拟归约树的根。只要归约达到那个节点,则可以收到组合分组、将组合分组广播到所有加入子节点,或同时执行。当路由器接收指定用于子节点下树的归约分组时,将分组的拷贝转发给每个子节点。如果将其构造成加入在那个虚拟树上的归约,也将该分组的拷贝放入其局部接收FIFO204中。
在优选实施例中,物理互连的宽度小于操作数宽度,以便以串行化的方式在树上传送操作数。为实现最低可能延迟,整数操作数将首先传送其最低位,以便能计算结果甚至当操作数到来时进行转发。用这种方式,在移出其高命令位前,结果可能上升了树的好几级,导致所有节点上非常低的延迟。应理解到从包含最高命令位的字开始计算流水线取最大值运算,因为基于它们不同的最高命令位,发现数是不同的。硬件自动反转输入和接收的最大操作数以便从高命令位到低命令位执行计算。
另外,可使用整数归约来计算浮点归约(floating pointreduction)。例如,通过利用该树两次,可执行全局浮点求和,其中在第一次中获得所有指数的最大数,以及在第二次中,增加所有移位的尾数。
如所述,本发明的树形网络100是用于执行有效全局广播的理想结构。总是从树根执行硬件广播操作,但通过首先将点对点,“广播”型消息发送给根节点的路由器装置,任何节点可以广播,然后,路由器装置开始自动广播。对大多数部分,全局广播遵守归约规则和限制,但在它们的上树行为中则不同。通过在虚拟树上输入广播型分组,任何节点可执行有效负载的广播。分组不变地沿树向上行进,直到它到达构造为虚拟树的根节点为止。然后回转并广播到那个虚拟树上的所有参加的子节点。因此,将仅由那个虚拟树上的那些加入归约的节点接收到它。
根据本发明,通过过滤包含在分组中的信息来进一步控制广播接收。通过将包含在分组中的值与存储在每个路由器中的预设值进行匹配,以及如果值匹配的话,仅接收分组来使优选实施例的过滤机制起作用。通常,给系统中的每个节点赋予唯一值(地址),以便该广播过滤机制允许消息从根节点发送到其下的单个节点。也可能使用非唯一地址来产生由节点的子集接收。有许多方法可概括广播过滤。例如,使用位矢量代替地址将允许多个、不相交、可配置节点子集来接收广播。
通过结合广播过滤和“根”分组型来提供有效共享外部I/O连接。根型分组通常沿虚拟树向上行进直到它遇到指定为那个树的根的节点为止,在该处,无条件接受该分组。这允许非根节点将消息发送给根,在该处,可将它们转发给外部连接。使用具有与预定目的地匹配的地址的过滤广播,可将到达外部连接的数据转发给特定的非根节点。
如果外部连接失败,使用那个连接的结点可沿具有外部连接的树向上将故障转移到下一节点。对来自该节点的通信量来说,可通过简单地在有故障的外部连接处重新构造节点来执行,以便它不再成为虚拟树的根,以及将故障转移节点重新构造为新的根。因为来自故障转移的根的广播将转到那个节点的所有子节点,而不仅仅是故障节点下的子节点,因此节点的通信量变得更复杂。例如,如果图2中,节点A111故障转移到节点B110,那么来自节点B的分组将广播到整个树。
为防止不必要的通信量,可将任意路由器装置构造成独立地阻止在每个虚拟树上的下树通信量。简单地中断进入用于构造成块的虚拟树的上树链路上的路由器的分组。例如,假定图2中节点A111下的节点使用标记为树1的虚拟树来使用在节点A111的连接发送和接收外部I/O。为了把在节点A的连接故障转移到节点B,将节点B构造成虚拟树1的根来代替节点A,以及节点C和D构造成阻止虚拟树1上的下树通信量的块。很容易理解到一般可使用该下树阻塞机制来删除虚拟树。
通过所附的中断请求,可将任何分组输入到树形网络中。这一最终结果是导致在接收分组的每个节点处的可屏蔽中断,或在归约的情况下,由该分组计算的结果。如果用于那个结果的任何一个输入分组请求一个中断,那么归约结果将导致中断。另外,可使用全局归约运算来执行具有中断机制的软件屏蔽。简单地说,每个节点通过清除其中断标志,然后用于全局归约来进入屏蔽。它通过查询中断标志并接收中断来检测屏蔽的完成。可在此包含的、共同拥有的、一并未决的美国专利申请序列号No.__[YOR8-2001-1009]中找到有关全局组合树和屏蔽网络的运算的进一步详细资料。
本发明的树形网络保证正确完成运算,只要它们遵循基本的排序规则。即,因为由路由器200按照接收它们被接收的顺序处理分组,如果虚拟树上加入运算的节点未以相同的顺序输入归约操作数,或不能输入操作数,则会导致虚拟网络死锁。类似,如果在相同的虚拟网络上两个虚拟树重叠,以及操作数输入违反虚拟网络的严格排序规则,也会出现死锁。最好,在广播或点对点消息运算(messaging operation)上没有排序限制,以及可与归约交错这些运算。
通过硬件错误恢复机制提供保证完成正确排序的运算。简单地说,每个路由器保留经全局树形网络链路发送的每个分组的拷贝,直到它接收到该分组被无误地接收的确认为止。可实现链路级通信协议,诸如具有分组CRC的滑动窗口协议,包括用于检测被破坏的分组的机制,以及导致使用保存的拷贝重新发送那些分组的机制。
如所述,通过使用基于令牌的通信协议来维持流控制。将分组发送给“下游”路由器的“上游”路由器具有表示下游路由器中的空闲存储容量数量的多个令牌。无论何时上游路由器发送分组,其使用令牌,并且除非还剩有令牌,否则不能发送该分组。相反地,无论何时下游路由器释放存储空间时,它向上游路由器发布令牌。存储空间和分组延迟间的平衡确保链路始终保持忙。
在通过多个下树链路通常发送单个分组以及局部接收的下树广播中,可实现流控制以便防止分组提前,直到在所有下树链路上令牌可用并且在CPU中有空位来接收FIFO204为止。然而,这种保守方法会影响用于单个目的地的过滤广播的吞吐量,因为那个目的地可在具有令牌的链路之下,而分组在不具有令牌的另一链路上等待。因此,在优选实施例中,树形网络执行“主动”广播,其基本上脱离了单个下树链路上的流控制。参考图3,将分组转发给适当的下树链路的输出FIFO250以及虚拟网络,只要在它们中存在可用的足够的存储空间时。然后,当令牌变成可用时,使每个输出FIFO250单独地流向其输出端口210b-213b。注意无论如何,如前所述,为通过重新传送而恢复传送错误的目的,必须将单个的分组拷贝放入每个输出FIFO250中。
在优选实施例中,如在共同拥有的、一并未决的美国专利申请No.(YOR9-20010211US2(15275)),名为“一种新型大规模并行超级计算机(A Novel Massively Parallel Supercomputer)”中更详细的描述,以及在此参考图1-3所述,每个处理节点12是基于片上系统过程的,即,计算机节点的所有功能,包括路由功能均集成到单个ASIC上,导致对于节点尺寸其大小以及功耗的显著减小。进一步影响该超级计算机体系结构以便增加节点密度,从而降低用于该机器的整体成本/性能。每个节点最好将许多这些功能包含到计算机ASIC中,包括,但不限于嵌入式处理内核、浮点内核、嵌入式DRAM、集成外部DDR存储器控制器、消息处理器、以太网适配器以及网络路由器的Power-PC440。在一个实施例中,可将同样的计算机ASIC节点用作与计算节点,例如64个节点相关的I/O节点,用于处理文件服务器通信和I/O操作。即,I/O节点与计算节点非常相似,然而,仅在外部存储器构造方面和外部网络接口的附加,诸如千兆位以太网(GigabitEthernet)的方面存在不同。应当理解到在此描述的树形网络路由器除优选实施例的集成装置外,可充当独立的装置。
尽管已经具体示出和参考其示例性和执行的实施例描述了本发明,本领域的技术人员将理解到在不脱离应由附加权利要求的范围限定的本发明的精神和范围的情况下,可在形式和细节方面做出上述和其它改变。
权利要求
1.用于在计算结构中执行的并行算法运算期间,执行集合归约、广播和点对点消息传递的装置,所述计算结构包括多个处理节点,所述装置包括全局树形网络,包括互连树形配置中的所述节点的路由器设备,所述树形配置包括一个或多个虚拟树形网络,所述全局树形网络启动全局处理运算,包括以下的一个或多个从指定虚拟树形网络的根节点向下到叶节点的全局广播操作,从在所述虚拟树中的叶节点向上到根节点的全局归约运算,以及根据需要,从所述虚拟树的任何节点到所述虚拟树的根节点的点对点消息传递,其特征在于,为在所述计算结构中提供低延迟通信,优化所述全局树形网络和路由设备配置。
2.如权利要求1所述的装置,其特征在于,所述计算结构包括多个互连的处理节点以形成第一网络,根据用于优化并行算法处理性能的并行算法的带宽和延迟要求,协作或单独利用所述一个或多个虚拟树形网络和所述第一网络。
3.如权利要求1所述的设备,其特征在于,虚拟树形网络的根节点充当包括到外部系统的高速连接的I/O节点,所述I/O节点执行用于该虚拟树形网络的I/O运算,而独立于在所述第一网络中执行的处理。
4.如权利要求3所述的装置,其特征在于,每个所述路由器包括用于从虚拟树的其他节点接收分组的输入设备、用于将分组转发给所述树的其他节点的输出设备、用于将分组输入所述树的局部输入设备,以及用于从所述树中移除分组的局部接收设备,所述装置进一步包括用于将所述路由器配置成加入或不加入所述虚拟树的装置。
5.如权利要求4所述的装置,其特征在于,用于配置所述路由器的所述装置进一步指定作为用于归约运算的虚拟树的根节点的所述节点的加入。
6.如权利要求5所述的装置,其特征在于,用于配置所述路由器的所述装置进一步指定用于在归约运算期间提供操作数的输入设备和局部输入设备的加入。
7.如权利要求6所述的装置,其特征在于,所述路由器进一步包括用于在通过提供输入设备以及局部输入设备,如果提供了该局部输入设备的话,所接收的分组内容上计算特定的归约运算的装置,以及用于经所述输出设备,将计算结果传送给那个节点的上游的父节点的装置。
8.如权利要求7所述的装置,其特征在于,将所述虚拟树形网络编程为用于循环地产生使沿所述虚拟树向上计算的全局组合结果,用于在所述根节点处实现为单个分组。
9.如权利要求8所述的装置,进一步包括用于将在所述根节点的单个、组合分组广播到在该虚拟树上,配置成为归约提供操作数的所有加入的子节点的每一个的装置。
10.如权利要求3所述的装置,进一步包括用于启动计算节点来经所述高速连接,将点对点分组发送给在虚拟树的根节点处的I/O节点的机制,所述根节点处的I/O节点指定用于外部系统。
11.如权利要求9所述的装置,进一步包括过滤机制,用于控制在虚拟树的节点处接收广播分组,所述接收基于节点地址以及加入所述虚拟树。
12.如权利要求11所述的装置,其特征在于,每个节点包括一个地址,所述系统进一步包括可编程装置,启动在每个所述虚拟树的节点中的点对点消息传递,所述地址启动外部主机系统直接向每个节点或节点的子集进行通信。
13.如权利要求9所述的装置,进一步包括用于基于由局部接收设备所接收的分组内容,产生对处理节点的处理器的硬件中断的机制。
14.如权利要求9所述的装置,进一步包括用于独立地阻止每个虚拟树上的不必要下树通信量的机制。
15.如权利要求11所述的装置,进一步包括用于当传送分组时,在路由器间提供流控制的机制。
16.如权利要求15所述的装置,进一步包括启动从所述流控制机制中脱离的单个下游链路上的分组广播,以便执行主动广播(aggressive broadcasting)的装置。
17.如权利要求2所述的装置,其特征在于,所述第一网络包括n维环面,其中n大于或等于1。
18.一种用于在计算机结构中执行并行算法运算期间执行集合归约、广播和消息传递的方法,所述计算机结构具有多个互连的处理节点,所述方法包括提供路由器设备,用于根据全局树形网络结构,经链路互连所述节点,所述树形结构包括一个或多个虚拟子树结构;以及启动在所述虚拟树形结构的节点处执行的低延迟全局处理运算,所述全局运算包括以下的一个或多个从指定的树形虚拟子树网络的根节点向下到叶节点的全局广播操作,从在所述树中的叶节点向上到所述根节点的全局归约运算,以及当执行所述并行算法运算时,根据需要,从所述虚拟树的任何节点到所述虚拟树的根节点的点对点消息传递。
19.如权利要求18所述的方法,其特征在于,所述计算结构包括互连的多个处理节点以形成第一网络,所述方法进一步包括根据用于优化并行算法处理性能的并行算法的带宽和延迟要求,协作或单独利用所述全局树形状网络和所述第一网络的步骤。
20.如权利要求18所述的方法,其特征在于,每个虚拟树形网络的根节点充当包括到外部系统的高速连接的I/O节点,所述方法进一步包括执行用于该虚拟树形网络的节点I/O运算,而独立于在所述第一网络中执行的运算的步骤。
21.如权利要求20所述的方法,其特征在于,每个所述路由器包括用于从虚拟树的其他节点接收分组的输入设备、用于将分组转发给所述树的其他节点的输出设备、用于将分组输入所述树的局部输入设备,以及用于从所述树中移除分组的局部接收设备,所述方法进一步包括将所述路由器配置成加入或不加入所述虚拟树的步骤。
22.如权利要求20所述的方法,其特征在于,所述路由器配置步骤进一步包括当执行归约运算时,指定作为虚拟树的根的节点的加入步骤。
23.如权利要求22所述的方法,其特征在于,所述路由器配置步骤进一步包括以下的一个或多个步骤指定耦合到所述路由器的所述处理节点的加入,用于在归约运算期间输入操作数;以及,指定耦合到所述路由器的所述处理节点的加入,用于在归约运算期间输入操作数。
24.如权利要求23所述的方法,进一步包括步骤配置所述路由器来在从提供子节点和所述处理节点中接收的分组内容上计算特定的归约运算,以及经输出设备,使计算结果传送给该节点的上游的父节点。
25.如权利要求24所述的方法,进一步包括循环地产生使沿所述虚拟树向上计算的全局组合结果,以用于在所述根节点处实现为单个分组的步骤。
26.如权利要求25所述的方法,进一步包括将在所述根节点的单个、组合的分组广播到在该虚拟树上,配置成为归约提供操作数的所有加入的子节点的每一个的步骤。
27.如权利要求20所述的方法,进一步包括启动计算节点来经所述高速连接,将点对点分组发送给在虚拟树的根节点处的I/O节点的步骤,所述根节点处的I/O节点指定用于经高速连接的外部系统。
28.如权利要求26所述的方法,进一步包括控制在虚拟树的节点处接收广播分组的步骤,所述接收基于所述节点的所述地址以及其加入所述虚拟树。
29.如权利要求28所述的方法,其特征在于,每个节点包括一个地址,所述方法进一步包括启动在每个所述虚拟树的节点中的点对点和子树消息传递的步骤,所述地址启动主机系统直接向每个节点或节点的子集进行通信。
30.如权利要求26所述的方法,进一步包括步骤基于由局部接收设备所接收的分组的内容,产生对处理节点的处理器的硬件中断。
31.如权利要求26所述的方法,进一步包括步骤独立地阻止每个虚拟树上的不必要的下树通信量。
32.如权利要求28所述的方法,进一步包括当传送分组时,在路由器间提供流控制的步骤。
33.如权利要求32所述的方法,进一步包括通过脱离所述流控制机制,在单个下游链路上启动主动的分组广播的步骤。
全文摘要
一种用于在根据树形网络结构互连的处理节点中启动高速、低延迟全局树形通信的系统和方法。全局树形网络(100)在具有多个互连的处理节点的计算机结构中执行的并行算法运算期间,优选地启动将执行的集合归约运算。包括了经链路互连树的节点以便有助于在虚拟树和子树结构的节点处执行低延迟全局处理运算性能的路由器设备(200)。全局运算包括以下的一个或多个从虚拟树的根节点(110)向下到叶节点(120)的全局广播操作、从虚拟树中的叶节点向上到根节点(110)的全局归约运算,以及从虚拟树的任何节点到根节点(110)的点对点消息传递。耦合虚拟树形网络的一个节点,并其该节点充当用于提供对于虚拟树的每个节点与外部系统的I/O功能的I/O节点。可将全局树形网络(100)配置成以异步或同步的方式提供全局屏蔽和中断的功能性。因此,并行算法处理运算,例如,在并行计算系统中所采用,可根据并行算法运算的某些操作阶段优化地执行。当在大规模并行超级计算结构中实现时,根据处理算法的需要,全局树形网络(100)是物理上和逻辑上可划分的。
文档编号G06F13/24GK1493040SQ02805520
公开日2004年4月28日 申请日期2002年2月25日 优先权日2001年2月24日
发明者马赛厄斯A·布卢姆里奇, 马赛厄斯A 布卢姆里奇, た铺赜人, 陈东, ぜ永, 保罗W·科特尤斯, ぜ帜放僚, 艾伦G·加拉, 海德伯格, 马克E·贾姆帕帕, 菲利普·海德伯格, 霍尼克, 德D 斯坦马彻-伯罗, 德克·霍尼克, に , 伯克哈德D·斯坦马彻-伯罗, 托德E·塔肯, 斯M 弗拉纳斯, 帕夫罗斯M·弗拉纳斯 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1