首页> 中国专利> 改进计算机系统中的块分配时间的方法和装置

改进计算机系统中的块分配时间的方法和装置

摘要

本发明提供了一种改进并行计算机系统中的块分配时间的方法和装置。预计到来自用户应用的需求,预加载控制器预加载超级计算机群集中的硬件的块。在优选实施例中,根据预置参数和所述计算机系统的先前使用,所述预加载控制器确定何时预加载计算节点以及确定分配节点的块大小。进而,在优选实施例中,所述并行计算机系统中的计算节点的每个块都具有存储的硬件状态以指示该块是否正在被预加载或已被预加载。在优选实施例中,将所述硬件状态存储在连接到计算机的控制系统的数据库中。在其他实施例中,所述计算节点是分布式计算机系统中的远程计算机。

著录项

  • 公开/公告号CN1987794A

    专利类型发明专利

  • 公开/公告日2007-06-27

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN200610139313.0

  • 申请日2006-09-22

  • 分类号G06F9/46;G06F9/445;

  • 代理机构北京市中咨律师事务所;

  • 代理人于静

  • 地址 美国纽约

  • 入库时间 2023-12-17 18:50:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-11-21

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20100908 终止日期:20110922 申请日:20060922

    专利权的终止

  • 2010-09-08

    授权

    授权

  • 2007-08-22

    实质审查的生效

    实质审查的生效

  • 2007-06-27

    公开

    公开

说明书

技术领域

本发明主要涉及计算机系统和开发,并且更具体地说,涉及在超级计算机或分布式计算机系统中通过系统映像和数据文件预加载来改进块分配时间。

背景技术

超级计算机持续被开发以处理复杂的计算作业。对于高性能计算(HPC)应用(包括生命科学、金融建模、流体动力学、量子化学、分子动力学、天文学和空间研究以及气候建模)来说,这些计算机对科学家尤其有用。针对日益复杂的计算需求,超级计算机开发者已将精力集中于大规模并行计算机结构来解决此需求。国际商业机器公司(IBM)正在以BlueGene的名称开发这种大规模并行计算机族。Blue Gene/L系统是一种可伸缩的系统,其中当前计算节点的最大数目为65,536。Blue Gene/P系统是一种可伸缩的系统,其中计算节点的最大设计数目为73,728。Blue Gene/P节点包括具有4个CPU以及存储器的单个ASIC(专用集成电路)。完整的计算机将被容纳在72个机架或机柜(其中每个都具有32个节点板)中。

在Blue Gene超级计算机以及其他超级计算机中,将计算节点布置在通过服务网络与服务节点中的控制系统通信的计算和I/O节点的群集中。将一个或多个计算机硬件的群集分配到块中以运行软件应用。所述计算和I/O节点具有用于其操作系统的易失性存储器,每次为要运行的软件应用分配了硬件块时,都必须通过所述服务网络来加载所述操作系统。因为系统时间被用于将操作系统映像加载到硬件、使I/O节点和计算节点内核完成其引导以及此后所有硬件向控制系统报告,所以这种块分配的现有技术方法导致每个作业花费更长的时间运行。只有在完成此过程后,控制系统才可以开始将应用或作业加载到块以便执行的过程。在Blue Gene之类的大规模并行超级计算机系统上,由于总体系统的高成本,系统的利用率很重要。因此,能够通过降低块分配时间来减少总体系统停机时间是有利的。

分布式计算机系统具有与大规模并行计算机系统类似的总体体系结构。但是,分布式计算机具有若干可能不是同类的并且可能位于远程的计算节点,而不是一组在单个位置中互连的可能相同的计算节点。分布式计算机系统可以具有与上面描述的问题类似的问题,这是因为直到计算实体具有用于完成指定任务所必需的系统和数据文件后,才能将工作分配给分布式计算节点或节点块。

在没有减少块分配时间的方法的情况下,超级计算机和分布式计算机在继续进行加载应用的过程之前,将继续需要等待将操作系统映像和数据文件加载到所有硬件块中,由此浪费了潜在的计算机处理时间。

发明内容

