一种多工作域计算资源的自适应调整方法与流程

文档序号:12063472阅读:172来源:国知局
一种多工作域计算资源的自适应调整方法与流程

本发明属于分布式计算领域,更准确地说,本发明涉及一种多工作域计算资源的自适应调整方法。



背景技术:

在分布式计算领域,特别是需要进行大量计算的领域,例如在电力系统安全稳定分析领域,计算速度已成为应用功能实用化提升的关键因素。并行计算是提升大规模、复杂电网分析计算性能的有效方法,分布式计算管理平台的成熟应用促进了电力系统安全稳定分析在线应用的推广。由于在线多个应用功能存在计算周期的实时性要求,以及离线多用户具有随机性特征,其独立配置的计算资源利用率较低。分布式计算管理平台在按工作域进行计算流程组织和控制的基础上,迫切需要计算资源支持在多个工作域之间动态进行优化分配和自适应调整,有效提升在线应用的可靠性和促进离线应用计算资源的高效利用。

文献一《利用机群节点相互备份的容错方法》(专利号:CN02159479.1)提出了一种利用机群节点相互备份的容错方法。该方法在机群节点之间通过心跳环连接、相互通信和备份;主节点分配新加入节点在机群中的位置,并返回新加入节点所承担的服务信息;当机群中节点发现相邻节点异常时,向该相邻节点进行确认;主节点对该故障服务进行接管。该方法主要解决了机群管理中的节点热备用问题,但该方法并没有考虑计算资源在多个计算机群之间动态分配问题。

文献二《一种机群应用管理系统及其应用管理方法》(专利号:CN 201010286186.3)提出了一种应用于大规模集群管理的机群应用管理系统。该系统包括执行引擎模块和数据库模块,数据库模块用于实时地存储各应用的处理结果,并建立监控表记录多个应用的所有关联应用的处理结果的改变信息;执行引擎模块用于执行机群系统中的各个应用,并将各应用的处理结果实时地写入数据库模块,同时定期读取数据库模块中的监控表并根据所读取的多个应用的处理结果的改变信息,分别判断各应用的触发条件是否已满足,若触发条件满足则触发相应的应用。

文献三《一种分布式计算多应用功能异步并发调度方法》(专利号:CN201110005759.5)提出了一种多个应用功能的异步并发调度的方法,应用于分布式计算管理平台中。分布式计算管理平台综合各个应用功能的计算任务的耗时特性和数量以及计算机群节点的规模和性能信息,通过为各个应用功能独立设置合适的计算作业调度粒度,形成各个应用功能的计算作业,添加到分布式计算管理平台的调度序列中,实现多个应用功能的计算任务异步并发提交、多个应用功能的计算作业的统一调度计算和多个应用功能的计算结果异步回收。

以上三种方法中,文献一只解决了单个工作域内的节点热备用问题,没有考虑多个工作域之间节点热备用和计算资源动态分配问题;文献二基于数据库实现了应用于大规模集群管理的机群应用管理系统,没有考虑电力系统的不同数据来源(在线和离线应用场景)的应用功能运行计算周期的差异性需求。文献三只解决了单一计算机群内多个应用功能的异步并发调度的方法,且机群固定分配相应的计算资源,不能根据分布式计算管理平台在运行过程的突发情况(如工作域激活状态的变化、机群节点的运行状态等)对计算资源进行动态调整,以满足系统计算周期的需求。因此上述三种方法都没有很好地解决电力系统计算资源动态管理问题,在线系统的计算周期无法得到充分保障,离线系统的计算资源无法得到最大限度的利用。



技术实现要素:

本发明目的是:针对在线、离线不同应用场景下多个应用功能的计算特点、工作周期以及由此产生的对计算资源的动态需求,提供一种适用于分布式计算管理平台的多工作域计算资源自适应调整方法。

具体地说,本发明是采用以下技术方案实现的,包括以下步骤:

1)根据计算任务对各类计算资源的不同需求,将完成一个计算任务计算需要的各类计算资源最小组合定义为一个计算单元,将每个计算节点按照计算单元包含的计算资源进行标准化处理,将其计算能力通过计算单元的非负整数倍进行度量,进入步骤2);

2)针对电力系统在线和离线应用场景下各个应用功能的计算需求,将计算机群划分为多个工作域,各工作域基于分布式计算管理平台独立进行计算任务组织、调度和管理,计算过程中各工作域之间不直接进行计算数据和控制信息的交互;

