基于改变控制模式进行机群系统能耗管控的方法 【技术领域】
本发明涉及机群系统(cluster)的能耗管控,特别涉及一种采用改变控制模式进行机群系统能耗管控的方法。
背景技术
随着高性能计算的快速发展,计算机群的快速增长导致了一个问题,即大型机群的能量消耗越来越大,节能成为了高性能计算必须考虑的重要问题。如何降低能耗已经成为高性能计算机设计中的一个重要考虑因素。很多大型机在设计过程中已经把如何有效控制系统功耗作为一个设计原则。
机群系统(cluster)是互相连接的多个独立计算机的集合,是将一些单机或工作站通过高速网络相互连接。其中每个结点都有自己独立的存储器、I/O设备等。机群系统提供给用户的是一个单一的系统,为客户提供高可靠性的服务。
低功耗技术研究出现于硬件电路设计领域,随着研究的发展,在体系结构、编译器、操作系统及网络等各层次展开,涉及领域包括嵌入式系统、桌面系统和服务器系统等。低功耗管理的硬件从磁盘、人机交互设备、网卡等各类外设到处理器、内存和总线等核心部件。目前,低功耗研究大多集中在操作系统层次,针对单机降低自身的能耗。对于大规模的机群系统并行计算这个层次而言,未见相关报道。
【发明内容】
本发明的目的是提供一种采用改变控制模式进行机群系统能耗管控的方法,该方法通过对机群系统进行实时的观察,依据机群系统中计算节点的状态以及高性能计算任务的特征来改变机群系统计算节点的控制模式,动态调整机群系统计算节点的状态,通过管控节点对机群系统中的计算节点进行计算任务运行情况下的系统级的管理和控制,在不影响整体计算效能的前提下,降低高性能计算机的运行时功耗,以达到高效能、低功耗的目的。该方法是在结合单机能耗控制与机群系统的特点加以策略级的控制而得到。
本发明是一种基于改变控制模式进行机群系统能耗管控的方法,其能耗管控包括有下列处理步骤:
步骤一:管控节点通过接口层实时查询计算节点的状态CO{AN,BN,CN,DN,EN},若计算节点为空闲时,则依据空闲时间将计算节点分别设置为CN状态、DN状态或EN状态;
步骤二:当有计算任务时,管控节点分配计算任务的规则为:
(A)若有空闲计算节点时,则管控节点分配计算任务给该计算节点,并执行步骤三;
(B)若无空闲计算节点时,则唤醒处于CN状态、DN状态或EN状态的计算节点,并分配计算任务给该计算节点,并执行步骤三;
(C)若计算节点都处于AN状态,则不分配计算任务;
步骤三:管控节点依据任务负载CQ{M,D,T}发送控制命令CT{IDN,MN}来设置计算节点运行任务时的控制模式CM{AM,BM,CM,DM,EM};
所述计算节点运行任务时的控制模式CM{AM,BM,CM,DM,EM}中的物理意义为:
AM表示当计算任务量固定,并且性能要求大于节能要求时,使用性能优先模式,这是一种自动控制模式,不需要额外的设定;
BM表示当计算任务量固定,并且节能要求大于性能要求时,使用节能模式,这也是一种自动控制模式,不需要额外的设定;
CM表示当计算任务量动态变化,变化呈现一定的规律并且变化次数不超过设定的阀值时,选择使用手动模式,在这种模式下可以手动控制使用的CPU核的数量,以及每个CPU的主频;
DM表示当计算任务量动态变化,并且变化次数超过设定的阀值时,选择使用半自动模式,这是一种半自动控制模式,需要使用者设定主频变换的计算任务量临界值以及节能倾向;
EM表示当处理器没有任务时,空闲时间达到一定的阀值后,依据空闲的时长,设定机器进入不同的休眠状态;
步骤四:当计算节点收到管控节点的控制命令CT{IDN,MN}后,并依据该控制命令CT{IDN,MN}设置相应的控制模式,并执行分配的计算任务。
本发明的机群系统能耗管控具有如下优点:
①利用计算节点状态来进行任务分配,动态调整机群系统中运行的计算节点的数量,避免改变不必要的计算节点的状态。
②依据高性能的计算任务特征进行管控节点的规则订制,在保证机群系统计算性能前提下,降低机群系统的功耗。
③低功耗管控加载于管控节点上,由管控节点控制机群系统能耗,控制方便。
【附图说明】
图1是机群系统的低功耗管控层次结构图。
图2是本发明用于测试的机群系统结构图。
图3是节点能耗状态转换图。
【具体实施方式】
本发明的一种采用改变控制模式进行机群系统能耗管控地方法,包括有下列处理步骤:
步骤一:管控节点通过接口层实时查询计算节点的状态CO{AN,BN,CN,DN,EN},若计算节点为空闲时,则依据空闲时间将计算节点分别设置为CN状态、DN状态或EN状态(参见图3所示)。
所述的计算节点的状态CO{AN,BN,CN,DN,EN}中AN表示计算节点处于运行状态,BN表示计算节点处于空闲状态,CN表示计算节点处于待机状态,DN表示计算节点处于挂起到内存状态,EN表示计算节点处于挂起到硬盘状态,N表示任意一个计算节点。
在本发明中,计算节点能耗状态转换关系为:
AN和BN状态时,计算节点能耗处于最高,即“活跃状态”;
CN状态时,计算节点只关闭显示器,而维持其余部件的供电;
DN状态时,计算节点将CPU运行时环境保存到RAM存储器,并将除RAM之外的部件断电,只供给RAM必要的电量维持数据;
EN状态时,计算节点将CPU运行时环境和存储器状态保存到本地硬盘,然后关闭除网卡之外所有部件的供电,只保留网卡供电用于唤醒。
图3中,BN状态至CN状态所需的等待时间记为t1,BN状态至CN状态的空闲时间记为TB→C,且t1=3min~10min;
CN状态至DN状态所需的等待时间记为t2,CN状态至DN状态的空闲时间记为TC→D,且t2=3min~10min;
DN状态至EN状态所需的等待时间记为t3,DN状态至EN状态的空闲时间记为TD→E,且t3=10min~30min。
若计算节点中TB→C>t1时,则计算节点转入CN状态。
若计算节点中TC→D>t2时,则计算节点转入DN状态。
若计算节点中TD→E>t3时,则计算节点转入EN状态。
而计算节点无论处于何种休眠状态,节点一旦分配了新的任务,都转向活跃状态。
在本发明中,步骤一利用计算节点状态来进行任务分配,动态调整机群系统中运行的计算节点的数量,避免改变不必要的计算节点的状态。
步骤二:当有计算任务时,管控节点分配计算任务的规则为:
(A)若有空闲计算节点时,则管控节点分配计算任务给该计算节点,并执行步骤三;
(B)若无空闲计算节点时,则唤醒处于CN状态、DN状态或EN状态的计算节点,并分配计算任务给该计算节点,并执行步骤三;
(C)若计算节点都处于AN状态,则不分配计算任务。
步骤三:管控节点依据任务负载CQ{M,D,T}发送控制命令CT{IDN,MN}来设置计算节点运行任务时的控制模式CM{AM,BM,CM,DM,EM};
所述计算节点的任务负载CQ{M,D,T}中M表示计算任务规模,D表示分配给节点任务量的变化频率,T表示任务执行时间。
所述控制命令CT{IDN,MN}中IDN表示需要设置的计算节点,MN表示需要设置的控制模式CM{AM,BM,CM,DM,EM}中的一种。
所述计算节点运行任务时的控制模式CM{AM,BM,CM,DM,EM}中的物理意义为:
AM表示当计算任务量固定,并且性能要求大于节能要求时,使用性能优先(performance)模式,这是一种自动控制模式,不需要额外的设定;
BM表示当计算任务量固定,并且节能要求大于性能要求时,使用节能(powersave)模式,这也是一种自动控制模式,不需要额外的设定;
CM表示当计算任务量动态变化,变化呈现一定的规律并且变化次数不超过设定的阀值时,选择使用手动(userspace)模式,在这种模式下可以手动控制使用的CPU核的数量,以及每个CPU的主频;
DM表示当计算任务量动态变化,并且变化次数超过设定的阀值时,选择使用半自动(ondemand)模式,这是一种半自动控制模式,需要使用者设定主频变换的计算任务量临界值以及节能倾向;
EM表示当处理器没有任务时,空闲时间达到一定的阀值后,依据空闲的时长,设定机器进入不同的休眠状态。
在本发明中,依据步骤二高性能的计算任务特征进行管控节点的规则订制,在保证机群系统计算性能前提下,降低机群系统的功耗。将步骤二和步骤三有机关联,使得低功耗管控加载于管控节点上,由管控节点控制机群系统能耗,控制方便。
步骤四:当计算节点收到管控节点的控制命令CT{IDN,MN}后,并依据该控制命令CT{IDN,MN}设置相应的控制模式,并执行分配的计算任务。
在本发明中,通过管控节点对计算节点状态以及计算节点运行状态控制模式的协调管理来降低机群系统的能耗。
本发明的能耗管控方法,是通过改变机群系统计算节点的状态来降低系统能耗。针对运行任务的特点,基于改变机群系统计算节点控制模式的策略,由管控节点通过接口层提供的接口发送控制命令给节点层执行,实现管控节点对计算节点的状态控制;针对计算任务量的特点选择不同的控制模式,控制计算节点的能耗状态以及控制空闲的计算节点进入不同的休眠状态。
管控层次结构如图1所示,整个低功耗管理和控制分为节点层、接口层和策略层,由三个层次协同完成管控目标。其中第一个部分负责底层的实现细节,后两个部分实现管理策略并对其他系统软件提供接口。
首先在管控节点中设定控制模式CM{AM,BM,CM,DM,EM}。有计算任务运行情况下通过策略层设定系统的控制模式。设定好控制模式后,当达到特定的控制条件时,需要改变节点的状态。管控节点通过接口层调用相关接口,完成对低功耗控制的启动/关闭或者对管理策略进行查看/修改以及实现对单个节点的状态进行查看/修改。
节点层收到接口层的命令后,通过ACPI(Advanced Configuration and PowerManagement Interface)提供的控制接口完成单节点的低功耗控制,其中包括节点的多睡眠模式及唤醒、节点电源开/关、处理器主频控制等,以及响应节点状态查询/设置。
节点层由分布在各节点上的低功耗管理代理构成,用于实现以下功能:状态查询(回复所查询的本节点当前状态)与状态设置(设置本节点状态)以及相关的自动监测以实现管理策略。节点层具体完成节点的低功耗控制,包括节点的多睡眠模式及唤醒、节点电源开/关、处理器主频控制等。具体的控制操作通过ACPI提供的处理器、系统主板及电源的控制接口来实现。由于系统包含各种异构节点,每种节点的可控制参数、控制接口各不相同,因此,需要为不同类型的节点设计不同的低功耗管理代理。低功耗管理代理提供远程管理接口,使得系统的所有节点可以按照统一的管理策略进行低功耗控制,如是否在处理器空闲时降低主频、节点空闲多长时间进入睡眠状态、是否允许关闭空闲的I/O部件电源等等。低功耗管理代理同时提供对监控软件的接口,使得管理人员可以通过系统监控界面了解各节点的工作主频等信息。
接口层负责提供对管理层的接口以及对其他系统软件的接口。对管理层的接口有启动/关闭低功耗管控、查看当前应用的低功耗策略、修改当前低功耗策略、查看当前各从节点状态和修改单个从节点状态。策略层可以接口层发送相关控制命令通过节点层的远程管理代理对系统中各节点低功耗进行控制与监测,从而完成系统级低功耗的总体管理和控制。接口层实现了一组管理模块和工具,以实现相应的管理控制与监测功能。该层同时还提供与其他系统管理软件的接口,如作业管理、系统监控、系统管理等,以便将低功耗控制与系统的其他控制操作统一在一致的用户界面下进行,并实现各系统的协同工作。例如,当从作业管理系统获知新的计算任务到来时,需要自动将睡眠节点唤醒。
策略层包含了策略生成模块与手工控制模块。其中策略生成模块制定默认的系统统一能耗管理策略,并通过接口层提供的接口交由节点层执行。目前的策略设定主要针对两种情况:有计算任务运行情况与空闲时间较长情况。在有计算任务运行情况下,依据计算任务量的变化,选择合适的控制模式,调节系统的状态;在空闲时间较长的情况下,将机器休眠到不同休眠状态。具体的能耗管理策略包括:设置不同的控制模式,空闲睡眠时间阈值、计算任务量较低时降低主频、节能倾向设定、休眠空闲节点与对空闲节点派发任务时的唤醒。而手工控制模块则对应特殊需求,以便可以手动控制每个节点状态,通过调用接口层相应接口实现。
在这个体系结构中,由管理员选择由策略生成模块或者手工控制模块生成管理策略,管理协调模块根据管理策略与低功耗管理代理模块进行交互,向低功耗代理传递控制信息,低功耗管理代理模块根据管理模块传递的控制信息控制各节点的功耗。
具有5个计算节点机群系统的低功耗管控测试:
参见图2所示,该图为具有1个管控节点与5个计算节点构成的机群测试系统。整个测试系统在IBM HS21刀片服务器上进行搭建,测试过程中使用威格电子GDW1200C型功率仪对整个系统的能耗进行测量。测试系统内的所有刀片上采用Red Hat Enterprise Linux 5.0操作系统,并将内核升级至2.6.30版本。同时,为了保证测试任务集的有效性,并使用Linpack作为测试过程的任务集合。
测试过程中,分别在不同负载密度下,对使用低功耗管控时的功耗和不使用时的功耗进行测量并加以对比。针对集群系统的忙、闲状态分别进行测试,并且通过实验数据的对比,对比结果如下表:
其中:忙的状态下5个计算节点全部处于运行状态;闲的状态下4个计算节点处于运行状态,一个计算节点处于休眠状态。
测试结果表明:当机群系统处于忙的状态,负载密度越高,机群系统越繁忙管控效果越好,而实际的高性能计算机系统运行环境的特点就是庞大的计算任务规模,因此通过测试结果可知,低功耗管控在实际的高性能计算机系统中可以得到良好的效果。让机群系统中处于空闲的部分计算节点进入休眠状态,而计算节点在休眠状态下的能量消耗几乎为零,因此应用低功耗管控方法进行节能效果更加的明显。随着机群系统规模的增大,性能下降的比例越来越小,而节能比例几乎不变,因此可以预见在计算节点空闲的状态下,低功耗管控在实际的高性能计算机系统中同样可以得到良好的效果。