根据优选实施例,提供了一种改进计算机系统中块分配时间的方法和装置。在优选实施例中,所述并行计算机系统中的计算节点的每个块都具有存储的硬件状态以指示该块是否正在被预加载或已被预加载。在优选实施例中,将所述硬件状态存储在计算机控制系统内的数据库中。此外,优选实施例包括预加载控制器,所述预加载控制器根据预置参数和所述计算机系统的先前使用来确定何时预加载所述计算节点以及确定块大小以分配所述节点。

根据Blue Gene体系结构描述了并行计算机实施例,但是所述实施例可以在任何在网络结构中布置了多个处理器的并行计算机系统上实现。优选实施例对大规模并行计算机系统尤为有利。使用分布式计算机系统体系结构描述了其他实施例。

如附图中示出的,从以下对本发明的优选实施例的更具体的描述,本发明的上述以及其他特征和优点将是显而易见的。

附图说明

下面将结合附图描述本发明的优选实施例,其中相同的标记表示相同的部件,这些附图是:

图1是根据优选实施例的大规模并行计算机系统的框图;

图2是根据优选实施例的大规模并行计算机系统的另一个系统框图;

图3是根据优选实施例的大规模并行计算机系统中的硬件状态寄存器的框图;

图4是根据优选实施例的大规模并行计算机系统中与预加载控制器关联的侵占设置(aggressiveness settings)的框图;

图5是根据优选实施例的分布式计算机系统的系统框图;

图6是根据优选实施例的用于改进块分配时间的方法流程图;以及

图7是根据优选实施例的用于改进块分配时间的另一个方法流程图。

具体实施方式

本发明涉及一种用于改进并行或分布式计算机系统中的块分配时间的方法和装置。预计到来自用户应用的需求,预加载控制器预加载计算机群集中的硬件块。在优选实施例中,根据预置参数和计算机系统的先前使用,所述预加载控制器确定何时预加载计算节点以及确定块大小以分配节点。此外,在优选实施例中,所述并行计算机系统中的计算节点的每个块都具有存储的硬件状态以指示该块是否正在被预加载或已被预加载。在优选实施例中,将所述硬件状态存储在连接到计算机控制系统的数据库中。将根据由国际商业机器公司(IBM)开发的Blue Gene/P大规模并行计算机系统来描述所述优选实施例。文中所用的术语“大规模并行”意味着不只是并行计算机系统中的少量处理器。

图1示出了代表诸如Blue Gene/P计算机系统的大规模并行计算机系统100的框图。Blue Gene/P系统是一种可伸缩的系统,其中计算节点的最大数目为73728。每个节点110都包括具有4个CPU以及在节点子卡114上的存储器的单个专用集成电路(ASIC)112。每个节点110通常具有512兆字节的本地存储器。节点板120容纳有32个节点子卡114,每个节点子卡114都具有节点110。因而,每个节点板具有32个节点,具有用于每个节点的4个处理器以及用于每个处理器的关联存储器。机架130是包含32个节点板120的外壳。完整的Blue Gene/P计算机系统将被容纳在72个机架130或机柜中,每个机架或机柜中具有32个节点板120。完整的系统于是有294,912个CPU(72个机架×32个节点板×32个节点×4个CPU)。如文中所使用的,术语计算节点指具有一个或多个CPU的计算资源,并且它不限于所描述的实施例的体系结构。

再次参考图1,计算机系统100包括处理使用软件加载节点以及控制整个系统的运行的服务节点140。服务节点140通常是包括控制台(未示出)的小型计算机系统。使用控制系统网络150将服务节点140连接到计算节点的机架130。服务节点140包括在下面进一步描述的根据优选实施例的预加载控制器142。控制系统网络150包括各种为大规模并行计算机系统提供必要的通信的网络。将在以下进一步描述网络接口。

Blue Gene/P超级计算机通过若干通信网络来通信。位于某些节点板120上的I/O处理器处理在这些网络上的从服务节点140到多个节点的通信。73,728个计算节点和1024个I/O处理器被布置成逻辑树状网络和逻辑三维环面网络。所述环面网络以网格状结构逻辑地连接计算节点,该结构允许每个计算节点110与其最接近的6个邻节点通信。此外,Blue Gene/P计算机系统结构可以被描述为具有I/O节点表面的计算节点核心,其中由具有连接到服务节点140的I/O处理器170的每个I/O节点来处理到1024个计算节点110的通信。所述I/O节点没有本地存储。所述I/O节点通过树状网络连接到计算节点,并且通过千兆位以太网还具有实用的广域网能力。