根据各个工作域的重要等级以及其对计算时间的要求,为其统一设置参考工作周期、计算资源分配优先级、最短计算周期和最长允许计算周期参数,并依据单个计算任务在一个计算单元上的预计执行时间,将最短计算周期和最长允许计算周期转换为最大分配计算单元数和最小保留计算单元数;

当任一工作域的激活状态或任一计算节点的运行状态发生变化时,转步骤3);

3)基于各个激活的工作域设置的参考工作周期、计算资源分配优先级、最短计算周期和最长允许计算周期参数以及目前激活的工作域和正常运行的计算节点,求取各个激活的工作域预分配的计算单元数量;若当前可用的计算单元总数小于等于当前所有激活工作域的最小保留计算单元数之和,则根据各激活工作域的计算资源分配优先级由高到低顺序,按照其最小保留计算单元数依次进行计算单元预分配,直到所有计算单元分配完毕;

4)针对完成预分配的所有工作域,基于每个工作域预分配的计算单元数目和调整前各工作域已分配的正常运行计算单元数目计算出每个工作域参与调整的正常运行计算单元数目,并基于参与调整的计算节点数量尽可能少原则,结合各个计算节点的切换优先级和其包含的计算单元数目确定调整后每个计算节点的所属工作域;并对未分配到最小保留计算单元数计算资源的激活工作域给出提示;

5)每个计算节点上的分布式计算管理平台感知工作域变化信息,从原工作域切换到调整后工作域,完成计算节点在多个工作域之间的自适应调整。

上述技术方案的进一步特征在于,所述步骤1)中每个计算节点根据其具有的计算资源按照公式(1)进行计算单元标准化处理,确定每个计算节点包含的有效计算单元数目,从而对其计算能力进行度量:

其中,n为系统中机群计算节点数目,ui为第i个计算节点包含的计算单元数目,其为非负整数;

Rcpu(i)、Rmem(i)和Rio(i)分别是第i个计算节点具有的CPU、内存和IO计算资源;

Rcpu0、Rmem0和Rio0分别是标准计算单元具有的CPU、内存和IO计算资源。

上述技术方案的进一步特征在于,所述步骤2)中通过公式(2)和(3)分别将各个工作域的最短计算周期和最长允许计算周期转换为最大分配计算单元数和最小保留计算单元数:

其中,m为系统中工作域数目数量,tmin(j)为第j个工作域的最短计算周期,tmax(j)为第j个工作域的最长允许计算周期,fj为第j个工作域需要运行的应用功能数量,sjk为第j个工作域运行的第k个应用功能的计算任务数量,为第k个应用功能的单个计算任务在一个计算单元上预计执行时间,为向上取整运算符号;

cmax(j)为非负整数,表示第j个工作域的最大分配计算单元数;cmin(j)为非负整数,表示第j个工作域的最小保留计算单元数。

上述技术方案的进一步特征在于,所述步骤3)具体包括以下步骤:

3.1)将所有正常运行计算节点所包含的计算单元数量之和作为待分配计算单元数量cu的初始值,各个工作域的预分配计算单元数目初始化为0;统计当前所有激活的工作域的最小保留计算单元数之和其中m为系统中工作域数目数量,dj为第j个工作域的激活状态,其值为1表示该工作域激活,值为0表示该工作域未激活;

若转步骤3.2);否则转步骤3.8);

3.2)对处于激活状态的各个工作域,按照其计算资源分配优先级由高到低进行降序排列,选择排序最前的工作域作为待预分配的工作域,进入步骤3.3);

3.3)按照公式(4)求取待预分配的工作域的预分配计算单元数目:

其中,rj为第j个工作域的预分配计算单元数目;ci为第i个计算节点的运行状态,ci的值为1表示该计算节点正常运行,值为0表示该计算节点故障;ηj为第j个工作域设置的参考工作周期,是不同工作域之间的计算资源分配系数;为向下取整运算符号;

3.4)若待预分配的工作域的预分配计算单元数目大于该工作域最大分配计算单元数目,则将该待预分配的工作域的预分配计算单元数目的值更新为该工作域最大分配计算单元数目;

3.5)判断待预分配的工作域的预分配计算单元数目是否小于等于待分配计算单元数量cu,若小于等于cu则将cu的值更新为cu减去该待预分配的工作域的预分配计算单元数目,否则将待预分配的工作域的预分配计算单元数目的值更新为cu并更新cu的值为0;

3.6)判断cu是否为0,如等于0则进入步骤4),否则将排在本次待预分配的工作域后一个的工作域作为新的待预分配的工作域转步骤3.3)进行下一激活工作域的计算资源预分配,直至完成所有激活工作域的计算资源预分配;

3.7)若所有激活工作域的计算资源预分配完成后待分配计算单元数量cu仍大于0,则对未达到最大分配计算单元数约束的所有激活工作域,按照各工作域的计算资源分配优先级由高到低顺序对每个激活工作域依次分配一个计算单元,直到所有计算单元全部分配给工作域或所有激活工作域分配的计算单元都达到最大分配计算单元数;进入步骤4);

3.8)对于所有激活工作域,按各激活工作域的计算资源分配优先级由高到低顺序,依次给各激活工作域按照其最小保留计算单元数预分配计算单元,直到所有计算单元分配完毕;进入步骤4)。

上述技术方案的进一步特征在于,所述步骤4)具体包括以下步骤:

4.1)针对所有工作域,根据每个工作域预分配的计算单元数目和调整前各工作域已分配的计算单元数目,基于公式(7)计算出每个工作域参与调整的计算单元数目:

Δsj=pj-rj(1≤j≤m) (7)

其中,pj为第j个工作域本次调整前已分配的正常运行计算单元数目;rj为第j个工作域的预分配计算单元数目;Δsj为第j个工作域本次优化分配后参与切换调整的计算单元数目,其值大于0表示第j个工作域切换计算单元给其他工作域使用,其值小于0表示其他工作域切换计算单元给第j个工作域使用。

4.2)对工作域集合中参与调整的计算单元数目大于0的每个工作域,按照该工作域中各个计算节点的切换优先级从高到低顺序依次选取一个处于正常运行状态的计算节点,记为k,更新该工作域参与调整的计算单元数目的值为其参与调整的计算单元数目与uk的差值;若更新后该工作域参与调整的计算单元数目大于等于0,则将计算节点k加入待切换计算节点集合,继续选择该工作域中下一个处于正常运行状态的计算节点,若更新后该工作域参与调整的计算单元数目小于0或该工作域中所有计算节点都已完成处理,则转步骤4.3);

4.3)对工作域集合中参与调整的计算单元数目小于0且本次调整前已分配的正常运行计算单元数目等于0的每一个工作域,从待切换计算节点集合中根据各个计算节点的切换优先级从低到高顺序选取一个计算节点,记为k,切换给这些工作域使用,并更新这些工作域参与调整的计算单元数目的值为各工作域参与调整的计算单元数目与uk的和,同时更新计算节点k的所属工作域为这些工作域;若待切换计算节点集合为空,则转步骤4.5);若待切换计算节点集合非空,转步骤4.4);

4.4)对工作域集合中参与调整的计算单元数目小于0的工作域按照其计算资源分配优先级由高到低顺序进行降序排列,针对其中每一个工作域,从待切换计算节点集合中根据各个计算节点的切换优先级从低到高顺序依次选取一个计算节点,记为k,切换给这些工作域使用,并更新这些工作域参与调整的计算单元数目的值为各工作域参与调整的计算单元数目与uk的和,同时更新计算节点k的所属工作域为这些工作域,直到这些工作域参与调整的计算单元数目大于等于0或待切换计算节点集合为空,转步骤4.5);

4.5)对于所有激活的工作域,根据每个计算节点所属的工作域信息以及包含的计算单元数,统计每个激活工作域实际分配的计算单元数目,并判断每个激活工作域实际分配的计算单元数目与其最小保留计算单元数的大小,对未分配到最小保留计算单元数的计算资源的激活工作域给出提示,进入步骤5)。

本发明的有益效果如下:本发明基于各个工作域的参考工作周期,结合各个工作域的实时激活状态和各个计算节点的实时运行状态,再综合考虑各个工作域的最短计算周期和最长允许计算周期等约束,实现工作域的计算资源动态分配;在此基础上通过对每个计算节点按照计算单元进行标准化处理,并进一步结合调整前各个工作域和计算节点的分配关系,最终给出调整计算节点数量尽可能少的计算节点优化切换方案。本发明不仅实现了基于工作域的激活状态和计算节点的运行状态进行多工作域计算资源的在线动态优化分配,而且使参与调整的计算节点数量尽可能少。因此,本发明可在实现计算资源自适应管理的基础上,还考虑了计算节点切换对激活工作域的影响,有效提升了计算资源的利用效率和工作域运行的可靠性。

附图说明

图1为本发明方法多个工作域数据交互示意图。

图2为本发明方法一个实施例的流程示意图1。

图3为本发明方法一个实施例的流程示意图2。

具体实施方式

下面参照附图结合实施例对本发明作进一步详细描述。

本发明的基本原理在于:基于各个工作域对计算资源的需求设置相应的参考工作周期,并作为不同工作域之间的计算资源分配系数;基于计算单元包含的各类计算资源对每个计算节点进行标准化处理,确定每个计算节点包含的有效计算单元数目;根据各个工作域的实时激活状态和各个计算节点的实时运行状态,综合考虑各个工作域的计算资源分配优先级以及最短计算周期和最长允许计算周期等约束以及计算任务在计算单元的执行时间,确定各个激活工作域预分配的计算单元数量;在此基础上根据计算节点包含的有效计算单元数目,再进一步结合调整前各个激活工作域和计算节点的分配关系,基于参与调整的计算节点数量尽可能少的原则给出计算节点优化切换方案,实现计算资源在多个工作域之间的自适应调整。

为此,本发明针对电力系统在线和离线应用场景下各个应用功能的计算需求,将计算机群划分为多个工作域,如图1所示。各工作域基于分布式计算管理平台独立进行计算任务组织、调度和管理,计算过程中各工作域之间不直接进行计算数据和控制信息的交互。

本发明的流程如图2和图3所示。图2中步骤1描述的是,根据计算任务对各类计算资源的不同需求,将完成一个计算任务计算需要的各类计算资源最小组合定义为一个计算单元,对每个计算节点基于计算单元包含的计算资源按照公式(1)进行标准化处理,将其计算能力通过计算单元的非负整数倍进行度量:

其中,n为系统中机群计算节点数目,ui为第i个计算节点包含的计算单元数目,其为非负整数;Rcpu(i)、Rmem(i)和Rio(i)分别是第i个计算节点具有的CPU、内存和IO计算资源;Rcpu0、Rmem0和Rio0分别是标准计算单元具有的CPU、内存和IO计算资源。

图2中步骤2描述的是,基于各个工作域对计算资源的需求为其手工设置相应的参考工作周期、计算资源分配优先级、最短计算周期和最长允许计算周期参数,并依据单个计算任务在一个计算单元上的预计执行时间,根据公式(2)和(3)分别将最短计算周期和最长允许计算周期转换为最大分配计算单元数和最小保留计算单元数:

其中,m为系统中工作域数目数量,tmin(j)为第j个工作域的最短计算周期,tmax(j)为第j个工作域的最长允许计算周期,fj为第j个工作域需要运行的应用功能数量,sjk为第j个工作域运行的第k个应用功能的计算任务数量,为第k个应用功能的单个计算任务在一个计算单元上预计执行时间,为向上取整运算符号。

cmax(j)为非负整数,表示第j个工作域的最大分配计算单元数;cmin(j)为非负整数,表示第j个工作域的最小保留计算单元数。

图2中步骤3描述的是,当任一工作域的激活状态或任一计算节点的运行状态发生变化时,进行以下处理:

3.1)统计所有处于正常运行状态计算节点所包含的计算单元数量之和作为待分配计算单元数量cu的初始值,各个工作域的预分配计算单元数目rj初始化为0;统计当前所有激活工作域的最小保留计算单元数之和若转步骤3.2);否则转步骤3.8);其中m为系统中工作域数目数量,dj为第j个工作域的激活状态,其值为1表示该工作域激活,值为0表示该工作域未激活。

3.2)对处于激活状态的各个工作域,按照其计算资源分配优先级由高到低进行降序排列,选择排序最前的工作域作为待预分配的工作域,进入步骤3.3);

3.3)按照公式(4)求取待预分配的工作域的预分配计算单元数目:

其中,rj为第j个工作域的预分配计算单元数目;ci为第i个计算节点的运行状态,ci的值为1表示该计算节点正常运行,值为0表示该计算节点故障;ηj为第j个工作域设置的参考工作周期,是不同工作域之间的计算资源分配系数;为向下取整运算符号;

rj的值为非负整数,由于一个计算单元在同一时刻只能分配给一个工作域使用,通过对公式(4)的计算结果进行取整求取。

