首页> 中国专利> 动态地重新路由并行计算机系统上的节点业务

动态地重新路由并行计算机系统上的节点业务

摘要

一种方法和装置,用于使用提示位动态地重新路由大型并行计算机系统的计算节点上的节点处理,以便绕过故障节点或拥塞网络而不重新启动正在该系统上执行的应用。当节点具有故障或存在其可能出现故障的指示时,暂停所述系统上的应用软件,同时将故障节点上的数据移动到后备节点。绕过故障节点来路由环形网络业务,并且将所述故障节点的业务重新路由至后备节点。然后应用可恢复操作而无需从开始重新启动。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-07-18

    授权

    授权

  • 2010-04-28

    实质审查的生效 IPC(主分类):G06F11/00 申请日:20080320

    实质审查的生效

  • 2010-03-03

    公开

    公开

说明书

技术领域

概括地说,本发明涉及并行计算系统中的故障恢复,更具体地,涉及在不重新启动大型并行超级计算机上执行的应用的情况下使用提示位动态地重新路由大型并行计算机系统的计算节点上的节点业务。

背景技术

有效的故障恢复对于减少复杂计算机系统的停机时间和修理成本是很重要的。在具有大量计算节点的并行计算机系统上,单一部件的故障可引起大部分或整个计算机停止执行以进行修理。重新启动应用可能浪费在故障之前的大量处理时间。

大型并行计算机系统是一种具有大量互连计算节点的并行计算机系统。国际商业机器公司(IBM)以名称Blue Gene(蓝色基因)开发了一系列此类大型并行计算机。Blue Gene/L系统是一种其中计算节点的当前最大数目为65,536的可伸缩系统。Blue Gene/L节点包括具有2个CPU和存储器的单个ASIC(专用集成电路)。整个计算机容纳在64个机架或机柜中,每个机架中具有32个节点板。

Blue Gene/L超级计算机经由若干通信网络进行通信。65,536个计算节点布置成逻辑树状网络及三维环形网络两者。逻辑树状网络以树状结构连接计算节点,以使得每一节点与父节点或一个或两个子节点进行通信。环形网络以三维晶格状结构逻辑地连接计算节点,允许每一计算节点与其在计算机的一个区段中的最接近的6个邻居进行通信。由于各计算节点布置成需要与邻近节点进行通信的环形及树状网络,所以单一节点的硬件故障可引起系统的大部分停止直至故障硬件被修复为止。例如,单一节点故障可使得环形网络的完整区段不可操作,其中Blue Gene/L系统中的环形网络的区段是半个机架或512个节点。此外,指派给出现故障的分区的所有硬件可能也需要停止执行直至故障被纠正为止。

在现有技术中的大型并行计算机系统上,在执行期间单一节点的故障经常要求软件应用从开始或从所保存的检查点重新启动。当发生故障事件时,有利的是,能够将故障节点的处理移动至另一节点以使得应用可以以最小的延迟在后备硬件上恢复,从而增加整体系统效率。在没有从故障或正出现故障的节点更加有效地恢复的方法的情况下,并行计算机系统将继续浪费增加操作成本的潜在计算机处理时间。

发明内容

描述了一种装置和方法,用于在不重新启动在大型并行计算机系统上执行的应用的情况下,使用提示位来动态地重新路由该系统的计算节点上的节点业务,以绕过故障节点或拥塞网络。当节点具有故障或存在其可能出现故障的指示时,暂停所述系统上的应用软件,同时将故障节点上的数据移动至后备节点。将绕过故障节点来路由环形网络业务,并且将故障节点的业务重新路由至后备节点。类似地,可以绕过拥塞网络来路由网络业务。

实例和公开内容涉及Blue Gene架构,但可扩展至具有布置成网络结构的多个处理器的任何并行计算机系统,其中节点硬件处理来自其他节点的直通业务(cut through traffic)。

上述和其他特征及优点将从以下更具体的描述而显而易见,如附图中所说明的。

附图说明

现在参照附图仅通过实例描述本发明的实施例,其中:

图1是大型并行计算机系统的方块图;

图2是示出大型并行计算机系统中的计算节点的输入和输出连接的方块图;

图3是大型并行计算机系统中的计算节点的方块图;

图4是大型并行计算机系统中的计算节点的环形网络硬件的方块图;

图5是大型并行计算机系统中的环形网络数据分组的方块图;

图6是表示大型并行计算机系统的一部分以说明实例的方块图;

图7是表示大型并行计算机系统的一部分以说明另一实例的另一方块图;

图8是用于监视节点和网络以在并行计算机系统中建立问题列表的方法流程图;以及

图9是用于在并行计算机系统中使用提示位来动态地重新路由节点处理的方法流程图。

具体实施方式

本文中的公开内容和权利要求书涉及一种装置和方法,用于在不重新启动在大型并行计算机系统上执行的应用的情况下,使用提示位来动态地重新路由该系统的计算节点上的节点业务。当节点具有故障或存在其可能出现故障的指示时,暂停系统上的应用软件,同时将故障节点上的数据移动至后备节点。绕过故障节点来路由环形网络业务,并且将故障节点的业务重新路由至后备节点。将根据国际商业机器公司(IBM)开发的BlueGene/L大型并行计算机来描述实例。

图1示出表示诸如Blue Gene/L计算机系统之类的大型并行计算机系统100的方块图。Blue Gene/L系统是其中计算节点的最大数目为65,536的可伸缩系统。每一节点110具有专用集成电路(ASIC)112,还称为BlueGene/L计算芯片112。计算芯片合并有两个处理器或中央处理器单元(CPU)并安装于节点子卡114上。节点通常还具有512兆字节的本地存储器(未示出)。节点板120容纳32个各自具有节点110的节点子卡114。因此,每一节点板具有32个节点,每一节点具有2个处理器,以及用于每一处理器的关联存储器。机架130为含有32个节点板120的外壳。节点板120中的每一个用中平面连接器134连接到中平面印刷电路板132中。中平面132在机架内部并且未在图1中示出。整个Blue Gene/L计算机系统将容纳于64个机架130或机柜中,每个机架130或机柜中均具有32个节点板120。整个系统然后将具有65,536个节点及131,072个CPU(64个机架×32个节点板×32个节点×2个CPU)。

Blue Gene/L计算机系统结构可被描述为具有I/O节点表面的计算节点核心,其中到1024个计算节点110的通信由具有连接至服务节点140的I/O处理器170的每一I/O节点处理。I/O节点没有本地储存装置。I/O节点经由逻辑树状网络连接至计算节点并且还具有经由功能网络(未示出)的功能性广域网络能力。功能网络连接至位于节点板120上的处理从服务节点160到多个节点的通信的I/O处理器(或Blue Gene/L链路芯片)170。Blue Gene/L系统在连接至节点板120的I/O板(未示出)上具有一或多个I/O处理器170。I/O处理器可被配置为与8个、32个或64个节点进行通信。除了I/O节点不连接至环形网络以外,到I/O节点的连接类似于到计算节点的连接。

再次参照图1,计算机系统100包括服务节点140,其处理使用软件加载节点并控制整个系统的操作。服务节点140通常为诸如使用控制台(未示出)执行Linux的IBM pSeries服务器之类的微型计算机系统。服务节点140使用控制系统网络150连接至计算节点110的机架130。控制系统网络提供针对Blue Gene/L系统的控制、测试及提升基础结构。控制系统网络150包括为大型并行计算机系统提供必要通信的各种网络接口。下文进一步描述网络接口。

服务节点140管理专用于系统管理的控制系统网络150。控制系统网络150包括连接至Ido芯片180的专用100-Mb/s以太网,该Ido芯片180位于处理从服务节点160到多个节点的通信的节点板120上。由于此网络使用JTAG协议进行通信,所以有时称其为JTAG网络。经由与服务节点进行通信的JTAG端口支配节点板120上的计算节点110的所有控制、测试及运作。另外,服务节点140包括维护问题列表144的节点/网络监视器142,该问题列表144指示已出现故障、可能正出现故障的节点,或需避开的网络链路。节点/网络监视器包括在服务节点140中的软件,但可能由在系统的节点上执行的操作系统软件协助。