图2示出了代表查看Blue Gene/P计算机系统的系统体系结构的另一种方式以说明优选实施例的更多细节的另一个框图。图2包括作为与计算机系统100的控制系统212相连的计算核心210的计算机系统100的所有计算节点110的表示。如以上参考图1简要说明的,计算核心210在控制系统网络150上与控制系统212的服务节点140通信。通过经由JTAG网络219连接到各I/O节点216和计算节点110的硬件控制器270,计算核心210被连接到控制系统网络150。硬件控制器270位于机架130(图1)中,并且为控制系统212提供接口以配置计算节点110并将数据加载到计算节点的存储器中。在Blue Gene/L计算机系统中,硬件控制器270被称为AIDochip。

进而,如图2所示,计算核心210还通过功能网络240与文件服务器220和前端节点230通信。文件服务器220存储用于用户应用和系统映像的数据。前端节点230保存用于用户与计算机网络100交互的编译器和程序。控制系统212包括称为ADB2”250的连接到前端节点230和服务节点140的数据库。DB2保存由服务节点140内的中间背板管理和控制系统(MMCS)144使用的块表和其他硬件信息。MMCS144负责控制在计算核心210中分配硬件。在优选实施例中,MMCS144包括如下面进一步描述的使用系统和数据文件预加载计算节点的预加载控制器142。在优选实施例中,预加载控制器142包括同样在下面描述的侵占设置146。在文中的优选实施例中,DB2 250保存如下面进一步描述的计算节点110的块的硬件状态252。控制系统212也被连接到功能网络240。在优选实施例中,此连接允许控制系统检测硬件块在如下所述被加载了系统映像和数据文件后何时完成引导过程。控制系统212还包括由系统管理员使用的控制台260。

再次参考图2,计算核心210示出了容纳在机架130(图1)中的计算节点110。计算节点被分组成通过表示示出的1024个处理器组(Pset),其中明确示出了Pset0 213a和Pset1023 213b,并且隐含其余的Pset(Pset1到Pset1022)。Pset是一组64个节点,它们被一起分组到集合中以便与I/O节点216通信。I/O节点216在功能网络和其他网络上提供了到处理器组中的计算节点110的通信。在Blue Gene/P系统中,I/O节点216与8和128之间的计算节点110(由节点0和节点63表示)通信。如所示出的和以上简要描述的,节点110通过树状网络214连接。

再次参考图2,每个计算节点110包括存储在计算节点110的本地存储器中的系统映像和数据文件218。系统映像文件包括诸如操作系统内核之类的系统文件。具有操作系统内核的系统映像文件218被存储在计算节点的易失性存储器中,并且在可以使用计算节点之前,系统映像文件218必须被加载所需的软件并被分配到块中。在优选实施例中,如下面进一步描述的,预加载所述操作系统内核以改进超级计算机中的块分配时间。

在Blue Gene/P超级计算机中,每个机架被分为两个具有服务卡的中间背板,所述服务卡提供从服务节点140到各中间背板的通信。所述中间背板各自具有机架32个节点板120中的一半。在Blue Gene/P计算机系统中,中间背板是计算节点和I/O节点群集的基本粒度大小。当硬件(一个或多个中间背板)的群集被一起使用以运行软件应用时,它就被称为块。因而,硬件的一个或多个中间背板可以被分配给块。

当用户建立在计算机系统上运行的应用时,做出对服务节点140的请求以将计算机硬件的群集分配成块以运行软件应用。由于计算和I/O节点具有用于其操作系统的易失性存储器,所以在能够运行应用之前,所述节点必须被加载合适的软件以及分配的硬件。在现有技术的方法中,在应用的请求之后完成块分配。相比之下,在优选实施例中,由位于服务节点140中的预加载控制器在应用的请求之前使用系统软件来预加载块。进而,在优选实施例中,将新的硬件状态指派给计算节点110和I/O节点216的块。硬件状态252被存储在DB2 250中。现有技术的硬件包括状态:用于空闲的或可用的“F”或用于丢失的“M”以及用于已初始化的“I”。

图3示出了根据优选实施例的硬件状态。存储在DB2表中的硬件状态252包括现有技术状态F310、M312和I318,还包括状态加载(状态L314)和预加载(状态P316)。将新的状态L和P指派给任何处于加载过程中或已被成功地预加载的硬件。通过在计算节点110中预加载系统软件,控制系统使用这些新的状态来更有效地运行作业。在现有技术中,当硬件已经被加载并且被分配给用户后,其被更改为“I”状态318以等待用户请求。相比之下,在优选实施例中,预加载硬件并将其设置为“P”状态316,然后当将块分配给用户时,硬件状态被更改为“I”状态318。

在优选实施例中,计算机100的预加载控制器监视预加载计算机资源或硬件的时机。预加载控制器周期性地搜索系统以查找计算机资源或硬件,例如当前可用并且当前没有与块关联的计算节点。当找到空闲资源时,预加载控制器检查施加到计算机系统上的当前工作负荷,并且检查运行作业的请求的最近的级别。这些变量用于为控制系统确定预加载任何空闲资源或硬件的最佳时间,以便能够在下一用户请求其他块之前加载所述资源或硬件,但又不太会减缓正在运行的其他作业的进度。当预加载了计算机资源或硬件时,在DB2 250中更改硬件状态252并将其置于硬件池中。所述硬件池可以被看作具有预加载的硬件状态252的资源或硬件的集合。文中所使用的计算机资源指物理硬件或虚拟硬件。

在优选实施例中,用户可以调整预加载控制器用于预加载硬件的侵占级别。图4示出了若干与预加载控制器142关联的侵占设置146的实例。这些设置由系统管理员通过服务节点140(图1)来建立。频率侵占设置410设置了调用预加载控制器以查找可用硬件之间的频率或时间。最小/最大块大小侵占设置412设置了预加载控制器分配和加载到预加载硬件池中的最小和最大块大小。如下所述,最小/最大块大小侵占设置412将取代由预加载控制器确定的历史块大小。分配的块的最大数目414设置了在预加载控制器停止尝试分配块之前分配给硬件池的块的最大数目。在周期中最多分配的块416设置了单次调用预加载控制器时分配的块的最大数目,以便控制预加载控制器施加于系统的负荷量。池中块的最小数目418设置了预加载块的池中期望的块的最小(目标)数目。如果所述池低于设置值,会导致预加载控制器更频繁地搜索空闲硬件。

在优选实施例中,预加载控制器根据先前的需求确定可能被重复请求的硬件块,以便自动地调整硬件的预加载配置和可选性。例如,如果用户在过去频繁地请求128节点的块,则一组512个空闲计算节点将被预加载为4个128节点的块,尽管在该大小的块被更频繁地请求的系统上它会被加载为一个512节点的块。相应地标记处于加载过程中的硬件,并且在加载过程完成后,将所述硬件标记为成功地预加载。对于成功地预加载的硬件,将控制连接暂时指派给控制系统以防止其他用户接管所述硬件。

图5示出了根据文中优选实施例的分布式计算机系统500的系统框图。在一个特定的分布式计算环境中,将一组位于远程的计算机组合在一起,以便以与以上在Blue Gene计算机实例中描述的方式类似的方式共同工作。在分布式计算机系统中,各计算节点的距离更加遥远并且可能不具有相同的性质(因为分布式计算机可以为不同的类型)。但是,体系结构与所描述的Blue Gene实例相当类似。在分布式计算机系统中,存在多个计算机,所述计算机包括由控制系统控制并且由网络互连的计算节点。所述分布式计算机系统同样地可以得益于具有包括预加载控制器的控制系统,所述预加载控制器在资源请求之前使用系统映像和/或数据文件预加载可用的硬件。在所述分布式计算机系统中,系统映像文件和数据文件可以不同,以说明在分布式计算机系统中不同的计算机平台中的差异。

