一种云环境下截止期-预算驱动的科学工作流调度方法与流程

文档序号:20009241发布日期:2020-02-22 03:54阅读:156来源:国知局
一种云环境下截止期-预算驱动的科学工作流调度方法与流程

本发明属于工作流调度技术领域,具体涉及一种云环境下截止期-预算驱动的科学工作流调度方法。



背景技术:

云计算是由分布式计算、并行计算和网格计算发展而来的新兴的商业计算模式。云环境可以提供大量计算资源组成资源池,按需所用,灵活便利。随着科学技术的深入研究,需要进行大量信息处理和数据计算的科学工作流应运而生,例如:montage、ligo、cybershake、epigenomic等。针对这一问题,云资源为大规模科学工作流的计算需求提供了有力的保障。

科学工作流调度是云计算中的关键问题。工作流的复杂度高和规模大对存储和计算都有很高的要求,立足于云计算技术的发展,云工作流调度被提出。云工作流调度利用云计算的优势,建立了具有强大计算能力的智能调度系统。

云计算使调度系统可以制定复杂工作流的调度方案,能够判断工作流调度的可行性,根据工作流的特点、目的和条件约束选择不同的调度算法,调度匹配工作流中的任务和计算资源,利用云资源实际调度任务。

调度算法在调度系统对云工作流中任务与计算资源进行匹配的过程中起到了至关重要的作用,尤其是在具有截止期和预算限制的云工作流调度中,它在为科学工作者高效提供工作成果、为企业管理人员提供业务调度方案方面有着重要影响。设计任务与计算资源的匹配方式调度算法研究的关键问题。现有技术主要包括prolis、l-aco算法等,主要采用基于截止期分配并与在子截止时间内满足最早完成时间的计算资源的匹配方式,这类方式存在的主要问题是:任务与计算资源匹配过程中因进行升级操作产生过多花费的缺陷,导致调度成本升高。



技术实现要素:

有鉴于此,本发明提供了一种云环境下截止期-预算驱动的科学工作流调度方法,实现了在截止期和预算的限制条件下对科学工作流进行成功调度并有效降低了调度成本。

本发明提供的一种云环境下截止期-预算驱动的科学工作流调度方法,包括以下步骤:

步骤1、设定科学工作流的截止期;设定蚁群算法中的蚂蚁数量、最大迭代次数n,n为大于或等于1的正整数;蚁群算法中的启发式信息为科学工作流的有向无环图(dag)中任务节点的任务优先级,所述任务优先级采用设定的任务节点的计算数据量、任务节点间通信传输数据量、计算资源池的平均带宽、计算性能评级为最高级的计算资源的计算速率及设定的概率参数计算得到;蚁群算法中的信息素踪迹为所述dag图中连接任务节点的边的赋值,令所述赋值均取相等的值;

步骤2、每个蚂蚁根据所述启发式信息及截止期,计算得到任务节点的子截止时间;根据所述启发式信息及信息素踪迹,生成dag图中任务节点的调度优先序列;

按照所述调度优先序列,顺序为任务节点选择计算资源进行调度,计算所述调度优先序列的计算时间及花费,包括以下步骤:

步骤2.1、计算当前任务节点对应的工作流剩余预算及当前任务预算;

步骤2.2、在计算资源池中选择执行当前任务的花费小于或等于所述当前任务预算的计算资源,形成当前任务节点的可用计算资源集合;

步骤2.3、当所述集合不为空时,则在所述集合中选择计算时间满足当前任务节点的子截止时间要求且计算速率最快的计算资源;若所述集合中不存在计算时间满足当前任务节点的子截止时间要求的计算资源时,则选择所述集合中计算速率最快的计算资源,如果所述集合中计算速率最快的计算资源的计算性能评级不是最高级,则对其进行升级;

当所述集合为空且所述工作流剩余预算大于或等于0时,则在所述计算资源池中选择计算速率最快的计算资源,如果该计算资源的计算性能评级不是最高级,则对其进行升级;

当所述集合为空且工作流剩余预算小于0时,则在所述计算资源池中选择计算时间满足当前任务节点的子截止时间要求且花费最小的计算资源;若所述计算资源池中不存在计算时间满足当前任务节点的子截止时间要求的计算资源时,则在所述计算资源池中选择花费最小的计算资源,如果该计算资源的计算性能评级不是最高级,则对其进行升级;