Blue Gene/L超级计算机经由若干通信网络进行通信。图2是示出BlueGene/L计算机系统上计算节点的I/O连接的方块图。65,536个计算节点和1024个I/O处理器170布置成逻辑树状网络和逻辑三维环形网络两者。环形网络在晶格状结构中逻辑地连接计算节点,允许每一计算节点110与其最接近的6个邻居进行通信。在图2中,由将节点连接至六个相应邻近节点的X+、X-、Y+、Y-、Z+及Z-网络连接来例示环形网络。树状网络在图2中由树0、树1及树2连接表示。连接至节点的其他通信网络包括JTAG网络及全局中断网络。JTAG网络提供用于经由图1中所示的控制系统网络150来自服务节点140的测试和控制的通信。全局中断网络用于针对计算节点上类似处理的同步而实施软件屏障,以在完成某任务后移动至处理的不同阶段。全局中断网络可因此用于启动、停止和暂停在节点的分区上执行的应用。此外,存在到每一计算节点110的时钟和功率信号。

Blue Gene/L环形互连以逻辑3D笛卡尔阵列将每一节点连接至其六个最近的邻居(X+、X-、Y+、Y-、Z+、Z-)。到该六个邻居的连接在节点层以及在中平面层处完成。每一中平面为8×8×8节点阵列。中平面内的节点阵列的六个面(X+、X-、Y+、Y-、Z+、Z-)在大小上均为8×8=64个节点。来自六个面中的每一个面上的64个节点的每一环形网络信号经由连接至中平面的链路卡(未示出)传送至邻近中平面内的相应节点。当中平面用于在任何维度中具有一个中平面的深度的分区中时,每一面的信号也可路由回在相对面上的同一中平面的输入。

图3例示根据现有技术的Blue Gene/L计算机系统中的计算节点110的方块图。计算节点110具有节点计算芯片112,后者具有两个处理器310A、310B。每一处理器310A、310B具有一处理核心312。处理器连接至三级存储器高速缓存(L3高速缓存)320,以及连接至静态随机存取存储器(SRAM)存储器组330。来自L3高速缓存320的数据借助双数据速率(DDR)存储器控制器350加载至一组DDR同步动态随机存取存储器(SDRAM)340。

再次参照图3,SRAM存储器330连接至JTAG接口360,在JTAG接口360处,通信离开计算芯片112到达Ido芯片180。服务节点经由以太网链路通过Ido芯片180与计算节点进行通信,该以太网链路为控制系统网络150(上文参照图1描述)的一部分。在Blue Gene/L系统中,每一节点板120存在一个Ido芯片,并且其他在每一中平面132(图1)中的板上。Ido芯片使用原始UDP分组经由受信专用100Mbit/s以太网控制网络接收来自服务节点的命令。Ido芯片支持用于与计算节点通信的多种串行协议。JTAG协议用于从服务节点140(图1)向计算节点110中SRAM 330的任何地址进行读和写,并用于系统初始化和引导(booting)处理。

在图3中例示的节点计算芯片112还包括网络硬件390。网络硬件390包括用于环392、树394和全局中断396网络的硬件。Blue Gene/L的这些网络用于使计算节点110如上文简要描述地与系统中的其他节点进行通信。网络硬件390允许计算节点经由环形网络接收并传递数据分组。网络硬件390独立地处理网络数据业务,因此计算节点的处理器不承受由在环形网络上流动的数据量所引起的负担。这种通过节点的去往另一节点的网络数据被称为“直通”业务。

图4例示图3中介绍的环形网络硬件392的方块图。环形网络硬件392包括三个主要单元(处理器接口410、环形发送器420和环形接收器430)。处理器接口410包括处理器注入412和处理器接收414FIFO(其中存取根据先进先出规则的队列)。对这些FIFO的存取经由来自处理器(图3中的310A、310B)的双浮点单元(FPU)寄存器(未示出);即,数据从一对FPU寄存器经由128位存储器映射的储存器被加载到FIFO,并且数据经由128位加载被从FIFO读取至FPU寄存器。存在组织成两个组的总共八个注入FIFO:两个高优先级(用于节点间操作系统消息)和六个正常优先级FIFO,其对于最近邻居连接性而言是足够的。所有FIFO中的分组可在环形网络上以任何方向离开。在处理器接收FIFO 414中,也存在两组FIFO。每一组含有七个FIFO,一个高优先级并且一个专用于六个入站方向中的每一个方向。具体地,在每一接收器与其相应接收FIFO之间存在专用总线。对于储存器,所有环形FIFO都使用由错误检查与校正(ECC)保护的静态随机存取存储器芯片(SRAM),并且将检查所有内部数据路径的奇偶校验。