3.4)判断rj是否满足公式(5)定义的该工作域最大分配计算单元数约束,若rj大于该工作域最大分配计算单元数目cmax(j),则rj取值为cmax(j);

rj≤cmax(j)(1≤j≤m) (5)

3.5)判断rj是否小于等于待分配计算单元数量cu,若rj小于等于cu,则更新cu为cu-rj;若rj大于cu,则更新rj为cu,更新cu为0;

3.6)判断cu是否为0,如等于0则进入步骤4,否则将排在本次待预分配的工作域后一个的工作域作为新的待预分配的工作域转步骤3.3)进行下一激活工作域的计算资源预分配,直至完成所有激活工作域的计算资源预分配;

3.7)若所有激活工作域的计算资源预分配完成后待分配计算单元数量cu仍大于0,则对未达到最大分配计算单元数约束的所有激活工作域,按照各工作域的计算资源分配优先级由高到低顺序对每个激活工作域依次分配一个计算单元,直到所有计算单元全部分配给工作域或所有激活工作域分配的计算单元都达到最大分配计算单元数;进入步骤4;

3.8)对于所有激活工作域,按各激活工作域的计算资源分配优先级由高到低顺序,依次给各激活工作域按照其最小保留计算单元数预分配计算单元,直到所有计算单元分配完毕;进入步骤4。

图3中步骤4描述的是,根据每个工作域的预分配的计算单元数目及其调整前已分配的计算单元数目,基于计算节点调整数量尽可能少的原则确定调整后每个计算节点的所属工作域,具体处理如下:

4.1)针对所有工作域,根据每个工作域预分配的计算单元数目rj和调整前各工作域已分配的计算单元数目pj,基于公式(7)计算出每个工作域参与调整的计算单元数目Δsj(1≤j≤m),转步骤4.2);

Δsj=pj-rj(1≤j≤m) (7)

式中,pj为工作域j本次调整前已分配的正常运行计算单元数目;Δsj为工作域j本次优化分配后参与切换调整的计算单元数目,其值大于0表示工作域j切换计算单元给其他工作域使用,其值小于0表示其他工作域切换计算单元给工作域j使用。

4.2)对工作域集合中Δsj大于0的每个工作域j,按照该工作域中各个计算节点的切换优先级从高到低顺序依次选取一个处于正常运行状态的计算节点,记为k,更新Δsj为Δsj-uk,若Δsj大于等于0,则将计算节点k加入待切换计算节点集合,继续选择该工作域中下一个处于正常运行状态的计算节点;若Δsj小于0或该工作域中所有计算节点都已完成处理,则转步骤4.3);

4.3)对工作域集合中Δsj小于0且pj等于0的每一个工作域j,从待切换计算节点集合中根据各个计算节点的切换优先级从低到高顺序选取一个计算节点,记为k,切换给工作域j使用,并更新Δsj为Δsj+uk,同时更新计算节点k的所属工作域为j。若待切换计算节点集合为空,则转步骤4.5);若待切换计算节点集合非空,转步骤4.4);

4.4)对工作域集合中Δsj小于0的工作域按照其计算资源分配优先级由高到低顺序进行降序排列,针对其中每一个工作域j,从待切换计算节点集合中根据各个计算节点的切换优先级从低到高顺序依次选取一个计算节点,记为k,切换给工作域j使用,并更新Δsj为Δsj+uk,同时更新这些选中计算节点的所属工作域为j,直到Δsj大于等于0或待切换计算节点集合为空。转步骤4.5);

4.5)对于所有激活的工作域,根据每个计算节点所属的工作域信息以及包含的计算单元数,统计每个激活工作域实际分配的计算单元数目,并更新到rj,再按照公式(6)进行每个激活工作域的最小保留计算单元数约束检查,对未分配到最小保留计算单元数计算资源的激活工作域给出提示,进入步骤5。

rj≥cmin(j)(1≤j≤m) (6)

图3中步骤5描述的是,针对所有计算节点,每个计算节点上的分布式计算管理平台感知其所属工作域变化信息,从原工作域切换到调整后工作域,完成计算资源在多个工作域之间的自适应调整。

虽然本发明已以较佳实施例公开如上,但实施例并不是用来限定本发明的。在不脱离本发明之精神和范围内,所做的任何等效变化或润饰,同样属于本发明之保护范围。因此本发明的保护范围应当以本申请的权利要求所界定的内容为标准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1