再次参考图5,示出了根据文中的优选实施例的分布式控制系统500。分布式计算机系统500包括通过网络530连接到多个计算节点520a、520b的控制系统510。计算节点520a、520b代表多个可以在分布式计算机500中互连的各种类型的计算机。计算节点520a、520b各自具有CPU 521a、521b,本地存储器522a、522b以及存储装置523a、523b。网络530可以是用于分布式计算机系统的任何类型的网络。控制系统510可以集中位于分布式计算机系统500的单个计算机中,或者所述控制系统也可以分布于多个计算机(未示出)上。控制系统510具有多个请求访问计算机资源的客户机511。客户机511包括可以位于本地的或分布式的软件应用(未示出)。

再次参考图5,控制系统510包括控制到计算节点的工作流以便为来自客户机511的请求服务的分布式系统控制器512。根据优选实施例的分布式系统控制器的运行类似于现有技术的分布式系统控制器,但是包括如以上参考并行计算机系统描述的那样运行的预加载控制器513。预加载控制器513包括如以上参考图4描述的侵占设置514。控制系统510包括用于存储计算节点520a、520b的状态516的存储装置515。与块不太可能包括单个节点的并行计算机系统相比,在分布式计算机实施例中,预加载控制器可以将单个节点分配到块中,以便为块存储的状态516可以包括单个节点。在多数方面,涉及分布式计算机系统的实施例以与以上参考并行计算机系统实施例描述的方式相同的方式运行。

图6示出了根据文中的实施例的用于改进大规模并行计算机系统中的块分配时间的方法600。在优选实施例中,由MMCS144控制系统软件在周期性的基础上启动方法600的步骤序列以便执行如所描述的任务。预加载控制器监视诸如块大小之类的系统使用率并存储此历史数据(步骤610)。预计到用户对硬件的请求,预加载控制器还周期性地搜索可用于预加载的空闲硬件(步骤620)。检查找到的空闲硬件以判定其是否具有与用户硬件请求的历史需求和/或侵占设置(图4中的146)相一致的可以被分配的足够大小(步骤630)。如果空闲硬件与对硬件的历史需求或侵占设置不一致(步骤630=否),则所述方法结束直到下一周期的循环。如果空闲硬件与对硬件的历史需求和/或侵占设置一致(步骤630=是),则预加载所述空闲硬件(步骤640),并且将预加载的硬件置于预加载硬件池中以满足将来用户对硬件的请求(步骤650)。

图7示出了根据文中的实施例的用于改进大规模并行计算机系统中的块分配时间的另一方法700。在优选实施例中,启动方法700的步骤序列以响应来自用户应用的对硬件块的请求。响应于此请求,启动预加载控制器以检查预加载硬件池(步骤710)。如果存在合适的预加载硬件的块(步骤720=是),则预加载控制器将可用的预加载硬件块指派给发出请求的用户应用(步骤730),然后所述方法结束。如果不存在合适的预加载硬件的块(步骤720=否),则预加载控制器搜索合适的硬件的块(步骤740)。如果不存在合适的可用于用户应用的请求的硬件(步骤750=否),则将无硬件可用的错误返回用户应用(步骤760)并且所述方法结束。如果存在合适的可用于用户应用的请求的硬件(步骤750=是),则使用系统映像加载合适块大小的硬件并且将块指派给发出请求的用户应用(步骤770)。所述方法然后结束。

如上所述,诸实施例提供了一种用于改进大规模并行超级计算机系统中的块分配时间的方法和装置。通过提供具有预加载硬件的动态能力的预加载控制器,文中的实施例可以显著地减少停机时间量以便提高计算机系统的效率。在计算和I/O节点的块变得可用并且控制系统资源允许时分配所述计算和I/O节点的块。当接收到来自用户应用的请求时,硬件于是可以被动态地关联为满足用户的硬件需求的块。从用户的角度来看,当请求运行作业时所察觉的仅有延迟是将预加载硬件收集成块、将该块与用户关联以及提交所请求的作业所需的时间。与需要在请求硬件后加载并引导操作系统映像的现有技术系统相比,此简单的过程将花费少得多的时间。

本领域的技术人员将理解,在本发明的范围内许多变型都是可能的。因此,虽然参考本发明的优选实施例具体示出和描述了本发明,但是本领域的技术人员将理解,可以在不偏离本发明的精神和范围的情况下做出这些以及其他形式和细节上的更改。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号