上文描述的环形网络硬件392跨各种环形网络引导可变大小的数据分组。图5例示环形网络分组510的实例。Blue Gene/L系统中的每一分组510为n×32个字节,其中n=1至8个″大块″。诸如那些符合消息传递接口标准(MPI)的消息可包括许多分组,由在图3中的一个或两个关联BlueGene/L处理器310A、310B上执行的软件构建、发送和接收所述分组。每一分组的前八个字节为分组标头512。分组标头512含有链路层协议信息(例如,序号);路由信息,包括目的地;虚拟通道及大小;以及在传输期间检测标头数据破坏的字节宽循环冗余校验(CRC)514。分组标头512还包括下文进一步描述的提示位516。

再次参照图5,在分组标头512之后包括多个数据字节518。另外,24位CRC连同单字节有效指示符520附加至每一分组。由于分组可在被完全接收之前开始转发,所以有效指示符是必要的。此CRC允许在经由每一链路发送分组时检查每一分组。为被破坏分组的重传使用超时机制。由于标头CRC包括在完整分组CRC中,所以八位分组标头CRC的使用是一种优化,其允许早期检测分组标头错误。

如上文所介绍,标头512包括六个“提示”位516。提示位516指示其中可在环形网络的三个维度中路由分组的方向。提示位以XYZ顺序定义如下:X+、X-、Y+、Y-、Z+、Z-。例如,为100100的提示位意味着分组可在x+和y-方向上路由。由于一个设置位指示在该维度中以哪个方向引导分组,所以可设置x+或者x-提示位,但不能设置两者。缺省值是所有提示位都被复位或为0以指示可在任何方向上发送分组。

在环形网络中,通常存在数据在节点之间流动的维度顺序。假设在本文实例中的维度顺序为XYZ,但也可使用其他顺序。XYZ的维度顺序意味着数据将首先在X维度中从节点流动,接着通过Y维度中的节点,接着通过Z维度中的节点。分别在XYZ维度中的路由中使用XYZ提示位。

每一节点都维护一组控制环形功能的软件可配置寄存器(未示出)。例如,一组寄存器含有其邻居的坐标。当分组在一方向上离开一节点时设置提示位为0,以使得其将到达其在该维度中的目的地,如由邻居坐标寄存器所确定的。这些提示位较早出现于标头中以使得仲裁可被有效地管线输送。提示位可由软件或者硬件初始化;若由硬件完成,则使用每维度一组两个寄存器来确定适当方向。这些寄存器可被配置为提供最小跳数路由。通过检查提示位和虚拟通道来整体完成路由;即,不存在路由表。可动态地或者确定维度顺序地(xyz)路由分组。即,其可基于其他业务遵循最小拥塞的路径,或者其可在固定路径上被路由。除点对点分组之外,可设置标头中的位以使得分组沿任何笛卡尔维度向下广播且沉积于每一节点处。软件可适当地设置提示位,以使得如下文进一步描述的那样避开″死″节点或链路。当存在最多三个非共线性故障节点时,可保持完整的连接性。

图6示出表示图1中所示的大型并行计算机系统的一部分600以说明实例动态重新路由节点业务的方块图。并行计算机系统的一部分600例示标记为节点1 610至节点9 612的九个节点。图6中的节点仅例示X和Y维度中的节点以简化实例,但应认识到,计算机系统还可具有位于Z维度中的节点。X及Y维度如XY轴614指示。对于此实例而言,假设应用正在节点1 610至节点8 622上执行。当在节点5 618上检测到故障或潜在故障时,应用暂时中止或暂停,并通过等待直至清除FIFO中所有网络业务为止而使网络静默。故障节点618上的应用然后被移动至备用节点(节点9612)。然后更新可能需要通过故障节点移动数据的每一节点,以通过向所有节点或至少向受影响节点发送已更新的问题列表(图1中的144)而避开故障节点。

再次参照图6,节点使用已更新的问题列表以确保绕过受影响节点或网络来路由数据。然后在从每一节点发送的数据分组中设置适当提示位以便将绕过故障节点来路由分组。在图6示出的实例中,来自节点2 620的数据分组将具有针对X-设置的提示位,以引导分组在X-方向上行进至节点8并因此避开故障节点。类似地,来自节点8 622的数据分组将具有针对X+设置的提示位,以引导分组在X+方向上行进至节点2。此外,来自节点4624的数据分组将具有针对Y+设置的提示位,以引导分组在Y+方向上行进至节点6并因此避开故障节点,而来自节点6 626的数据分组将具有针对Y-设置的提示位,以引导分组在Y-方向上行进至节点4。

图7示出表示图1所示的大型并行计算机系统的一部分700以例示用于动态地重新路由节点业务的另一实例的方块图。此实例例示如何针对非邻近节点使用提示位。此外,并行计算机系统的一部分700例示如针对图6在上文描述的标记为节点1 610至节点9 612的九个节点。在此实例中,在节点8 622上检测到故障或潜在故障。应用被暂停并使网络静默,并且故障节点618上的应用然后被移动至备用节点(节点9 612)。如上文,然后更新可能需要通过故障节点移动数据的每一节点,以通过向受影响节点发送已更新的问题列表(图1中的144)而避开故障节点。然后设置提示位以确保绕过故障节点来路由数据。在图7的实例中,来自节点1 610的数据分组将没有针对X方向设置的提示位,这是由于故障节点不在此方向上。但节点1 610将设置Y+提示位,以引导分组在Y+方向上行进。当来自节点1610的分组到达节点7 628并开始在Y维度中行进时,其将如设置的Y+提示位指示的被引导在Y+方向上行进至节点9 612并因此避开故障节点8622。

如上文所介绍,提示位也可用于绕过拥塞网络进行动态路由。作为一实例,考虑图7中例示的在节点8 622与节点5 618之间的网络710。如果网络监视器(图1中的142)将网络710用标志表示为拥塞网络,则以如上文针对绕过节点8 622进行路由而描述的相同方式,使用提示位绕过此网络进行动态路由。备选地,节点可能承受由直通业务引起的过度负担。例如,如果节点8由于通过节点8 622的直通业务而被节点/网络监视器确定为过载,则节点8上的处理被动态地重新路由至可用交换节点以减轻在节点8上执行的处理或应用上所加载的直通业务。

图8示出用于在并行计算机系统中监视节点以动态地重新路由故障节点的处理的方法800。此方法由服务节点上的软件执行,但可能需要在节点上的软件和/或硬件来收集所需信息。首先,监视网络(步骤810)并将网络热点记录在问题列表中(步骤820)。接着,监视节点(步骤830)并将故障节点或可能出现故障的节点记录在问题列表中(步骤840)。方法然后完成。

图9示出用于在并行计算机系统中动态地重新路由故障节点的处理的方法900。此方法优选地由在并行计算机系统的每个节点上的软件和/或硬件执行。首先,检测由服务节点上的网络监视器发送的含有需避开节点或网络的已更新问题列表(步骤910)。接着,暂停在具有故障节点的并行系统的分区上执行的应用(步骤920)。接着,通过等待直至环形网络硬件FIFO已完成发送其消息为止而使网络静默(步骤930)。接着定位用于网络的交换节点或备选路径(步骤940)并将故障节点的处理迁移至交换节点(步骤950)。接着,通知将通过故障节点或网络发送网络业务的节点使用提示位来隔离节点并绕过故障节点或拥塞网络来路由网络业务(步骤960)。应用然后可从其暂停的点恢复(步骤970)。方法然后完成。

本发明的公开内容包括一种用于在不重新启动在大型并行计算机系统上执行的应用的情况下使用提示位动态地重新路由所述系统的计算节点上的节点业务的方法和装置。动态地重新路由节点业务可显著地减少停机时间量,从而提高计算机系统的效率。本领域普通技术人员可理解,可以在计算机软件中实现该方法。

本领域普通技术人员可理解,在权利要求的范围内可进行许多修改。因此,尽管在上文中特定地示出和描述发明的公开内容,但本领域普通技术人员可理解,在不脱离权利要求的精神和范围的情况下可在其中进行形式和细节上的这些和其他改变。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号