CN104834571B - 一种应用于云工作流调度的数据预取方法 - Google Patents
一种应用于云工作流调度的数据预取方法 Download PDFInfo
- Publication number
- CN104834571B CN104834571B CN201510272832.3A CN201510272832A CN104834571B CN 104834571 B CN104834571 B CN 104834571B CN 201510272832 A CN201510272832 A CN 201510272832A CN 104834571 B CN104834571 B CN 104834571B
- Authority
- CN
- China
- Prior art keywords
- activity
- resource
- forerunner
- convergence
- target resource
- 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.)
- Active
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
一种应用于云工作流调度的数据预取方法,在工作流调度过程中,汇聚活动的多个前驱活动执行的完成时间存在先后次序,当某个前驱活动执行完成后,可以在该资源传输带宽空闲的情况下,预先把某个前驱活动执行完成后输出文件传输到工作流调度过程共同后继所在的资源上,这种优化方法称为数据预取;工作流调度过程中,步骤S1和S2都为数据预取,区别在于数据预取的时机不同;在前驱活动的资源分配时刻,进行数据预取;如果一个活动是某个汇聚活动的前驱活动,那么在分配资源给该前驱活动之后,需进行目标资源的设定,并且将其他已完成的前驱活动的输出文件或数据预先传输到设定的目标资源上。
Description
技术领域
本发明属于云工作流技术领域,尤其是云工作流技术领域中的调度优化技术,该发明可以有效地提高资源的利用率和工作流的执行效率。
背景技术
在工作流管理系统中,调度模块是其最重要的核心组件之一,它的主要目标是根据云计算资源信息和工作流信息,通过合适的调度策略将工作流活动分配到相应的资源上执行。然而,由于资源的异构性和动态性,使得工作流调度问题变的极其复杂,调度算法的优劣直接影响着活动的执行时间以及资源的利用率。因此,如何设计一个高效的调度方法是工作流的重要研究方向之一。由于工作流调度问题是NP完全问题,在很多情况下,获得一个最优解对于求解该类问题几乎是不可能的。我们可以使用启发式算法在多项式时间内得出次优解。
工作流调度问题已经得到了广泛和深入的研究,基于多种算法策略和不同的问题假设提出了很多种算法,大致分为两类:静态调度和动态调度。静态调度无法适应资源环境的动态变化,效率低,容错率差,容易造成工作流活动的运行失败,采用这种调度策略的应用很少。动态调度在建模阶段并不绑定具体的资源,而是绑定资源的描述,因此在调度时能根据运行的实际情况,利用合适的资源来执行活动。动态调度算法按照工作流调度策略可以分为两类:全局动态调度算法与实时动态调度算法。
著名的有遗传算法,蚁群算法等都属于全局动态调度算法。全局动态调度算法有足够的时间充分利用启发式信息,因而能产生更为有效的调度方案。但是算法要求资源环境是稳定的,同时参与调度的活动参数需准确,这在云计算这一动态变化的环境中是难以实现的。在实时动态调度算法中,列表式调度技术由于其设计简单,而且在大多数情况下能获得次优解,因此,现在很多工作流实时动态调度算法大多采用列表式调度的基本思想来构造启发式调度算法的。现有的文献介绍了多种列表式调度算法:M.Maheswaran等人在《Heterogeneous Computing Workshop》会议上发表《Dynamic matching and schedulingof a class of independent tasks onto heterogeneous computing systems》文章,提出Min-Min算法,Max-Min算法,Sufferage算法。H.Topcuoglu等人在《Parallel andDistributed Systems》期刊上发表《Performance-effective and low-complexity taskscheduling for heterogeneous computing》,提出HEFT(Heterogeneous EarliestFinish Time)算法,CPOP(Critical Path on a Processor)算法,M.Rahman等人在《e-Science and Grid Computing》会议上发表《A dynamic critical path algorithm forscheduling scientific workflow applications on global grids》,提出DCP-G算法(Dynamic Critical Path for Grids)。
在上述算法中,Min-Min、Max-Min和Sufferage算法可以归类为基于活动的优先级调度算法,因为在计算活动优先级的时候,算法只考虑活动本身的参数,并没有考虑整个工作流,而HEFT、CPOP和DCP-G算法则从全局出发,考虑了关键路径对工作流调度的影响,HEFT和CPOP算法虽然采用了关键路径技术,但是其关键路径是在调度产生前就确定的,活动的权值也是固定的。然而,在调度过程中,工作流的关键路径会发生变化,活动的权值也会随之会改变,DCP-G算法引入了动态关键路径概念,在每个调度步骤中,重新计算活动的权值。实验数据表明,强调优先调度位于关键路径上的活动的算法在性能上通常优于其它算法,而在调度过程中,动态计算活动优先级的动态关键路径算法的性能通常优于采用静态关键路径的算法。DCP-G算法就是采用动态关键路径的算法,在绝大数情况下,DCP-G算法的调度性能优于其它调度算法。
但是在实验中,我们发现应用DCP-G算法在调度通信密集型工作流时经常出现资源空闲,即资源已经闲置,但该资源上的活动仍然在等待输入数据(即前驱活动的输出数据)而不能执行,我们把这段资源的闲置时间称为空闲时间。在高CCR和低带宽的情况下,输入文件往往需要较长的时间来传输,在这种情况下,空闲时间就会变得很大,这严重影响了资源的利用率,因此我们提出DCP-DPM(Dynamic Critical Path-Data PrefetchingMechanism,动态关键路径-数据预取机制)算法,引入数据预取机制,用于解决空闲时间的问题,进一步提高工作流的调度效率。数据预取机制不仅限于DCP-G算法。
发明内容
本发明鉴于上述情况而做出的,其目的在于提供一种云工作流调度的优化方法。基于传统的工作流调度流程,在活动获得资源调度执行之前,根据工作流活动状态,设定目标资源,协调已经完成的活动进行数据预取。以及在活动结束后,判断是否存在目标资源,进行数据预先传输。这样可以显著地减少资源的空闲时间,提高资源利用率和工作流调度效率。
本发明的技术方案是,一种应用于工作流调度的数据预取方法,在工作流调度过程中,汇聚活动的多个前驱活动执行的完成时间存在先后次序,当某个前驱活动执行完成后,在该资源传输带宽空闲的情况下,预先把某个前驱活动执行完成后的输出文件传输到工作流调度过程共同后继所在的资源上,这种过程称为数据预取:
步骤S1和S2都为数据预取,区别在于数据预取的时机不同;
步骤S1,在前驱活动的资源分配时刻,进行数据预取;如果一个活动是某个汇聚活动的前驱活动,那么在分配资源给该前驱活动之后,需进行目标资源的设定,并且将其他已完成的前驱活动的输出文件或数据预先传输到设定的目标资源上;
步骤S2,在前驱活动执行完成时刻,进行数据预取;判断是否存在目标资源,进行数据预传输;一旦确定目标资源,前驱任务完成之后就能将输出数据提前传输到目标资源。
步骤S1进一步细分为以下步骤(如图2(1)所示):
步骤S101,活动ai被分配到资源Rx,判断活动ai是否为汇聚活动(设为ak)的前驱活动,是则转步骤S102,否则转至步骤S105。
步骤S102,对于汇聚活动ak的其余前驱活动,判断这些活动中是否存在已完成活动,是则转至步骤S103,否则跳转至步骤S105。
步骤S103,判断是否为汇聚活动ak设定目标资源,是则转至步骤S105,否则转至步骤S104.
步骤S104,设定活动ai所在的资源Rx为汇聚活动ak的目标资源,并将其他处于完成状态的ak的前驱活动的输出数据传输到目标资源Rx上。如果活动之前已经将数据传输至目标资源Rx上,则无需重复传输,转至步骤S105。
步骤S105,活动ai开始执行。
步骤S2进一步细分为以下步骤(如图2(2)所示):
步骤S201,活动ai在资源Rx上执行结束,判断活动ai是否为汇聚活动(设为ak)的前驱活动,是则转步骤S202,否则步骤S2结束。
步骤S202,判断是否已为汇聚活动ak设定目标资源,是则转至步骤S205,否则转至步骤S203。
步骤S203,对于汇聚活动ak的其余前驱活动,判断这些活动状态是否有正在执行,是则转至步骤S204,并设正在执行的活动为aj,aj所在资源为Ry,否则步骤S2结束。
步骤S204,设定活动aj所在的资源Ry为汇聚活动ak的目标资源,转至步骤S205。
步骤S205,将活动ai的输出数据从资源Rx传输到目标资源上,如果资源Rx和目标资源相同,则无需传输,步骤S2结束。
本发明有益效果:与现有技术相比,其显著优点是通过在工作流调度中引入数据预取技术,有效地提高资源利用率,进一步提高工作流的执行效率。即在汇聚活动的所有前驱活动未全部执行完之前,可以对已完成的前驱任务的输出数据进行预取,使得前驱任务的输出数据可以提前传输到目标资源上,有效地减少汇聚活动执行前的数据通信时间,减小资源的空闲时间,汇聚活动得到提前执行,从而提高工作流的执行效率。
附图说明
图1为工作流调度流程图。
图2为数据预取技术的流程图
图3为一个工作流DAG建模图。
图4为未引入数据预取方法的工作流调度甘特图。
图5为引入数据预取方法的工作流调度甘特图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明做进一步详细说明。这些描述只是示例性的,而并非要限制本发明的适用范围。此外,在以下说明中,省略了对已存在的结构和技术的描述,以避免不必要地混淆本发明的概念。
图1显示的是一个简化的工作流调度过程,其中步骤S1和S2为本发明独有的步骤,是本发明的要点:
步骤S1进一步细分为以下步骤(如图2(1)所示):
步骤S101,活动ai被分配到资源Rx,判断活动ai是否为汇聚活动(设为ak)的前驱活动,是则转步骤S102,否则转至步骤S105。
步骤S102,对于汇聚活动ak的其余前驱活动,判断这些活动中是否存在已完成活动,是则转至步骤S103,否则跳转至步骤S105。
步骤S103,判断是否为汇聚活动ak设定目标资源,是则转至步骤S105,否则转至步骤S104。
步骤S104,设定活动ai所在的资源Rx为汇聚活动ak的目标资源,并将其他处于完成状态的ak的前驱活动的输出数据传输到目标资源Rx上。如果活动之前已经将数据传输至目标资源Rx上,则无需重复传输,转至步骤S105。
步骤S105,活动ai开始执行。
步骤S2进一步细分为以下步骤(如图2(2)所示):
步骤S201,活动ai在资源Rx上执行结束,判断活动ai是否为汇聚活动(设为ak)的前驱活动,是则转步骤S202,否则步骤S2结束。
步骤S202,判断是否已为汇聚活动ak设定目标资源,是则转至步骤S205,否则转至步骤S203。
步骤S203,对于汇聚活动ak的其余前驱活动,判断这些活动状态是否有正在执行,是则转至步骤S204,并设正在执行的活动为aj,aj所在资源为Ry,否则步骤S2结束。
步骤S204,设定活动aj所在的资源Ry为汇聚活动ak的目标资源,转至步骤S205。
步骤S205,将活动ai的输出数据从资源Rx传输到目标资源上,如果资源Rx和目标资源相同,则无需传输,步骤S2结束。
图3是一个DAG表示的工作流模型及云计算资源环境,活动的输出数据单位为GB(GigaBytes),计算量单位为MI(Million Instructions,MI),资源带宽单位为Mbps(Mbit/s),其中包含as,a1,a2,a3,ae五个具有不同计算量和数据传输量的活动。假设云计算环境中一共有两个资源,资源R1的计算能力为1200MIPS,带宽为100Mbps,资源R2的计算能力为1500MIPS,带宽为100Mbps。
图4展示的是根据已有的调度方法,做出的工作流调度方案的甘特图。其中活动as,a1,a3,ae被分配到资源R2上执行,活动a2被分配到资源R1上执行。活动a2,a3全部完成后才进行数据传输,且活动a2的1G输出数据从资源R1传输到资源R2,需耗时80s,当所有前驱活动的数据传输结束后,活动ae才能开始执行,整个工作流的调度时间为760s。
图5展示的是引入了数据预取技术的工作流调度。活动as,a1并非汇聚活动的前驱活动,因此,活动as,a1运行步骤S101、S105和步骤S201、S205。当活动a2被调度到资源R1时,运行步骤S101,由于a2为汇聚活动ae的前驱活动,则转至步骤S102,此时汇聚活动ae的其他前驱活动未分配,因此转至步骤S105,活动a2开始执行。当活动a3被调度到资源R2时,运行步骤S101,由于a3为汇聚活动ae的前驱活动,则转至步骤S102,此时汇聚活动ae不存在已完成的前驱活动,因此转至步骤S105,活动a3开始执行。当活动a2执行结束,运行步骤S201,由于a2为汇聚活动ae的前驱活动,则转至步骤S202,由于汇聚活动ak的目标资源并未被设置,因此转至步骤S203,汇聚活动的另一个前驱活动为a3,该活动处于执行状态,因此转至步骤S204,设置资源R2为汇聚活动的目标资源,继续执行至步骤S205,将活动a2的1G输出数据从资源R1传输到资源R2上,步骤S2结束。当活动a3执行结束,运行步骤S201,由于a3为汇聚活动ae的前驱活动,则转至步骤S202,由于目标资源为R2,已存在,则转至步骤S205,由于资源R2和目标资源相同,无需传输数据,步骤S2结束,活动ae为结束活动,运行步骤S101、S105和步骤S201、S205。整个工作流调度完成时间为680s。
由于采取了数据预取技术,当活动a2执行完成时,根据步骤S2,确立了目标资源R2,提前把活动a2的1G输出数据传输到资源R1,使得在活动a3结束时,汇聚活动ae就已经获取了所有前驱活动的输出数据,ae可以得到立即执行,使得整个工作流的调度时间减小。
应当指明的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (1)
1.一种应用于云工作流调度的数据预取方法,其特征在于:在工作流调度过程中,汇聚活动的多个前驱活动执行的完成时间存在先后次序,当某个前驱活动执行完成后,在资源传输带宽空闲的情况下,预先把某个前驱活动执行完成后输出文件传输到工作流调度过程共同后继所在的资源上,这种优化方法称为数据预取;工作流调度过程中,步骤S1和S2都为数据预取,区别在于数据预取的时机不同;
步骤S1,在前驱活动的资源分配时刻,进行数据预取;如果一个活动是某个汇聚活动的前驱活动,那么在分配资源给该前驱活动之后,需进行目标资源的设定,并且将其他已完成的前驱活动的输出文件或数据预先传输到设定的目标资源上;
步骤S2,在前驱活动执行完成时刻,进行数据预取;判断是否存在目标资源,进行数据预传输;一旦确定目标资源,前驱任务完成之后就能将输出数据提前传输到目标资源;
步骤S1进一步细分为以下步骤:
步骤S101,活动a i被分配到资源R x,判断活动a i是否为汇聚活动a k的前驱活动,是则转步骤S102,否则转至步骤S105;
步骤S102,对于汇聚活动a k的其余前驱活动,判断这些活动中是否存在已完成活动,是则转至步骤S103,否则跳转至步骤S105;
步骤S103,判断是否为汇聚活动a k设定目标资源,是则转至步骤S105,否则转至步骤S104;
步骤S104,设定活动a i所在的资源R x为汇聚活动a k的目标资源,并将其他处于完成状态的a k的前驱活动的输出数据传输到目标资源R x上;如果活动之前已经将数据传输至目标资源R x上,则无需重复传输,转至步骤S105;
步骤S105,活动a i开始执行;
步骤S2进一步细分为以下步骤:
步骤S201,活动a i在资源R x上执行结束,判断活动a i是否为汇聚活动a k的前驱活动,是则转步骤S202,否则步骤S2结束;
步骤S202,判断是否已为汇聚活动a k设定目标资源,是则转至步骤S205,否则转至步骤S203;
步骤S203,对于汇聚活动a k的其余前驱活动,判断这些活动状态是否有正在执行,是则转至步骤S204,并设正在执行的活动为a j,a j所在资源为R y,否则步骤S2结束;
步骤S204,设定活动a j所在的资源R y为汇聚活动a k的目标资源,转至步骤S205;
步骤S205,将活动a i的输出数据从资源R x传输到目标资源上,如果资源R x和目标资源相同,则无需传输,步骤S2结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510272832.3A CN104834571B (zh) | 2015-05-25 | 2015-05-25 | 一种应用于云工作流调度的数据预取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510272832.3A CN104834571B (zh) | 2015-05-25 | 2015-05-25 | 一种应用于云工作流调度的数据预取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104834571A CN104834571A (zh) | 2015-08-12 |
CN104834571B true CN104834571B (zh) | 2018-05-25 |
Family
ID=53812479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510272832.3A Active CN104834571B (zh) | 2015-05-25 | 2015-05-25 | 一种应用于云工作流调度的数据预取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104834571B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110519317B (zh) * | 2018-05-21 | 2021-02-12 | 华为技术有限公司 | 一种数据传输方法以及设备 |
GB2580178B (en) * | 2018-12-21 | 2021-12-15 | Imagination Tech Ltd | Scheduling tasks in a processor |
CN116185596B (zh) * | 2023-04-24 | 2023-08-01 | 之江实验室 | 提升广域多集群分布式系统执行任务效率的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591712A (zh) * | 2011-12-30 | 2012-07-18 | 大连理工大学 | 一种云计算中依赖任务的解耦并行调度方法 |
CN102681901A (zh) * | 2012-05-08 | 2012-09-19 | 西安交通大学 | 一种分区域的可重构硬件任务放置方法 |
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN103942102A (zh) * | 2014-04-14 | 2014-07-23 | 桂林电子科技大学 | 基于双优先级的实时任务调度方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061266A1 (en) * | 2001-09-27 | 2003-03-27 | Norman Ken Ouchi | Project workflow system |
-
2015
- 2015-05-25 CN CN201510272832.3A patent/CN104834571B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102591712A (zh) * | 2011-12-30 | 2012-07-18 | 大连理工大学 | 一种云计算中依赖任务的解耦并行调度方法 |
CN102681901A (zh) * | 2012-05-08 | 2012-09-19 | 西安交通大学 | 一种分区域的可重构硬件任务放置方法 |
CN102799957A (zh) * | 2012-05-30 | 2012-11-28 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN103942102A (zh) * | 2014-04-14 | 2014-07-23 | 桂林电子科技大学 | 基于双优先级的实时任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104834571A (zh) | 2015-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Devipriya et al. | Improved max-min heuristic model for task scheduling in cloud | |
CN106773711B (zh) | 一种铁路机车运行操纵系统的混合任务调度方法及模型 | |
CN103473122B (zh) | 一种云计算环境中的工作流系统资源调度方法 | |
CN105930214B (zh) | 一种基于q学习的混合云作业调度方法 | |
CN104915407A (zh) | 一种基于Hadoop多作业环境下的资源调度方法 | |
CN103699446A (zh) | 基于量子粒子群优化算法的多目标工作流动态调度方法 | |
CN104331321A (zh) | 基于禁忌搜索和负载均衡的云计算任务调度方法 | |
CN111738446A (zh) | 深度学习推理引擎的调度方法、装置、设备和介质 | |
CN104834571B (zh) | 一种应用于云工作流调度的数据预取方法 | |
Gawali et al. | Standard deviation based modified cuckoo optimization algorithm for task scheduling to efficient resource allocation in cloud computing | |
CN104239135A (zh) | 有向无环图的可重构系统的混合任务调度方法 | |
CN103838627A (zh) | 一种基于工作流吞吐量最大化的工作流调度方法 | |
KR101770191B1 (ko) | 자원 할당 방법 및 그 장치 | |
CN108737462A (zh) | 一种基于图论的云计算数据中心任务调度方法 | |
Qiu et al. | Cost-minimizing preemptive scheduling of mapreduce workloads on hybrid clouds | |
Li et al. | Endpoint-flexible coflow scheduling across geo-distributed datacenters | |
Yun et al. | An integrated approach to workflow mapping and task scheduling for delay minimization in distributed environments | |
Kang et al. | A SLA driven VM auto-scaling method in hybrid cloud environment | |
CN104461471A (zh) | 分簇vliw处理器上统一的指令调度和寄存器分配方法 | |
CN105740249B (zh) | 一种大数据作业并行调度过程中的处理方法及其系统 | |
CN103677996B (zh) | 用于平衡工作负荷分布的协作方法和系统 | |
Natarajan | Parallel queue scheduling in dynamic cloud environment using backfilling algorithm | |
CN117290102A (zh) | 跨域异构资源的调度方法及装置 | |
Chen et al. | Deadline-constrained MapReduce scheduling based on graph modelling | |
CN108228323A (zh) | 基于数据本地性的Hadoop任务调度方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
EXSB | Decision made by sipo to initiate substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |