CN107301500A - 一种基于关键路径任务前瞻的工作流调度方法 - Google Patents
一种基于关键路径任务前瞻的工作流调度方法 Download PDFInfo
- Publication number
- CN107301500A CN107301500A CN201710406234.XA CN201710406234A CN107301500A CN 107301500 A CN107301500 A CN 107301500A CN 201710406234 A CN201710406234 A CN 201710406234A CN 107301500 A CN107301500 A CN 107301500A
- Authority
- CN
- China
- Prior art keywords
- task
- processor
- time
- dag
- scheduling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
Landscapes
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Educational Administration (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于关键路径前瞻的工作流调度方法。包括:用户提交工作流;将工作流转换为有向无环任务模型图DAG;进行DAG任务节点的调度,输出工作流调度方案。本发明在任务确定优先级阶段考虑了入口任务到当前任务的最长路径,以及当前任务到出口任务的最长路径;在资源选择阶段考虑了关键路径任务和非关键路径任务对调度结果的影响。本方法与其他方法相比工作流调度的完成时间较小。
Description
技术领域
本发明涉及云计算环境下的工作流调度技术领域,主要是涉及一种对于关键路径任务,分配资源时综合考虑任务本身和其子任务的工作流调度方法。
背景技术
近年来涌现出多种松散耦合类型的异构分布式计算新模式或新技术,如云计算。云计算的迅速崛起,使得越来越多的工作流应用开始基于云计算平台来提升计算速度。每个工作流包含一个任务集,如何将每个任务集中的任务更加高效快速的分配到合适的异构计算资源上就是工作流调度问题的研究重点。静态工作流调度问题一般在调度之前将每个任务集中的任务关系使用DAG(有向无环图)图表示出来,然后将DAG图中的任务按照一定的顺序一一映射到目标计算资源上,这种将工作流可视化的模型被称为 DAG任务调度模型。
调度问题在物流、航空航天、医疗、生物等各领域都有广泛的应用,在众多调度问题策略中,列表调度启发法最为实用。在列表调度启发式中,任务的排序依据每个任务被赋予优先级的大小,任务的选择依据它们的排序,每个被选择的任务将调度到能够满足预先定义的目标函数的处理器上。此外,列表调度算法又分为静态表调度和动态表调度。在静态表调度算法中,调度表在节点分配之前是静态构造的,表中的先后顺序在节点分配过程中不会修改;相反,动态表算法在每一次分配之后,会重新计算未调度节点的优先级,然后用新计算的优先级重新排列表中节点的先后顺序。比起其他类别的算法,这类算法的调度质量通常很高,而调度时间复杂度较低。
2002年H.Topcuoglu,S.Hariri和M.Y.Wu在IEEE上发表的文章中提出了HEFT 算法和CPOP算法。HEFT算法虽然在一般情况下给出的调度结果比较理想,但是该算法只考虑了待调度任务和其前驱的影响;CPOP算法主要思想是找到DAG图的关键路径,然后定义一个关键路径处理器,这个处理器需要满足关键路径上的所有任务在其上的计算时间总和最小,最后在调度中所有的关键路径任务都调度到这个关键路径处理器上,但CPOP算法的性能并不好。2010年L.F.Bittencount,R.Sakellariou和E.R.M. Madeira提出了Lookahead算法,该算法是一种针对HEFT算法的改进算法,它主要是在调度过程中考虑任务的资源分配决策对其子任务调度的影响,实验说明Lookahead算法的性能得到了提高,但同时也增加了时间复杂度。2014年H.Arabnejad和J.G. Barbosa针对Lookahead算法执行时间过长方面进行改进,提出PEFT算法,该算法主要思想是在调度前构建一个乐观时间花费表,预测任务在各个资源上调度时其子任务的调度结果,从而优化资源分配决策,虽然PEFT算法的时间复杂度降低了,但是调度效果不好。
发明内容
针对现有技术中存在的上述问题,本发明提出一种基于关键路径任务前瞻的方法,该方法主要是针对关键路径任务,分配资源时综合考虑任务本身和任务的子任务的工作流调度方法。对于给定的一个DAG任务调度模型,本发明提出的方法整体思路是,先确定任务的优先级构建动态任务队列,从动态任务队列中取出优先级最高的任务,然后判断该任务是否是关键路径任务,是的话在每个处理器上运行这个任务,选择这个任务的子任务中最早完成时间最小的处理器进行调度;如果不是关键路径任务,选择任务本身最早完成时间最小的处理器进行调度,最后更新任务队列,并重复这个过程直至任务队列中没有待调度的任务。
一种基于关键路径任务前瞻的工作流调度方法包括以下步骤:
步骤1,构建有向无环图DAG任务调度模型
当工作流进入调度系统时,先将工作流转换为能够被识别和处理的DAG任务调度模型,具体方法如下。
步骤1.1,DAG模型图表示为:G=(N,E)。
(1)G=(N,E)中N={n1,n2...nv}是任务集,每一个ni∈N表示任务集中一个具体的任务,i指的是任务ni在DAG模型图中的编号,其中没有父节点的任务称为DAG入口任务,没有子节点的任务称为DAG出口任务。E是任务之间有向边的集合,有向边 e(i,j)∈E表示任务ni与任务nj之间的执行先后顺序和数据传递的依赖关系。任务ni是有向边的起始节点,任务nj是有向边的终止节点,i和j分别是任务ni和任务nj在DAG 模型图中的编号,且i<j。当任务ni执行完成,并将任务nj所需的数据传送到达后,任务nj才可能进入准备开始执行的状态,即就绪状态。
(2)每条有向边都有一个权重值,用于表示与边相连的两个任务之间传递数据所需的平均时间。通信时间花费与处理器启动通信的时间、处理器之间数据传送的速度和任务间通信数据的大小有关。将处理器启动通信的时间花费存储在一个q维度的矢量L 中,其中q为处理器个数。处理器之间传送数据的速度使用一个q×q大小的矩阵B 来存储。任务之间通信数据的大小使用一个v×v大小的矩阵data来存储,其中v为任务总数,那么datai,j表示任务ni和任务nj之间所需要通信的数据总和。这样通信时间花费使用一个v×v大小的矩阵A来存储,其中Ai,j定义为从任务ni(假设在处理器pm上调度)传递通信数据到任务nj(假设在处理器pn上调度)需要的总时间,公式表示为:
其中,m和n分别表示处理器pm和处理器pn在处理器集合P={p1,p2…pq}中的编号,Lm表示处理器pm启动通信的时间,Bm,n表示处理器pm和处理器pn之间传送数据的速度,当ni和nj在同一处理器上调度时,即m=n时,处理机内部的通信时间花费忽略不计,Ai,j等于0。被定义为任务ni与任务nj之间传递数据的平均通信时间,公式表示为:
其中,表示所有处理器启动通信所需时间的平均值,表示在定义域内处理器间传输数据的平均速度。和都是计算环境中的已知参数。
(3)构建计算时间花费二维表,对DAG图中每个任务节点在处理器集中每个处理器上的执行时间进行预估,形成一个v×q大小的矩阵D,其中v表示任务节点数,q 表示用于执行计算的异构分布式计算资源数,表示任务ni在各个计算资源上计算时间的平均值。
步骤2,从出口任务开始,向上遍历DAG图,递归计算出所有任务的向上排序值。
出口任务nexit的向上排序值ranku(nexit)定义为任务nexit的平均计算时间,也就是出口任务nexit在各个处理器上的计算时间的平均值:对于DAG图中的其他任务,向上排序值定义为从这个任务到出口任务的多条路径中,平均计算时间和平均通信时间总和的最大值,其中也包括这个任务本身的计算时间的平均值。任务 ni的向上排序值ranku(ni)用公式表示为:
其中,指的是任务ni在各个处理器上的平均计算时间,succ(ni)指的是任务ni的直接后继任务的集合,指的是任务ni与后继任务nj之间的平均通信时间,ranku(nj) 是后继任务nj的向上排序值,max括号内求的是后继任务中向上排序值和平均通信时间总和的最大值。
步骤3,从入口任务开始,向下遍历DAG图,递归计算出所有任务的向下排序值。
入口任务nentry的向下排序值定义为零,即rankd(nentry)=0。对于DAG图中的其他任务,向下排序值定义为从入口任务到这个任务的多条路径中,平均计算时间和平均通信时间总和的最大值,其中不包括这个任务本身的平均计算时间。任务ni的向下排序值rankd(ni)用公式表示为:
其中,pred(ni)指的是任务ni的直接前驱任务的集合,rankd(nj)是前驱任务nj的向下排序值,指的是任务nj与任务ni之间的平均通信时间,指的是前驱任务 nj在各个处理器上的平均计算时间,max括号内求的是前驱任务中向下排序值、平均通信时间和平均计算时间总和的最大值。
步骤4,赋予任务优先级并初始化任务队列。
DAG任务调度图中的每个任务节点的优先级大小等于该任务的向上排序值和向下排序值之和,即ranku+rankd。从公式中看,某个任务的优先级大小是从入口任务到该任务再到出口任务的多条路径中平均计算时间和通信时间总和的最大值。本方法使用动态任务队列,每次只存放当前时刻的就绪任务,就绪任务指的是可以准备开始执行的任务,也就是前驱任务都已经调度完成的任务,由于入口任务没有前驱,所以使用入口任务初始化任务队列。
步骤5,求取关键路径长度和关键路径任务集。
入口任务的优先级大小等于从DAG入口任务到DAG出口任务的多条路径中的最大完成时间,对应的这条路径就是DAG任务调度图的关键路径,最大完成时间就是关键路径的长度,在关键路径上的任务称为关键路径任务。关键路径任务的优先级大小相等且优先级最高。
步骤6,为每个任务选择处理器资源。
首先从任务队列里选出优先级最高的任务作为待调度的任务。
(1)如果是非关键路径任务;
步骤6.1,计算任务的最早完成时间。
任务的完成时间与处理器开始执行任务的时间、任务的就绪时间和任务在各个处理器上计算时间有关。
处理器准备执行任务的时间,也就是处理器最早开始工作的时间,即每个处理器上到目前为止执行的最后一个任务的完成时间,使用一个q维度的数组avail来存储,q 为处理器个数。在调度最开始avail数组初始化为零,然后一旦有任务ni被调度到处理器pj上执行完成以后,而插入策略又没有找到插入位置或者插入后任务ni的完成时间没有变短,avail(pj)就变为ni的完成时间,否则数值不变。
任务的就绪时间,也就是任务需要的所有数据传送到达处理器的时间,使用一个q维度的数组readyT来存储,q为处理器个数。在每次调度时readyT数组都初始化为零,然后任务ni在选择处理器pj时,readyT(pj)等于任务ni所需要的全部数据到达处理器pj的最长时间,也就是ni的直接前驱任务的实际完成时间加上前驱任务到ni的通信费用的最大值。公示表示为:
其中,pred(ni)表示任务ni的直接前驱任务的集合,AFT(nm)表示直接前驱任务 nm的实际完成时间,表示直接前驱任务nm与任务ni的平均通信时间。入口任务由于没有前驱任务,所以在各个处理器上的就绪时间均等于0。
任务最早开始执行的时间EST(Earliest execution Start Time),用一个q维度的数组来存储,q为处理器个数。任务ni在处理器pj上的最早开始执行时间EST(pj)定义为处理器pj的最早开始工作时间avail(pj)和任务ni在处理器pj上的就绪时间readyT(pj)中的最大值,公式表示为:
EST(pj)=max{avail(pj),readyT(pj)} (6)
其中,对于单一入口任务的DAG图来说,入口任务在每个处理器上的最早开始执行时间等于0;在多入口任务图中,入口任务在处理器pj上的最早开始执行时为: EST(pj)=avail(pj),avail(pj)为处理器pj的最早开始工作时间。
任务最早执行完成时间EFT(Earliest execution Finish Time),在任务最早开始执行的时间EST的基础上考虑任务的计算时间,前提是任务的所有直接前驱任务都已经被调度并执行完成。任务ni的最早执行完成时间EFT(ni)定义为任务ni在各个处理器上的最早开始执行时间与任务ni在对应处理器上的计算时间的和的最小值,公式表示为:
其中,P={p1,p2…pq}为处理器集合,EST(pj)为任务ni在处理器pj上的最早开始执行时间,Di,j为任务ni在处理器pj上的计算时间。
步骤6.2,做出资源分配决策。
将任务分配到能够使任务最早执行完成的处理器上。
(2)如果是关键路径任务;
步骤6.3,计算任务在各个处理器上的完成时间。
任务ni在处理器pj上的执行完成时间FT(ni,pj)定义为任务ni在处理器pj上的最早开始执行时间与任务ni在处理器pj上的计算时间的和,公式表示为:
FT(ni,pj)=EST(pj)+Di,j (8)
其中,EST(pj)表示任务ni在处理器pj上的最早开始时间,Di,j表示任务ni在处理器pj上的计算时间,并采用基于插入的策略查找任务ni在各个处理器上的可插入的空闲位置。
步骤6.4,计算子任务的最早完成时间。
先假设任务ni在处理器集合中的某个处理器pj上执行,那么任务ni实际完成时间就是FT(ni,pj),如果找到可插入的空闲位置,则改变处理器pj上的最早开始执行时间avail(pj),否则不变,然后任务ni的子任务按照优先级大小非递增的顺序,按照公式(7) 依次求得所有子任务的最早完成时间。再假设任务ni在另一个处理器上执行,重复上述过程,直至遍历整个处理器集合。
步骤6.5,做出最优资源分配决策。
假设任务在某个处理器上执行,计算出这个任务的所有子任务的最早完成时间,并记录任务在这个处理器上执行时所有子任务的最早完成时间的最大值,然后遍历整个处理器集合,比较在各个处理器上得到的子任务的最早完成时间的最大值,最大值中数值最小的说明任务在这个最小值对应的处理器上执行时,任务的子任务的整体完成时间最短,那么就将任务分配到这个处理器上执行。
(3)计算调度长度。
任务ni按照选择规则被调度到处理器pj上执行后,任务ni在处理器pj上的最早开始时间和最早完成时间分别等于任务ni的实际开始时间AST(ni)和实际完成时间 AFT(ni)。当DAG任务图中所有任务都调度完成后,出口任务nexit的实际完成时间 AFT(nexit)等于调度长度,也称为完成时间。对于多个出口任务的DAG图,调度长度 makespan定义为出口任务中实际完成时间的最大值:
makespan=max{AFT(nexit)} (9)
步骤7,更新任务队列。
删除刚刚调度完成的任务,然后查找该任务的子任务是否成为就绪状态,即子任务的前驱任务是否都已经调度执行完成,最后将新的就绪任务存入任务队列。返回执行步骤6,直到任务队列中没有待调度的任务。
与现有技术相比,本发明具有以下优势:
(1)本发明充分考虑了DAG任务调度图结构中影响调度长度的因素,包括任务的前驱和后继和任务本身,与其他方法相比调度效果更好。
(2)本发明与其他方法相比算法的复杂度比较低。
附图说明
图1为DAG任务调度模型
图2为任务在处理器上计算时间
图3为本方法的调度结果
具体实施方式
下面将结合附图和实例对发明做进一步说明。
步骤1,将工作流转换为DAG任务调度模型,DAG图结构如图1所示,每条有向边的权值等于任务间的平均通信时间,比如图1中任务5与任务9之间的平均通信时间是13个时间单位。DAG图中每个任务节点在各个处理器上的计算时间参见图2,表中每行表示DAG图中的任务编号,每列指处理器的编号,例如表1中编号为4的任务在编号为3的处理器上的计算时间为17个时间单位。
步骤2,按照公式(3)计算DAG图中每个任务节点的向上排序值,结果见表1第 2列。
步骤3,按照公式(4)计算DAG图中每个任务节点的向下排序值,结果见表1第 3列。
步骤4,DAG图中每个任务节点的优先级等于向上排序值和向下排序值的和,结果见表1第3列。
表1
步骤5,关键路径的长度等于入口任务n1的优先级,大小为108,n1的后继任务有n2,n3,n4,n5,n6,其中优先级大小等于108的任务有n2,n2的后继任务有n8,n9,其中优先级大小等于108的任务有n9,n9的后继任务是DAG出口任务n10,其优先级大小等于 108,所以关键路径任务的集合为{n1,n2,n9,n10},关键路径任务中必定包含一个入口任务和一个出口任务。
步骤6,从任务队列中选择优先级最高的任务作为待调度的任务,任务的调度顺序查看表2第3列。
(1)对于关键路径任务n1、n2、n9、n10,先假定在某个处理器上执行,然后继续调度它的子任务,按照公式(7)得到所有子任务的最早完成时间,记录下其中的最大值,相似地,一共有几个处理器资源,就会得到几个最大值,其中值最小对应的处理器将分配给该关键路径任务执行。例如,待调度任务n1为关键路径任务,采用基于插入的策略得到n1在处理器上p1、p2、p3上的完成时间分别为14、16、9个时间单位,n1的子任务有n2,n3,n4,n5,n6,假定n1在p1上执行,子任务中最早完成时间中的最大值为 44,假定n1在p2上执行,子任务中最早完成时间中的最大值为47,假定n1在p3上执行,子任务中最早完成时间中的最大值为42,因为42<44<47,所以任务n1将调度到处理器p3上执行。
(2)对于非关键路径任务,按照公式(8)直接计算任务在各个处理器上的完成时间,然后将任务调度到完成时间最早的处理器上。例如,采用基于插入的策略后任务 n3在处理器上p1、p2、p3上的完成时间分别为32、34、36个时间单位,而32<34<36,所以任务n3将调度到处理器p1上执行。
(3)该步骤在计算完成时间的过程中均采用了基于插入的策略,在这个实例中,只有任务n6找到了合适的插入位置,任务n6在处理器p2上的完成时间原本是78个时间单位,但是插入到任务n4和任务n9之间后,完成时间只有42个时间单位,42比78 小很多,所以任务n6将调度到处理器p2上任务n4和任务n9之间的空闲时间段运行。
步骤7,以入口任务初始化任务队列,每次删除调度完成的任务,查找新的就绪任务加入队列,每一时刻的任务队列参见表2第2列。所有任务最终的调度顺序和结果参见图3。
表2
Claims (2)
1.一种基于关键路径任务前瞻的工作流调度方法,其特征在于:针对关键路径任务,分配资源时综合考虑任务本身和任务的子任务的工作流调度方法;对于给定的一个DAG任务调度模型,先确定任务的优先级构建动态任务队列,从动态任务队列中取出优先级最高的任务,然后判断该任务是否是关键路径任务,是的话在每个处理器上运行这个任务,选择这个任务的子任务中最早完成时间最小的处理器进行调度;如果不是关键路径任务,选择任务本身最早完成时间最小的处理器进行调度,最后更新任务队列,并重复这个过程直至任务队列中没有待调度的任务。
2.根据权利要求1所述的一种基于关键路径任务前瞻的工作流调度方法,其特征在于,包括以下步骤:
步骤1,构建有向无环图DAG任务调度模型
当工作流进入调度系统时,先将工作流转换为能够被识别和处理的DAG任务调度模型,具体方法如下;
步骤1.1,DAG模型图表示为:G=(N,E);
(1)G=(N,E)中N={n1,n2...nv}是任务集,每一个ni∈N表示任务集中一个具体的任务,i指的是任务ni在DAG模型图中的编号,其中没有父节点的任务称为DAG入口任务,没有子节点的任务称为DAG出口任务;E是任务之间有向边的集合,有向边e(i,j)∈E表示任务ni与任务nj之间的执行先后顺序和数据传递的依赖关系;任务ni是有向边的起始节点,任务nj是有向边的终止节点,i和j分别是任务ni和任务nj在DAG模型图中的编号,且i<j;当任务ni执行完成,并将任务nj所需的数据传送到达后,任务nj才可能进入准备开始执行的状态,即就绪状态;
(2)每条有向边都有一个权重值,用于表示与边相连的两个任务之间传递数据所需的平均时间;通信时间花费与处理器启动通信的时间、处理器之间数据传送的速度和任务间通信数据的大小有关;将处理器启动通信的时间花费存储在一个q维度的矢量L中,其中q为处理器个数;处理器之间传送数据的速度使用一个q×q大小的矩阵B来存储;任务之间通信数据的大小使用一个v×v大小的矩阵data来存储,其中v为任务总数,那么datai,j表示任务ni和任务nj之间所需要通信的数据总和;这样通信时间花费使用一个v×v大小的矩阵A来存储,其中Ai,j定义为从任务ni传递通信数据到任务nj需要的总时间,任务ni假设在处理器pm上调度,任务nj假设在处理器pn上调度公式表示为:
其中,m和n分别表示处理器pm和处理器pn在处理器集合P={p1,p2…pq}中的编号,Lm表示处理器pm启动通信的时间,Bm,n表示处理器pm和处理器pn之间传送数据的速度,当ni和nj在同一处理器上调度时,即m=n时,处理机内部的通信时间花费忽略不计,Ai,j等于0;被定义为任务ni与任务nj之间传递数据的平均通信时间,公式表示为:
其中,表示所有处理器启动通信所需时间的平均值,表示在定义域内处理器间传输数据的平均速度;和都是计算环境中的已知参数;
(3)构建计算时间花费二维表,对DAG图中每个任务节点在处理器集中每个处理器上的执行时间进行预估,形成一个v×q大小的矩阵D,其中v表示任务节点数,q表示用于执行计算的异构分布式计算资源数,表示任务ni在各个计算资源上计算时间的平均值;
步骤2,从出口任务开始,向上遍历DAG图,递归计算出所有任务的向上排序值;
出口任务nexit的向上排序值ranku(nexit)定义为任务nexit的平均计算时间,也就是出口任务nexit在各个处理器上的计算时间的平均值:对于DAG图中的其他任务,向上排序值定义为从这个任务到出口任务的多条路径中,平均计算时间和平均通信时间总和的最大值,其中也包括这个任务本身的计算时间的平均值;任务ni的向上排序值ranku(ni)用公式表示为:
其中,指的是任务ni在各个处理器上的平均计算时间,succ(ni)指的是任务ni的直接后继任务的集合,指的是任务ni与后继任务nj之间的平均通信时间,ranku(nj)是后继任务nj的向上排序值,max括号内求的是后继任务中向上排序值和平均通信时间总和的最大值;
步骤3,从入口任务开始,向下遍历DAG图,递归计算出所有任务的向下排序值;
入口任务nentry的向下排序值定义为零,即rankd(nentry)=0;对于DAG图中的其他任务,向下排序值定义为从入口任务到这个任务的多条路径中,平均计算时间和平均通信时间总和的最大值,其中不包括这个任务本身的平均计算时间;任务ni的向下排序值rankd(ni)用公式表示为:
其中,pred(ni)指的是任务ni的直接前驱任务的集合,rankd(nj)是前驱任务nj的向下排序值,指的是任务nj与任务ni之间的平均通信时间,指的是前驱任务nj在各个处理器上的平均计算时间,max括号内求的是前驱任务中向下排序值、平均通信时间和平均计算时间总和的最大值;
步骤4,赋予任务优先级并初始化任务队列;
DAG任务调度图中的每个任务节点的优先级大小等于该任务的向上排序值和向下排序值之和,即ranku+rankd;从公式中看,某个任务的优先级大小是从入口任务到该任务再到出口任务的多条路径中平均计算时间和通信时间总和的最大值;本方法使用动态任务队列,每次只存放当前时刻的就绪任务,就绪任务指的是可以准备开始执行的任务,也就是前驱任务都已经调度完成的任务,由于入口任务没有前驱,所以使用入口任务初始化任务队列;
步骤5,求取关键路径长度和关键路径任务集;
入口任务的优先级大小等于从DAG入口任务到DAG出口任务的多条路径中的最大完成时间,对应的这条路径就是DAG任务调度图的关键路径,最大完成时间就是关键路径的长度,在关键路径上的任务称为关键路径任务;关键路径任务的优先级大小相等且优先级最高;
步骤6,为每个任务选择处理器资源;
首先从任务队列里选出优先级最高的任务作为待调度的任务;
(1)如果是非关键路径任务;
步骤6.1,计算任务的最早完成时间;
任务的完成时间与处理器开始执行任务的时间、任务的就绪时间和任务在各个处理器上计算时间有关;
处理器准备执行任务的时间,也就是处理器最早开始工作的时间,即每个处理器上到目前为止执行的最后一个任务的完成时间,使用一个q维度的数组avail来存储,q为处理器个数;在调度最开始avail数组初始化为零,然后一旦有任务ni被调度到处理器pj上执行完成以后,而插入策略又没有找到插入位置或者插入后任务ni的完成时间没有变短,avail(pj)就变为ni的完成时间,否则数值不变;
任务的就绪时间,也就是任务需要的所有数据传送到达处理器的时间,使用一个q维度的数组readyT来存储,q为处理器个数;在每次调度时readyT数组都初始化为零,然后任务ni在选择处理器pj时,readyT(pj)等于任务ni所需要的全部数据到达处理器pj的最长时间,也就是ni的直接前驱任务的实际完成时间加上前驱任务到ni的通信费用的最大值;公示表示为:
其中,pred(ni)表示任务ni的直接前驱任务的集合,AFT(nm)表示直接前驱任务nm的实际完成时间,表示直接前驱任务nm与任务ni的平均通信时间;入口任务由于没有前驱任务,所以在各个处理器上的就绪时间均等于0;
任务最早开始执行的时间EST(Earliestexecution Start Time),用一个q维度的数组来存储,q为处理器个数;任务ni在处理器pj上的最早开始执行时间EST(pj)定义为处理器pj的最早开始工作时间avail(pj)和任务ni在处理器pj上的就绪时间readyT(pj)中的最大值,公式表示为:
EST(Pj)=max{avail(Pj),readyT(pj)} (6)
其中,对于单一入口任务的DAG图来说,入口任务在每个处理器上的最早开始执行时间等于0;在多入口任务图中,入口任务在处理器pj上的最早开始执行时为:EST(pj)=avail(pj),avail(pj)为处理器pj的最早开始工作时间;
任务最早执行完成时间EFT(Earliest execution Finish Time),在任务最早开始执行的时间EST的基础上考虑任务的计算时间,前提是任务的所有直接前驱任务都已经被调度并执行完成;任务ni的最早执行完成时间EFT(ni)定义为任务ni在各个处理器上的最早开始执行时间与任务ni在对应处理器上的计算时间的和的最小值,公式表示为:
其中,P={p1,p2…pq}为处理器集合,EST(pj)为任务ni在处理器pj上的最早开始执行时间,Di,j为任务ni在处理器pj上的计算时间;
步骤6.2,做出资源分配决策;
将任务分配到能够使任务最早执行完成的处理器上;
(2)如果是关键路径任务;
步骤6.3,计算任务在各个处理器上的完成时间;
任务ni在处理器pj上的执行完成时间FT(ni,pj)定义为任务ni在处理器pj上的最早开始执行时间与任务ni在处理器pj上的计算时间的和,公式表示为:
FT(ni,Pj)=EST(pj)+Dij (8)
其中,EST(pj)表示任务ni在处理器pj上的最早开始时间,Di,j表示任务ni在处理器pj上的计算时间,并采用基于插入的策略查找任务ni在各个处理器上的可插入的空闲位置;
步骤6.4,计算子任务的最早完成时间;
先假设任务ni在处理器集合中的某个处理器pj上执行,那么任务ni实际完成时间就是FT(ni,pj),如果找到可插入的空闲位置,则改变处理器pj上的最早开始执行时间avail(pj),否则不变,然后任务ni的子任务按照优先级大小非递增的顺序,按照公式(7)依次求得所有子任务的最早完成时间;再假设任务ni在另一个处理器上执行,重复上述过程,直至遍历整个处理器集合;
步骤6.5,做出最优资源分配决策;
假设任务在某个处理器上执行,计算出这个任务的所有子任务的最早完成时间,并记录任务在这个处理器上执行时所有子任务的最早完成时间的最大值,然后遍历整个处理器集合,比较在各个处理器上得到的子任务的最早完成时间的最大值,最大值中数值最小的说明任务在这个最小值对应的处理器上执行时,任务的子任务的整体完成时间最短,那么就将任务分配到这个处理器上执行;
(3)计算调度长度;
任务ni按照选择规则被调度到处理器pj上执行后,任务ni在处理器pj上的最早开始时间和最早完成时间分别等于任务ni的实际开始时间AST(ni)和实际完成时间AFT(ni);当DAG任务图中所有任务都调度完成后,出口任务nexit的实际完成时间AFT(nexit)等于调度长度,也称为完成时间;对于多个出口任务的DAG图,调度长度makespan定义为出口任务中实际完成时间的最大值:
makespan=max{AFT(nexit)} (9)
步骤7,更新任务队列;
删除刚刚调度完成的任务,然后查找该任务的子任务是否成为就绪状态,即子任务的前驱任务是否都已经调度执行完成,最后将新的就绪任务存入任务队列;返回执行步骤6,直到任务队列中没有待调度的任务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710406234.XA CN107301500B (zh) | 2017-06-02 | 2017-06-02 | 一种基于关键路径任务前瞻的工作流调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710406234.XA CN107301500B (zh) | 2017-06-02 | 2017-06-02 | 一种基于关键路径任务前瞻的工作流调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107301500A true CN107301500A (zh) | 2017-10-27 |
CN107301500B CN107301500B (zh) | 2020-09-25 |
Family
ID=60137561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710406234.XA Active CN107301500B (zh) | 2017-06-02 | 2017-06-02 | 一种基于关键路径任务前瞻的工作流调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107301500B (zh) |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628672A (zh) * | 2018-05-04 | 2018-10-09 | 武汉轻工大学 | 任务调度方法、系统、终端设备及存储介质 |
CN108762899A (zh) * | 2018-05-16 | 2018-11-06 | 武汉轻工大学 | 一种云任务重调度方法和装置 |
CN109542620A (zh) * | 2018-11-16 | 2019-03-29 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN109783206A (zh) * | 2019-01-04 | 2019-05-21 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
CN109784663A (zh) * | 2018-12-20 | 2019-05-21 | 西北大学 | 一种工作流调度方法与装置 |
CN109828837A (zh) * | 2019-01-25 | 2019-05-31 | 桂林电子科技大学 | 基于最长路径优先的关联性任务调度方法 |
CN109857532A (zh) * | 2019-01-22 | 2019-06-07 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN110008013A (zh) * | 2019-03-28 | 2019-07-12 | 东南大学 | 一种最小化作业完工时间的Spark任务分配方法 |
CN110019986A (zh) * | 2018-09-27 | 2019-07-16 | 福建福链科技有限公司 | 一种有向无环图中消息的定序方法及终端 |
CN110084436A (zh) * | 2019-05-08 | 2019-08-02 | 哈尔滨理工大学 | 一种动态保证关键路径工序调度的二车间综合调度方法 |
CN110147270A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
CN110689262A (zh) * | 2019-09-25 | 2020-01-14 | 中国人民解放军战略支援部队航天工程大学 | 天基信息系统任务调度方法、装置和电子设备 |
CN110851260A (zh) * | 2019-11-13 | 2020-02-28 | 中国联合网络通信集团有限公司 | 任务分配方法及装置 |
CN111209095A (zh) * | 2019-08-20 | 2020-05-29 | 杭州电子科技大学 | 一种dag并行任务调度中基于树搜索的剪枝方法 |
CN112181656A (zh) * | 2020-09-30 | 2021-01-05 | 山东工商学院 | 一种数据密集型工作流调度方法及系统 |
CN112306642A (zh) * | 2020-11-24 | 2021-02-02 | 安徽大学 | 一种基于稳定匹配博弈理论的工作流调度方法 |
CN112764903A (zh) * | 2021-01-22 | 2021-05-07 | 西安电子科技大学 | 异构环境下带有特殊任务的任务调度方法、系统及应用 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
CN113064710A (zh) * | 2021-04-15 | 2021-07-02 | 北京理工大学 | 一种云工作流调度方法及系统 |
CN113176933A (zh) * | 2021-04-08 | 2021-07-27 | 中山大学 | 面向海量工作流任务动态云网络互连方法 |
CN113190336A (zh) * | 2021-05-19 | 2021-07-30 | 浙江中烟工业有限责任公司 | 一种基于有向无环图分层的工作流调度方法及装置 |
CN113220356A (zh) * | 2021-03-24 | 2021-08-06 | 南京邮电大学 | 一种移动边缘计算中的用户计算任务卸载方法 |
CN113553103A (zh) * | 2021-06-03 | 2021-10-26 | 中国人民解放军战略支援部队信息工程大学 | 基于cpu+gpu异构处理平台的多核并行调度方法 |
CN114385337A (zh) * | 2022-01-10 | 2022-04-22 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114662932A (zh) * | 2022-03-24 | 2022-06-24 | 重庆邮电大学 | 一种节点分级的工作流类定时任务调度方法 |
CN115858134A (zh) * | 2023-03-02 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的多任务资源控制方法和装置 |
CN117234695A (zh) * | 2023-11-13 | 2023-12-15 | 苏州挚途科技有限公司 | 用于自动驾驶系统的处理任务的调度方法及其装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018268A (ja) * | 2005-07-07 | 2007-01-25 | Sumitomo Heavy Ind Ltd | タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
-
2017
- 2017-06-02 CN CN201710406234.XA patent/CN107301500B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007018268A (ja) * | 2005-07-07 | 2007-01-25 | Sumitomo Heavy Ind Ltd | タスクスケジューリング方法、タスクスケジューリング装置、及びタスクスケジューリングプログラム |
CN102193826A (zh) * | 2011-05-24 | 2011-09-21 | 哈尔滨工程大学 | 一种异构多核处理器高效任务调度方法 |
CN106201701A (zh) * | 2016-07-14 | 2016-12-07 | 扬州大学 | 一种带任务重复的工作流调度算法 |
Cited By (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108628672A (zh) * | 2018-05-04 | 2018-10-09 | 武汉轻工大学 | 任务调度方法、系统、终端设备及存储介质 |
CN108762899A (zh) * | 2018-05-16 | 2018-11-06 | 武汉轻工大学 | 一种云任务重调度方法和装置 |
CN108762899B (zh) * | 2018-05-16 | 2020-05-15 | 武汉轻工大学 | 一种云任务重调度方法和装置 |
CN110019986A (zh) * | 2018-09-27 | 2019-07-16 | 福建福链科技有限公司 | 一种有向无环图中消息的定序方法及终端 |
CN110019986B (zh) * | 2018-09-27 | 2020-12-29 | 福建福链科技有限公司 | 一种有向无环图中消息的定序方法及终端 |
CN109542620B (zh) * | 2018-11-16 | 2021-05-28 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN109542620A (zh) * | 2018-11-16 | 2019-03-29 | 中国人民解放军陆军防化学院 | 一种云中关联任务流的资源调度配置方法 |
CN109784663B (zh) * | 2018-12-20 | 2022-11-25 | 西北大学 | 一种工作流调度方法与装置 |
CN109784663A (zh) * | 2018-12-20 | 2019-05-21 | 西北大学 | 一种工作流调度方法与装置 |
CN109783206A (zh) * | 2019-01-04 | 2019-05-21 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
CN109783206B (zh) * | 2019-01-04 | 2022-12-13 | 智恒科技股份有限公司 | 一种用于描述大数据任务流整体结构的方法 |
CN109857532A (zh) * | 2019-01-22 | 2019-06-07 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN109857532B (zh) * | 2019-01-22 | 2020-11-17 | 杭州电子科技大学 | 基于蒙特卡洛树搜索的dag任务调度方法 |
CN109828837A (zh) * | 2019-01-25 | 2019-05-31 | 桂林电子科技大学 | 基于最长路径优先的关联性任务调度方法 |
CN109828837B (zh) * | 2019-01-25 | 2022-10-21 | 桂林电子科技大学 | 基于最长路径优先的关联性任务调度方法 |
CN110008013A (zh) * | 2019-03-28 | 2019-07-12 | 东南大学 | 一种最小化作业完工时间的Spark任务分配方法 |
CN110008013B (zh) * | 2019-03-28 | 2023-08-04 | 东南大学 | 一种最小化作业完工时间的Spark任务分配方法 |
CN110147270A (zh) * | 2019-04-15 | 2019-08-20 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
WO2020211358A1 (zh) * | 2019-04-15 | 2020-10-22 | 平安普惠企业管理有限公司 | 数据库调度方法、装置、计算机设备及存储介质 |
CN110084436B (zh) * | 2019-05-08 | 2023-03-21 | 哈尔滨理工大学 | 一种动态保证关键路径工序调度的二车间综合调度方法 |
CN110084436A (zh) * | 2019-05-08 | 2019-08-02 | 哈尔滨理工大学 | 一种动态保证关键路径工序调度的二车间综合调度方法 |
CN111209095A (zh) * | 2019-08-20 | 2020-05-29 | 杭州电子科技大学 | 一种dag并行任务调度中基于树搜索的剪枝方法 |
CN111209095B (zh) * | 2019-08-20 | 2023-08-15 | 杭州电子科技大学 | 一种dag并行任务调度中基于树搜索的剪枝方法 |
CN110689262A (zh) * | 2019-09-25 | 2020-01-14 | 中国人民解放军战略支援部队航天工程大学 | 天基信息系统任务调度方法、装置和电子设备 |
CN110851260B (zh) * | 2019-11-13 | 2022-07-15 | 中国联合网络通信集团有限公司 | 任务分配方法及装置 |
CN110851260A (zh) * | 2019-11-13 | 2020-02-28 | 中国联合网络通信集团有限公司 | 任务分配方法及装置 |
CN112181656A (zh) * | 2020-09-30 | 2021-01-05 | 山东工商学院 | 一种数据密集型工作流调度方法及系统 |
CN112306642A (zh) * | 2020-11-24 | 2021-02-02 | 安徽大学 | 一种基于稳定匹配博弈理论的工作流调度方法 |
CN112306642B (zh) * | 2020-11-24 | 2022-10-14 | 安徽大学 | 一种基于稳定匹配博弈理论的工作流调度方法 |
CN112764903A (zh) * | 2021-01-22 | 2021-05-07 | 西安电子科技大学 | 异构环境下带有特殊任务的任务调度方法、系统及应用 |
CN112905317B (zh) * | 2021-02-04 | 2023-12-15 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
CN112905317A (zh) * | 2021-02-04 | 2021-06-04 | 西安电子科技大学 | 快速可重构信号处理异构平台下任务调度方法和系统 |
CN113220356B (zh) * | 2021-03-24 | 2023-06-30 | 南京邮电大学 | 一种移动边缘计算中的用户计算任务卸载方法 |
CN113220356A (zh) * | 2021-03-24 | 2021-08-06 | 南京邮电大学 | 一种移动边缘计算中的用户计算任务卸载方法 |
CN113176933A (zh) * | 2021-04-08 | 2021-07-27 | 中山大学 | 面向海量工作流任务动态云网络互连方法 |
CN113176933B (zh) * | 2021-04-08 | 2023-05-02 | 中山大学 | 面向海量工作流任务动态云网络互连方法 |
CN113064710A (zh) * | 2021-04-15 | 2021-07-02 | 北京理工大学 | 一种云工作流调度方法及系统 |
CN113190336A (zh) * | 2021-05-19 | 2021-07-30 | 浙江中烟工业有限责任公司 | 一种基于有向无环图分层的工作流调度方法及装置 |
CN113190336B (zh) * | 2021-05-19 | 2024-04-30 | 浙江中烟工业有限责任公司 | 一种基于有向无环图分层的工作流调度方法及装置 |
CN113553103A (zh) * | 2021-06-03 | 2021-10-26 | 中国人民解放军战略支援部队信息工程大学 | 基于cpu+gpu异构处理平台的多核并行调度方法 |
CN114385337B (zh) * | 2022-01-10 | 2023-10-20 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114385337A (zh) * | 2022-01-10 | 2022-04-22 | 杭州电子科技大学 | 一种用于分布式工作流系统的任务分组调度方法 |
CN114662932A (zh) * | 2022-03-24 | 2022-06-24 | 重庆邮电大学 | 一种节点分级的工作流类定时任务调度方法 |
CN115858134A (zh) * | 2023-03-02 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 一种固态硬盘的多任务资源控制方法和装置 |
CN117234695A (zh) * | 2023-11-13 | 2023-12-15 | 苏州挚途科技有限公司 | 用于自动驾驶系统的处理任务的调度方法及其装置 |
CN117234695B (zh) * | 2023-11-13 | 2024-01-30 | 苏州挚途科技有限公司 | 用于自动驾驶系统的处理任务的调度方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107301500B (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107301500A (zh) | 一种基于关键路径任务前瞻的工作流调度方法 | |
CN108182109B (zh) | 一种云环境下的工作流调度与数据分配方法 | |
CN110737529A (zh) | 一种面向短时多变大数据作业集群调度自适应性配置方法 | |
US20140059054A1 (en) | Parallel generation of topics from documents | |
Udomkasemsub et al. | A multiple-objective workflow scheduling framework for cloud data analytics | |
CN112416585B (zh) | 面向深度学习的gpu资源管理与智能化调度方法 | |
CN112685138B (zh) | 云环境下基于多种群混合智能优化的多工作流调度方法 | |
Yin et al. | Two-agent single-machine scheduling with unrestricted due date assignment | |
CN106934539B (zh) | 一种带有期限和费用约束的工作流调度方法 | |
CN106991006A (zh) | 支持依赖和时间平衡的云工作流任务聚类方法 | |
WO2019120158A1 (zh) | 物品拣选方法及相关设备 | |
CN110008013A (zh) | 一种最小化作业完工时间的Spark任务分配方法 | |
CN115033357A (zh) | 基于动态资源选择策略的微服务工作流调度方法及装置 | |
CN106934537A (zh) | 基于反向工作流调度的子期限获取优化方法 | |
Ho et al. | Federated deep reinforcement learning for task scheduling in heterogeneous autonomous robotic system | |
CN111061565A (zh) | 一种Spark环境下的两段式流水线任务调度方法及系统 | |
Wang et al. | Dynamic multiworkflow deadline and budget constrained scheduling in heterogeneous distributed systems | |
Kalra et al. | An intelligent water drops-based approach for workflow scheduling with balanced resource utilisation in cloud computing | |
CN112862083B (zh) | 一种边缘环境下的深度神经网络推断方法及装置 | |
CN111913800B (zh) | 基于l-aco的云中微服务成本优化的资源分配方法 | |
CN112306642A (zh) | 一种基于稳定匹配博弈理论的工作流调度方法 | |
Akyol et al. | Multi-machine earliness and tardiness scheduling problem: an interconnected neural network approach | |
Marcus et al. | Workload management for cloud databases via machine learning | |
Elnahary et al. | Task scheduling optimization in cloud computing by cuckoo search algorithm | |
Rajak et al. | Performance Metrics for Comparison of Heuristics Task Scheduling Algorithms in Cloud Computing Platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |