一种带有期限和费用约束的工作流调度方法与流程

文档序号:12825822阅读:318来源:国知局
一种带有期限和费用约束的工作流调度方法与流程
本发明属于分布式计算下工作流调度领域,涉及一种带有期限和费用约束的工作流调度方法。
背景技术
:近年来,网格和云计算的发展为大型的科学计算应用提供了良好的平台,很多大规模科学计算问题都可以抽象为工作流(dag)模型。工作流调度问题,是指给定工作流的任务作为对象,若干的处理器作为完成任务的资源,要在满足一定的约束条件下,对任务和处理器进行分配并安排先后次序,将所需的资源进行最优分配和最优调度。调度问题在物流、航空航天、医疗、生物等各领域都有广泛的应用。在网格或云平台下,用户通常需要在一定时间和费用内完成工作流调度,资源的管理者根据资源的不同性能给出不同的价格,用户想租用资源完成复杂的应用程序,因此他们需要支付资源管理者一定的费用并且希望在有限的时间内完成任务,而资源的管理者需要合理分配资源,使得资源不被浪费,这就需要规划者给出合理的调度方法使得用户和资源管理者都接受[1]。因此,用户、资源管理者、规划者是带有费用和期限约束的工作流调度问题的实体,图1说明了用户、资源管理者、规划者三者的关系。对于云环境下带有费用和期限约束的工作流(dag)调度问题,对于用户定的费用约束b和期限约束d下,一般只用费用和期限这两个约束来描述带有费用和期限约束的工作流调度问题,数学模型表示为:∑cost≤b,makespan≤d。其中∑cost表示完成任务调度所需要的总花费,makespan表示完成出口任务的最早完成时间。对于规划者给出合理的优化调度方案很重要。对于带期限和费用的工作流调度问题研究,近两年的相关文献给出了一些主要算法主要见文献[1,2,3]。2013年,zhang和sakellariou提出的bheft算法[1]是在资源存在负载的情况下考虑期限和费用的优化算法,但是不存在判定函数完全找不到资源的情况,但实际是存在这种情况的,所以对于费用很小的情况下使用最早完成时间调度的情况不存在。2014年,arabnejad和barbosa提出了hbcs算法[2],提出了最低剩余预算rcb的定义,根据期限和费用定义参数进行资源的选择。但是hbcs算法在期限和费用的约束下dag调度的成功率不高。2016年,arabnejad和barbosa又给出了dbcs算法[3],在时间参数因子中加入了子期限sdl,来进行资源的选择,这使得任务的调度中费用和期限的均衡约束起到的作用比较明显,但是dbcs算法的dag调度的成功率仍然不如本方法的dag调度成功率高。技术实现要素:针对现有模型和方法存在的问题,本发明对带期限和费用的工作流调度问题给出了新的模型并提出了一种新的调度方法。该方法定义了每个任务的实际平均预算erc,以其作为判定函数降低了算法的复杂度。为更合理的考虑期限的约束,算法以sdl来确定任务的优先级。实验表明,本方法在费用和期限两个约束下dag调度的成功率比较高。发明目的:以解决当有费用和期限两个约束时工作流的调度问题,期望在给定费用和期限的约束下完成dag调度,即获得较高的dag调度成功率。对于云环境下带有费用和期限约束的工作流(dag)调度问题描述如下:记dag的图为g={v,e},其中任务集合为v={n1,n2,...nn},|v|=n表示工作流中所有任务节点的个数为n;e是有向边的集合,表示任务间的前后依赖关系,对任意的边(ni,nq)∈e,任务ni执行后才执行任务nq,任务ni到任务nq存在传递时间aiq,dag中没有前继的任务称为入口任务nentry,没有后继的任务称为出口任务nexit。图2表示的是一个含有10个任务节点的dag任务图。资源集合记为p={p1,p2,...pm},|p|=m表示有m个资源,每一个任务ni都要在资源pj上执行且存在执行时间wij,任务ni在资源pj上有执行费用cij,在给定的费用约束b和期限约束d下,期望得到最后任务的完成时间(makespan)和总费用(cost)最小。通过分析问题以及变量之间的关系,对此本发明给出了此问题的线性规划模型(ip):,(ip)(stij+wij)xij≤d,i=1,...n,j=1,...m,(1.4)xij∈{0,1}(1.5)这里xij是一个布尔变量,当任务ni选择资源pj时,xij值为1,当任务ni不选择资源pj时,xij值为0;(1.1)表示每一个任务都要安排到资源上;(1.2)表示最后任务的完成时间不超过d,其中d表示问题的最优调度的期限,表示最后任务的完成时间;(1.3)表示任务在资源的费用之和不超过给定的费用b;(1.4)表示每个安排的任务的完成时间不超d,其中stij表示任务ni在资源pj上的到达时间。一种带有期限和费用约束的工作流调度方法,包括以下步骤:步骤1:dag中每个任务优先级的确定,具体方法如下:计算dag中每个任务的子期限sdl值,公式如下:其中succ(ni)为任务ni的后继任务集合,ai,p表示任务ni到任务np的传递时间,etmin(np)表示任务np在所有资源上的最小执行时间,因为出口任务nexit没有后继节点,所以将sdl(nexit)作为计算的初始值,令sdl(nexit)=d,其中d为给定的期限。从出口任务nexit的sdl值向前推导,即可计算出所有任务的子期限值。用子期限sdl值作为任务节点调度的优先级,sdl值越小,优先级越高,将任务按优先级由高到低依次进行排序,得到一组待调度序列l。步骤2:资源的选取,具体方法如下:步骤(2.1)取待调度序列l中优先级最高的任务nk,按如下公式计算当前任务nk的剩余预算sab:其中b是给定的预算,cf表示任务nf在已安排资源上的费用,表示优先级排在任务nk后面的未安排任务nh在所有资源上的平均费用。步骤(2.2)计算任务nk的实际平均预算erc其中fk为调节参数,定义如下:表示任务nk在所有资源上的平均费用,表示优先级排在任务nk后面的未安排任务nh在所有资源上的平均费用,若sab(nk)的值大于等于0,fk的取值为任务nk在所有资源上的平均费用与剩余未安排任务在所有资源上的平均费用之和之比,若sab(nk)的值小于0,fk的取值为0。rb表示为任务nk的剩余费用,每次计算下一个任务时更新剩余费用,l为未调度任务的个数。步骤(2.3)对于任务nk,按照如下公式,找到当前调度任务nk在资源上的费用小于等于任nk的实际平均预算erck的资源的集合wk:其中cko表示任务nk在资源po上的执行费用,erck表示任务nk的实际平均预算,wko表示任务nk所选择的资源po,其中o的取值不唯一,wk集合的作用为找到满足条件cko≤erck的资源po。步骤(2.4)计算任务nk在集合wk中的资源pj上的最早完成时间eft(nk,pj),先计算任务nk在资源pj上的最早开始时间est(nk,pj),定义如下:eft(nk,pj)=est(nk,pj)+wk,j(6)其中pred(nk)表示任务nk的前继任务的集合,tavail[j]表示任务在资源pj上的可以开始的最早时间,aft(ng)表示任务nk的前继任务ng的实际完成时间,agk表示任务ng到任务nk之间的传递时间,内层max表示任务nk的所有的前继任务ng到达资源pj的时间,wk,j表示任务nk在资源pj上的运行时间;对于入口任务nentry,est(nentry,pj)=0。步骤(2.5)如果sab(nk)大于等于0,对于任务nk选择步骤(2.4)中最早完成时间eft值最小的资源,如果sab(nk)小于0,对于任务nk选择ωk中执行费用最低的资源;记录当前任务nk所选资源的费用步骤3:l为未调度任务的个数,所以任务nk调度完成时,l的值减去1;此时剩余费用rb应为除去任务nk在资源pj上的执行费用ckj后的费用;从调度序列l中删除当前优先级最高的任务nk,若l非空,转步骤2;否则,转步骤4。步骤4:输出工作流dag在费用b和期限d约束下的调度方案,完成工作流调度。与现有技术相比,本方法具有以下优势:本发明对于带期限和费用的dag调度问题给出了新的规划模型,通过dag的子期限的值来确定任务的优先级,这使得在调度过程中更合理的考虑了期限的约束。其次本发明定义了每个任务的实际平均预算erc,以其作为判定函数降低了算法的复杂度,与bheft,hbcs等算法相比,本方法在给定期限和费用两个约束下,dag调度的成功率更高。附图说明图1为用户、资源管理者、规划者三者的关系;图2为10个任务节点的dag任务图;图3为每个任务在每个资源上的执行费用;图4为4种方法中100个dag调度的成功率。具体实施方式下面结合附图和实施例对本发明做进一步的说明。本发明结合实施例实现了一种在期限和费用约束下的工作流调度,按照图2所示的dag任务之间的关系进行调度,给定费用b=95,期限d=200,即用户给定的约束条件费用不超过95,期限不超过200,用户想在此约束条件下进行dag调度,假设资源管理者有三个资源分别为p1,p2,p3,每个任务在每个资源上的执行费用cij如图3所示,规划者根据用户和资源管理者各自情况给出合理调度方案,既满足用户的要求,又符合资源管理者的情况,本发明即为规划者合理的方案,最后输出dag的调度方案,步骤如下:1.dag中每个任务优先级的确定,根据公式(1)计算图2中dag的每个任务的子期限sdl(ni),然后对于每个任务按sdl值由小到大进行排序,如表1所示:原序列12345678910sdl值107.51133.37136.84137.99142.02158.55162.73181.79182.95200新序列146253879102.资源的选取,根据表1得到的任务的新序列,依次选取任务,然后根据图2和图3的数据和公式(2),(3)(4),(5),(6),依次计算任务的剩余预算sab,实际平均预算erc,对于当前每个任务满足条件的资源的集合wi,任务在资源上的最早开始时间est,最早完成时间eft,然后记录每个任务在选取资源上的费用,如图表2所示:表中f表示调节参数,select表示每一个任务最后选择的资源,例如w1,2表示任务n1选择的资源为p2,cost表示每个任务在选择资源上的执行费用。由表2可以知道,每个任务所选取的资源,见表3:任务n1n4n6n2n5n3n8n7n9n10资源p2p2p2p3p2p2p3p1p3p2最后完成调度所需要的总费用为71.90<95,出口任务n10的最早完成时间为145,即调度的最后时间为145<200,满足条件。3最后输出调度方案,即为表3,完成调度所需要的费用为71.9,完成调度所需的时间为145。本发明对随机产生的100个含有50个任务节点的dag进行调度,要在给定的费用和期限约束下完成调度,即为dag调度是成功的,对比了bheft,hbcs,dbcs算法,发现本方法的dag的成功率比较高,结果如图4所示,其中图4中代表dag调度的成功率,m代表本发明中的方法。主要参考文献:[1]w.zhangandr.sakellariou,budget-deadlineconstrainedworkflowplanningforadmissioncontrol,jgridcomputing,11,633-651,2013.[2]h.arabnejad,j.barbosa,abudgetconstrainedschedulingalgorithmforworkflowapplications,jgridcomputing,12,665-679,2014.[3]h.arabnejad,j.barbosa,r.prodan,low-timecomplexitybudget-deadlineconstrainedworkflowschedulingonheterogeneousresources,futuregenerationcomputersystems,55,29-40,2016.当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1