步骤2.3、将步骤2.2中得到所有任务节点的计算时间及花费进行求和,得到所述调度优先序列的计算时间及花费;

步骤3、在所有蚂蚁计算得到的所述调度优先序列中,按照比较原则确定局部最优调度优先序列;再按照所述比较原则,比较所述局部最优调度优先序列与当前全局最优调度优先序列,确定本次迭代的当前全局最优调度优先序列;

判断当前迭代次数是否大于或等于n,如果是,则执行完毕,且当前全局最优调度优先序列即为最终的全局最优调度优先序列;

否则,对所述局部最优调度优先序列所对应的dag图中各边的信息素踪迹,进行信息素踪迹沉积及等比例蒸发操作,得到更新后的信息素踪迹,将所述更新后的信息素踪迹作为下一代的信息素踪迹;其中,若当前迭代次数小于设定的最大松弛代数,则对所述截止期进行松弛处理形成松弛后的截止期,将所述松弛后的截止期作为下一代的截止期;令当前迭代次数自加1;执行步骤2。

进一步地,所述比较原则为:当两个所述调度优先序列的计算时间均小于所述截止期时,则选择其中花费较小的;当两个所述调度优先序列的计算时间相等时,则选择其中花费较小的;当两个所述调度优先序列的计算时间不等,且其中至少一个所述调度优先序列的计算时间大于或等于截止期时,则选择其中计算时间较少的。

进一步地,所述比较原则采用ε-对比法实现。

进一步地,所述松弛处理采用如下公式:

其中,dε(k)为第k次迭代的松弛后的截止期;d为设定的所述截止期;mbase为当所述科学工作流中的全部任务节点均选择计算性能评级为最低级的计算资源时,所述科学工作流的计算时间;kt为最大迭代次数设定最大松弛代数;k为当前迭代次数,且0≤k<kt;cp为控制截止期松弛的变化曲线的参数。

进一步地,所述调度优先序列采用kahn算法生成。

有益效果:

本发明通过在现有科学工作流调度算法上同时考虑截止期和预算两个约束,在将截止期转换为任务节点的子截止时间的基础上,引入当前任务预算和工作流剩余预算,通过对计算资源花费的限制,能够降低任务节点在子截止时间内完成计算所需的成本,从而降低科学工作流的调度成本,使科学工作流的调度时间、时间成本在截止期、预算约束情况下均能成功调度。

附图说明

图1为本发明提供的一种云环境下截止期-预算驱动的科学工作流调度方法的流程图。

图2(a)为不同调度算法在cybershake工作流上调度成功率对比图。

图2(b)为不同调度算法在epigenomic工作流上调度成功率对比图。

图2(c)为不同调度算法在ligo工作流上调度成功率对比图。

图2(d)为不同调度算法在montage工作流上调度成功率对比图。

图3(a)为不同调度算法在cybershake工作流上调度成本对比图。

图3(b)为不同调度算法在epigenomic工作流上调度成本对比图。

图3(c)为不同调度算法在ligo工作流上调度成本对比图。

图3(d)为不同调度算法在montage工作流上调度成本对比图。

图4为本发明提供的一种云环境下截止期-预算驱动的科学工作流调度方法基于不同调度算法的成本优化图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种云环境下截止期-预算驱动的科学工作流调度方法,其主要思想是:采用蚁群算法,通过对科学工作流对应的dag图进行拓扑排序得到不同的调度有限序列,再根据任务节点的子截止时间和工作流剩余预算的双重约束为任务节点选择最优计算资源,迭代得到最佳的工作流调度方案。

本发明提供的一种云环境下截止期-预算驱动的科学工作流调度方法,如图1所示,具体包括以下步骤:

步骤1、初始化蚁群和迭代信息。

设定蚁群算法中的蚂蚁数量,如colsize个蚂蚁的蚁群,colsize为大于或等于1的正整数;蚁群算法的最大迭代次数n,n为大于或等于1的正整数。采用有向无环图(dag)表示科学工作流,设定科学工作流的截止期。

其中,蚁群算法中的信息素踪迹,为dag图中连接任务节点的边的赋值,初始化dag图中各个边上赋值即信息素踪迹为相同值,可以令其均等于1。

根据用户设定的概率因子θ计算得到的概率参数γ,如公式(1)所示:

其中,ccrj为任务节点tj的计算速率与传输速率的比值,即为(ωi/p(s*))/(datai,j/bw),ωi为任务节点ti的计算数据量,p(s*)为计算评级为最高级的计算资源的计算速率,datai,j为任务节点ti与tj间的通信传输数据量,bw为计算资源池中设定的平均带宽;rand()为一个生成在[0,1)区间随机数的函数;i、j均为任务节点的编号,i、j均为小于或等于colsize的正整数。

根据dag图中各个任务节点的计算数据量ωi、任务节点间通信传输数据量datai,j、计算资源池中设定的平均带宽bw、计算评级为最高级的计算资源的速率p(s*)以及概率参数γ,采用公式(2)计算蚁群算法的启发式信息,即各个任务节点的任务优先级ranki:

其中,任务节点tj为任务节点ti的子节点。

步骤2、蚁群中各个蚂蚁生成调度优先序列,即为调度方案。

根据步骤1中计算得到的启发式信息和设定的科学工作流截止期,采用公式(3)计算任务节点可分配的子截止时间subd:

其中,rankentry为入口任务节点tentry的任务优先级,且设定为该工作流关键路径的长度。任务节点tentry是工作流dag图中为统一开始任务而生成的计算数据量为0、通信传输数据量为0的虚拟首节点。

使用kahn算法对工作流dag图进行拓扑排序生成不同的调度优先序列,即,在拓扑排序过程中根据当前迭代代数中dag图所对应的信息素踪迹和启发式信息,采用公式(4)计算选取下一个任务节点的概率:

其中,probi,j为选取任务节点ti后下一步选取任务节点tj的概率,τi,j为连接任务节点ti与tj之间的边上的信息素踪迹值,α和β分别为控制信息素踪迹和启发式信息的正参数且为常量。

现有的算法大多在得到上述各个任务的子截止时间后,便在该时间内为任务节点选取尽可能最早完成(计算速率最快)的计算资源,若该计算资源仍不能满足当前任务节点的完成时间在子截止时间之内且该计算资源的计算性能评级并非为最高级,则对该计算资源进行升级直至满足子截止时间的要求,但是,这样的选择方式会过多地压缩任务节点的完成时间,过多的提高计算资源花费,从而导致整体调度方案的成本提高。因此,本发明结合当前任务预算和工作流剩余预算对任务节点的计算资源进行选择,达到限制其产生过多的花费的目的。

首先采用现有技术中的工作流剩余预算计算方法,即根据用户定义的花费预算b、已调度任务的时间花费和未调度任务的最小可能花费计算工作流剩余预算sab,如公式(5)所示:

为cost(ti)为任务节点ti的实际花费,是任务节点与计算资源匹配后得到的花费;costmin(tj)为任务节点tj的最小花费,可以通过将任务节点的计算数据在各类型计算资源上预先执行并比较得到。

再根据工作流剩余预算,计算得到当前任务节点的当前任务预算ctb,如公式(6)所示:

其中,costaverage(tj)为任务节点tj的平均花费,可由任务节点tj的数据量在所有类型的计算资源上执行的花费预先计算得到。

根据当前任务预算,在计算资源池中选择花费小于当前任务预算的计算资源构成当前任务节点的可用计算资源集合,记为如公式(7)所示:

其中,sq为类型为q的计算资源,ck,q为任务节点tk在计算资源sq上的花费。

根据工作流剩余预算和当前任务可用计算资源集,分三种情况对任务进行调度:

当集合不为空时,则在集合中选择计算时间满足当前任务节点的子截止时间要求且计算速率最快的计算资源;若集合中不存在计算时间满足当前任务节点的子截止时间要求的计算资源时,则选择集合中计算速率最快的计算资源,如果集台中计算速率最快的计算资源的计算性能评级不是最高级,则对其进行升级;

当集合为空且所述工作流剩余预算大于或等于0时,则在计算资源池中选择计算速率最快的计算资源,如果该计算资源的计算性能评级不是最高级,则对其进行升级;

当集合为空且工作流剩余预算小于0时,则在计算资源池中选择计算时间满足当前任务节点的子截止时间要求且花费最小的计算资源;若计算资源池中不存在计算时间满足当前任务节点的子截止时间要求的计算资源时,则在计算资源池中选择花费最小的计算资源,如果该计算资源的计算性能评级不是最高级,则对其进行升级。

最后,将上述计算得到的所有任务节点的计算时间及花费进行求和,得到调度优先序列的计算时间及花费。

步骤3、蚁群迭代、更新获得最优调度方案。

在所有蚂蚁计算得到的调度优先序列中,按照比较原则确定局部最优调度优先序列;再按照相同的比较原则,比较该局部最优调度优先序列与当前全局最优调度优先序列,确定本次迭代的当前全局最优调度优先序列。

本发明中,为了在迭代初期便能得到局部最优方案,并通过更新信息素踪迹利于后期迭代的调度有限序列倾向于最优方案,在迭代初期的一定迭代代数中使用较为宽松的松弛截止期,放宽限制条件利于筛选。

根据设定的最大迭代次数,设定最大松弛代数kt,kt为大于0且小于最大迭代次数的正整数;在最大松弛代数内对工作流的截止期进行松弛处理,采用公式(8)计算得到第k次迭代中的松弛后的截止期,如公式(8)所示:

其中,dε(k)为第k次迭代的松弛后的截止期;mbase为该工作流中全部任务均采用计算性能评级为最低级的计算资源进行执行时,该工作流所需的完工时间;k为当前迭代代数,k为大于0且小于最大迭代次数的正整数;cp为控制截止期松弛的变化曲线的参数。

在超出最大松弛代数kt后,本发明提出的方法对方案的筛选则更为严格,因此,将截止期严格控制为设定的截止期d。

每个蚂蚁按照步骤2得出对工作流的调度方案后,基于如下比较原则进行比较:当两个所述调度优先序列的计算时间均小于所述截止期时,则选择其中花费较小的;当两个所述调度优先序列的计算时间相等时,则选择其中花费较小的;当两个所述调度优先序列的计算时间不等,且其中至少一个所述调度优先序列的计算时间大于或等于截止期时,则选择其中计算时间较少的。

该比较原则可通过ε-对比法实现,如公式(9)所示,对蚁群当前迭代代数中所有蚂蚁计算得到的调度方案进行比较,得出局部最优方案。其中ε-对比法的步骤如下:

(f,φ)为一个调度方案,其中f为调度方案的总花费,φ为调度方案的最终完成时间。该对比法通过对两种调度方案的成本和调度时间分3种情况进行比较,得出在花费和完成时间两方面均表现优异的调度方案,使得最终能够得到满足截止期和预算约束的调度方案。

在得到局部最优方案后,将局部最优方案与全局最优方案采用同样的方法进行对比,将更优方案作为新的全局最优方案。

然后,判断当前迭代次数是否大于或等于最大迭代次数,如果是,则执行完毕,当前全局最优调度优先序列即为最终的全局最优调度优先序列,输出该全局最优调度优先序列。

如果当前迭代次数小于最大迭代次数,则:

采用得到的局部最优调度方案中,调度优先序列的dag图的边上的信息素踪迹进行蚁群算法的信息素踪迹更新,即对选出的信息素踪迹进行信息素沉积、等比例的信息素蒸发操作,具体信息素踪迹更新的计算方式如公式(10)所示:

τi,j(k+1)=τi,j(k)×(1-ρ)+δτi,j(k)(10)

其中,τi,j(k)为第k次迭代中工作流dag在任务ti和tj间连接边上的信息素踪迹的取值,ρ为信息素的蒸发系数,δτi,j(k)为第k次迭代中在任务ti和tj间连接边上的信息素沉积量,其定义如公式(11)所示:

其中,sbest(k)为第k次迭代中局部最优方案,fbest(k)为对应该方案的成本话费。

然后,将上述更新后的信息素踪迹作为下一代的信息素踪迹,令迭代次数自加1,执行步骤2。

采用本发明提出的一种云环境下截止期-预算驱动的科学工作流调度方法,分别对cybershake、epigenomic、ligo、montage四种典型科学工作流,在任何严格的截止期、预算约束下进行调度,其调度结果与现有技术中的icpcp、pso、prolis、l-aco算法相比,如图2(a)、图2(b)、图2(c)、2(d)、图3(a)、图3(b)、图3(c)、3(d)和图4所示,本发明提出的方法均能100%成功调度,且在调度成本上有着一定降低,尤其是在用于地震学的cybershake工作流上有着突出的降低幅度,说明运用云环境下截止期-预算驱动的科学工作流调度方法对科学工作流进行调度是行之有效且效果良好的。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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