CN113064711B - 一种在线多工作流动态调度方法和系统 - Google Patents

一种在线多工作流动态调度方法和系统 Download PDF

Info

Publication number
CN113064711B
CN113064711B CN202110405652.3A CN202110405652A CN113064711B CN 113064711 B CN113064711 B CN 113064711B CN 202110405652 A CN202110405652 A CN 202110405652A CN 113064711 B CN113064711 B CN 113064711B
Authority
CN
China
Prior art keywords
workflow
time
task
virtual machine
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.)
Active
Application number
CN202110405652.3A
Other languages
English (en)
Other versions
CN113064711A (zh
Inventor
夏元清
叶玲娟
詹玉峰
翟弟华
戴荔
张金会
闫莉萍
刘坤
郭泽华
崔冰
邹伟东
孙中奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN202110405652.3A priority Critical patent/CN113064711B/zh
Publication of CN113064711A publication Critical patent/CN113064711A/zh
Application granted granted Critical
Publication of CN113064711B publication Critical patent/CN113064711B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Abstract

本发明涉及一种在线多工作流动态调度方法和系统。该在线多工作流动态调度方法,在根据获取的第一节点时间确定第二节点时间后,根据第二节点时间确定工作流任务的子截止期,然后,在根据子截止期生成任务调度序列后获取分布式调度模型,根据任务调度序列完成对工作流任务的调度,进而解决现有技术中存在的云计算资源不能得到充分利用造成过多花费的问题。

Description

一种在线多工作流动态调度方法和系统
技术领域
本发明涉及工作流调度领域,特别是涉及一种在线多工作流动态调度方法和系统。
背景技术
信息技术快速发展催生了对高性能计算的需求,为解决大规模计算和高数量级数据处理,云计算作为一种新的计算范式提供了一种新的系统体系结构。工作流将复杂应用建模成有向无环图(DAG),使其成为适合于云环境下计算机处理的作业。随着云计算技术的发展,工作流调度问题已成为云计算环境中重要的研究方向。
在线工作流是工作流调度系统中一类常见的调度业务场景,多用户向调度系统提交工作流的时间是随机的,通常被考虑为是泊松分布。在线多工作流调度是指在考虑工作流到达的随机性和工作流任务间依赖关系的情况下,设计一种不违反用户给定约束条件任务和云计算资源(虚拟机)的匹配算法,实现最大化用户满意度。在线多工作流调度不仅为提高用户满意度、减少工作流等待时间提供有效的决策支持,而且在线多工作流调度对云计算资源的优化配置,云服务商的成本降低,云系统的平稳运行有着重要影响。
设计动态调度算法是在线多工作流调度研究的关键问题。现有技术中采用大规模工作流和小规模工作流混合调度模式,小规模工作流工作量和云计算资源计费单位差距较大,导致云计算资源不能得到充分利用造成过多花费。
发明内容
为解决现有技术中存在的上述问题,本发明提供了一种在线多工作流动态调度方法和系统。
为实现上述目的,本发明提供了如下方案:
一种在线多工作流动态调度方法,包括:
获取工作流任务的第一节点时间;所述节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间;
根据所述第一节点时间确定第二节点时间;所述第二节点时间包括:开始时间、第一完成时间和第二完成时间;所述第一完成时间早于所述第二完成时间;
根据所述第二节点时间确定所述工作流任务的子截止期;
根据所述子截止期生成任务调度序列;
获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度;所述分布式调度模型为包含多种虚拟机的分布式调度框架。
优选地,所述获取工作流任务的第一节点时间,之前还包括:
获取预设计费单位和当前时刻工作流的工作量;
根据所述预设计费单位和所述工作量确定当前时刻工作流的效用参数;
根据所述效用参数将工作流进行分类为第一规模工作流和第二规模工作流;所述第一规模工作流的工作量大于所述第二规模的工作量。
优选地,所述根据所述第一节点时间确定第二节点时间,具体包括:
根据所述达到时间、所述任务平均执行时间和所述任务数据传输时间确定所述开始时间;
根据所述开始时间和所述任务平均执行时间确定所述第一完成时间;
根据所述截止时间、所述任务平均执行时间和所述任务数据传输时间确定第二完成时间。
优选地,所述根据所述第二节点时间确定所述工作流任务的子截止期,具体包括:
采用IC-PCP2算法,根据所述第二节点时间确定所述工作流任务的子截止期。
优选地,所述获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度,具体包括:
对所述工作流进行资源配置得到执行所述工作流的虚拟机集合;执行所述第一规模工作流的虚拟机采用七种类型的虚拟机;执行所述第二规模工作流的虚拟机采用两种类型的虚拟机;
依序获取所述任务调度序列中的工作流任务;
遍历所述虚拟机集合,确定所述虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间;
获取所述第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合;
遍历所述第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合;
判断所述第一虚拟机子集合或所述第二虚拟机子集合是否为空,得到判断结果;
若所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合为空,则开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务;
若所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合不为空,则采用所述第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的在线多工作流动态调度方法,在根据获取的第一节点时间确定第二节点时间后,根据第二节点时间确定工作流任务的子截止期,然后,在根据子截止期生成任务调度序列后获取分布式调度模型,根据任务调度序列完成对工作流任务的调度,进而解决现有技术中存在的云计算资源不能得到充分利用造成过多花费的问题。
对应于上述提供的在线多工作流动态调度方法,本发明还提供了以下系统结构:
一种在线多工作流动态调度系统,包括:
第一节点时间获取模块,用于获取工作流任务的第一节点时间;所述节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间;
第二节点时间确定模块,用于根据所述第一节点时间确定第二节点时间;所述第二节点时间包括:开始时间、第一完成时间和第二完成时间;所述第一完成时间早于所述第二完成时间;
子截止期确定模块,用于根据所述第二节点时间确定所述工作流任务的子截止期;
任务调度序列生成模块,用于根据所述子截止期生成任务调度序列;
调度执行模块,用于获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度;所述分布式调度模型为包含多种虚拟机的分布式调度框架。
优选地,还包括:
工作量获取模块,用于获取预设计费单位和当前时刻工作流的工作量;
效用参数确定模块,用于根据所述预设计费单位和所述工作量确定当前时刻工作流的效用参数;
工作流分类模块,用于根据所述效用参数将工作流进行分类为第一规模工作流和第二规模工作流;所述第一规模工作流的工作量大于所述第二规模的工作量。
优选地,所述第二节点时间确定模块具体包括:
开始时间确定单元,用于根据所述达到时间、所述任务平均执行时间和所述任务数据传输时间确定所述开始时间;
第一完成时间确定单元,用于根据所述开始时间和所述任务平均执行时间确定所述第一完成时间;
第二完成时间确定单元,用于根据所述截止时间、所述任务平均执行时间和所述任务数据传输时间确定第二完成时间。
优选地,所述子截止期确定模块具体包括:
子截止期确定单元,用于采用IC-PCP2算法,根据所述第二节点时间确定所述工作流任务的子截止期。
优选地,所述调度执行模块具体包括:
虚拟机集合构建单元,用于对所述工作流进行资源配置得到执行所述工作流的虚拟机集合;执行所述第一规模工作流的虚拟机采用七种类型的虚拟机;执行所述第二规模工作流的虚拟机采用两种类型的虚拟机;
工作流任务依序获取单元,用于依序获取所述任务调度序列中的工作流任务;
第一虚拟机遍历单元,用于遍历所述虚拟机集合,确定所述虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间;
第一虚拟机子集合构建单元,用于获取所述第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合;
第二虚拟机子集合构建单元,用于遍历所述第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合;
判断单元,用于判断所述第一虚拟机子集合或所述第二虚拟机子集合是否为空,得到判断结果;
第一工作流任务执行单元,用于当所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合为空时,开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务;
第二工作流任务执行单元,用于当所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合不为空时,采用所述第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
因本发明提供的在线多工作流动态调度系统达到的技术效果与本发明上述提供的在线多工作流动态调度方法达到的技术效果相同,所以,在此不再进行赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的在线多工作流动态调度方法的流程图;
图2为本发明提供的实施在线多工作流动态调度方法的框架图;
图3为本发明实施例提供的不同调度算法在不同工作流到达率上调度花费对比图;
图4为本发明实施例提供的不同调度算法在不同工作流数量上调度花费对比图;
图5为本发明实施例提供的不同调度算法在不同工作流截止期因子上调度花费对比图;
图6为本发明实施例提供的不同调度算法在不同工作流到达率上调度成功率对比图;
图7为本发明实施例提供的不同调度算法在不同工作流数量上调度成功率对比图;
图8为本发明实施例提供的不同调度算法在不同工作流截止期因子上调度成功率对比图;
图9为本发明实施例提供的不同调度算法在不同工作流到达率上资源利用率对比图;
图10为本发明实施例提供的不同调度算法在不同工作流数量上资源利用率对比图;
图11为本发明实施例提供的不同调度算法在不同工作流截止期因子上资源利用率对比图;
图12为本发明实施例提供的在线工作流动态调度系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种高效的在线多工作流动态调度方法和系统,以解决现有技术中存在的云计算资源不能得到充分利用造成过多花费的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供的在线多工作流动态调度方法,包括:
步骤100:获取工作流任务的第一节点时间。节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间。
步骤101:根据第一节点时间确定第二节点时间。第二节点时间包括:开始时间、第一完成时间和第二完成时间。第一完成时间早于第二完成时间。
步骤102:根据第二节点时间确定工作流任务的子截止期。
步骤103:根据子截止期生成任务调度序列。
步骤104:获取分布式调度模型,根据任务调度序列完成对工作流任务的调度。分布式调度模型为包含多种虚拟机的分布式调度框架。
为了减少使用虚拟机的数量,降低在线工作流调度的执行成本,在步骤100之前本发明还包括:
收集当前时刻周期内到达调度系统的工作流,根据工作流的效用参数大小分类为大规模工作流和小规模工作流,包括:
获取预设计费单位和当前时刻工作流的工作量。
根据预设计费单位和工作量确定当前时刻工作流的效用参数。
根据效用参数将工作流进行分类为第一规模工作流和第二规模工作流。第一规模工作流的工作量大于第二规模的工作量。
具体的,具体过程为:
(1-1)设置调度周期ε,工作流达到率服从参数α的泊松分布。
(1-2)收集当前时间周期[t,t+∈]内到达的工作流,记为工作流集合
Figure BDA0003022200700000081
Figure BDA0003022200700000082
得到工作流的到达时刻Ai、工作总量Ci和截止时间Di。根据工作流工作总量Ci与处理器单位计费时间T得到效用参数Ui,其计算公式如下:
Figure BDA0003022200700000083
(1-3)根据各工作流效用参数Ui的大小,工作流集合
Figure BDA0003022200700000084
划分为大规模工作流和小规模工作流,Ui≥1,则工作流为大规模工作流,反之,则为小规模工作流。
进一步,上述步骤101中根据第一节点时间确定第二节点时间,具体包括:
根据达到时间、任务平均执行时间和任务数据传输时间确定开始时间。各个任务的最早开始时间,计算公式如下:
Figure BDA0003022200700000085
其中
Figure BDA0003022200700000086
是任务
Figure BDA0003022200700000087
父任务构成的集合,
Figure BDA0003022200700000088
是任务
Figure BDA0003022200700000089
的平均执行时间,
Figure BDA00030222007000000810
是任务
Figure BDA00030222007000000811
和任务
Figure BDA00030222007000000812
间的数据传输时间。
根据开始时间和任务平均执行时间确定第一完成时间。在本发明中第一完成时间就是完成工作流中任务的最早时间,其计算公式为:
Figure BDA0003022200700000091
根据截止时间、任务平均执行时间和任务数据传输时间确定第二完成时间。第二完成时间就是工作流中任务的最晚完成时间,其计算公式为:
Figure BDA0003022200700000092
其中,
Figure BDA0003022200700000093
是任务
Figure BDA0003022200700000094
子任务构成的集合。
进一步,基于上述第二完成时间的具体确定过程,步骤102中根据第二节点时间确定工作流任务的子截止期,具体包括:
采用IC-PCP2算法,根据第二节点时间确定工作流任务的子截止期。子截止期计算公式如下:
Figure BDA0003022200700000095
其中,
Figure BDA0003022200700000096
是IC-PCP2算法中部分关键路径上最后一个任务的最早完成时间,
Figure BDA0003022200700000097
是IC-PCP2算法中部分关键路径上第一个任务的最早开始时间,
Figure BDA0003022200700000098
是IC-PCP2算法中部分关键路径上最后一个任务的最晚完成时间。
基于以上步骤,被分类后的工作流根据大、小规模工作流任务的子截止期从小到大排序,分别生成两个任务调度序列Q1和Q1
进一步,为了降低任务调度花费,提高任务调度效率,上述步骤104获取分布式调度模型,根据任务调度序列完成对工作流任务的调度,具体包括:
对工作流进行资源配置得到执行工作流的虚拟机集合。执行第一规模工作流的虚拟机采用七种类型的虚拟机。执行第二规模工作流的虚拟机采用两种类型的虚拟机。其中,第一规模工作流即为大规模工作流,该工作流采用的七种类型的虚拟机按计算能力和调度花费从大到小排序的类型为:m2.4xlarge,m2.2xlarge,m1.xlarge,m2.xlarge,m1.large,m1.mediu和m1.small。第二规模工作流即为小规模工作流,该工作流采用的两种类型的虚拟机类型为:m2.4xlarge和m2.2xlarge。不同等级的虚拟机计算能力和执行花费是不同的,计算能力越高,调度花费越高。
依序获取任务调度序列中的工作流任务。
遍历虚拟机集合,确定虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间。
获取第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合。
遍历第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合。
判断第一虚拟机子集合或第二虚拟机子集合是否为空,得到判断结果。
若判断结果为第一虚拟机子集合或第二虚拟机子集合为空,则开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务。
若判断结果为第一虚拟机子集合或第二虚拟机子集合不为空,则采用第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
基于以上步骤104的执行步骤,其具体执行过程为:
(2-1)大规模工作流和小规模工作流分别进行资源配置。
(2-2)获得大规模工作流准备调度任务集R1和小规模工作流准备调度任务集R2。从R1中选出子截止期最小的任务P1,从R2选出子截止期最小的任务P2
(2-3)遍历当前执行大规模工作流任务的开启虚拟机集合L={v1,v2,…,vl}和执行小规模工作流任务的开启虚拟机集合。其中,vi表示第i个执行大规模工作流的虚拟机,si表示第i个执行小规模工作流的虚拟机。计算L中各虚拟机vi对任务P1执行花费cost(P1,i)和空闲时间idle(P1,i),计算S中各虚拟机si对任务P2的执行花费cost(P2,i),和空闲时间idle(P2,i),计算方式分别如下:
Figure BDA0003022200700000111
Figure BDA0003022200700000112
Figure BDA0003022200700000113
Figure BDA0003022200700000114
其中,p(vi)为虚拟机vi的价格,
Figure BDA0003022200700000115
为任务Pk在虚拟机vi上的执行时间,RST(Pk)为任务Pk的准备开始时间,
Figure BDA0003022200700000116
为处理器vi的准备时间。
(2-4)遍历当前执行大规模工作流任务的开启虚拟机集合L={v1,v2,…,vl},计算任务P1在虚拟机vi的完成时间FT(P1,i),遍历当前执行小规模工作流任务的开启虚拟机集合S={s1,s2,…,sk},计算任务P2在虚拟机si的完成时间FT(P2,i),计算方式如下:
Figure BDA0003022200700000117
Figure BDA0003022200700000118
其中,
Figure BDA0003022200700000119
为任务Pk在虚拟机vi上的执行时间,RST(Pk)为任务Pk的准备开始时间,
Figure BDA00030222007000001110
为处理器vi的准备时间。
(2-5)根据上述步骤(2-4)的任务完成时间FT(P1,i)和第二步骤中的任务截止期Dsub(P1),在虚拟机集合L中找出满足FT(P1,i)≤Dsub(P1)的虚拟机集合,记为L'={vi∈L,FT(P1,i)≤Dsub(P1)},在L′中选择一台执行花费cost(P1,i)最小情况下空闲时间idle(P1,i)最小的虚拟机执行任务P1,若已经开启的虚拟机集合L为空集或者满足任务P1的子截止期的开启虚拟机L'为空集,则新启动一台满足FT(P1,i)≤Dsub(P1)的前提下执行花费cost(P1,i)最小的虚拟机执行任务P1。若没有虚拟机能满足P1的子截止期,则开启一台类型为m2.4xlarge虚拟机执行P1。类似地,根据上述步骤(2-4)的任务完成时间FT(P2,i)和第二步骤中的任务截止期Dsub(P2),在虚拟机集合S中找出满足FT(P2,i)≤Dsub(P2)的虚拟机集合,记为S'={vi∈L,FT(P2,i)≤Dsub(P2)},在S'中选择一台执行花费cost(P2,i)最小情况下空闲时间idle(P2,i)最小的虚拟机执行任务P2,若已经开启的虚拟机集合S为空集或者P2为工作流入口任务且满足任务P2子截止期的开启虚拟机S'为空集,则新开启一台满足P2子截止期且执行花费最小的虚拟机执行P2,若没有虚拟机能满足P2子截止期,则开启一台类型为m2.4xlarge虚拟机执行P2
(2-6)重复步骤(2-2)-(2-5)直到完成任务集R1和R2所有任务的调度,根据任务集R1和R2中任务的最终完成时间更新相应任务的子任务最早开始时间和最早完成时间,更新相应的子任务子截止期。
(2-7)重复步骤(2-1)-(2-6)直到完成当前时间周期内所有工作流任务的调度,进入下一时间周期重复上述所有步骤。
下面以一个具体实施方式,对本发明提供的在线多工作流动态调度方法的优点进行进一步说明。
基于以上内容,能够得到,本发明提供的在线工作流动态调度方法的主要思想是:周期性地收集工作流,对周期内工作流进行规模分类,采用分布式调度框架针对大、小规模工作流分别设计调度算法,实现在保证不降低用户满意度的条件下减少调度花费,提高云计算资源利用率。
基于该思想,本发明的调度方法包括基于周期时间的工作流收集和分类、任务子截止期分配,以及在线工作流分布式调度。如图2所示,其具体步骤如下:
第一步:收集周期时间内到达的工作流和工作流分类。
根据用户提交工作流时间的随机性,设定相应的泊松分布参数α和调度周期长度ε,收集当前时间周期[t,t+ε)内用户提交的工作流。
根据用户提交工作流的工作总量Ci和云服务商设定的计费单位T,计算工作流效用参数Ui
Figure BDA0003022200700000121
利用工作流效用参数将工作流分为两类,当Ui≥1时,工作流为大规模工作流,反之则为小规模工作流。
第二步:分配工作流任务子截止期和确定任务调度优先级。
根据用户提交的工作流到达时间Ai、工作流任务平均执行时间
Figure BDA0003022200700000131
以及用户给定的工作流截止期Di,计算各任务最早开始时间
Figure BDA0003022200700000132
最早完成时间
Figure BDA0003022200700000133
和最晚完成时间
Figure BDA0003022200700000134
具体计算过程参见上文。
使用IC_PCP2算法对工作流DAG进行分解生成多个部分关键路径(PCP),根据每条PCP的第一个任务最早开始时间
Figure BDA0003022200700000135
最后一个任务最早开始时间
Figure BDA0003022200700000136
和最晚完成时间
Figure BDA0003022200700000137
计算各任务子截止期。子截止期的具体计算方式请参见上文内容。
根据各任务子截止期从小到大排序生成任务调度优先序列。
第三步:获得工作流准备调度任务集和生成调度方案。
现有的算法大多对工作流进行统一资源配置调度,而这样的配置方式会过多开启新虚拟机以满足任务截止期约束且增加计算资源花费而导致整体调度方案的成本提高,故本发明对工作流进行分类,针对不同类型的工作流配置不同资源类型,采用分布式调度框架对不同类型工作流设计不同调度策略。
首先根据步骤一的分类情况,大规模工作流配置七种等级不同资源类型(计算能力和调度花费从大到小排列为m2.4xlarge,m2.2xlarge,m1.xlarge,m2.xlarge,m1.large,m1.mediu和m1.small),小规模工作流配置两种资源类型(m2.4xlarge,m2.2xlarge),在满足任务截止期约束下减少开启虚拟机的数量,从而降低调度花费。
遍历每个大、小规模工作流分别获取工作流中父任务已被调度或没有父任务的任务生成大、小规模工作流的准备调度任务集R1和R2,根据任务子截止期大小分别获取准备调度任务集R1和R2中的子截止期最小的工作流任务P1和P2
遍历当前调度大规模工作流任务的开启虚拟机集合L,计算任务P1在各虚拟机上的执行花费cost(P1,i)和空闲时间idle(P1,i),同理,遍历小规模工作流任务的开启虚拟机集合S,计算任务P2的执行花费cost(P2,i)和空闲时间idle(P2,i)。
采用分布式调度策略分别调度大、小规模工作流,对大规模工作流任务P1,选择满足任务子截止期约束执行花费最低且空闲时间最短的虚拟机执行,若开启的虚拟机都不满足任务子截止期,则新开一台满足任务子截止期的等级最低的虚拟机执行,若最高等级虚拟机也不满足任务子截止期,则新开一台最高等级虚拟机执行任务P1。对小规模工作流任务P2,选择执行父任务虚拟机中执行花费最少且空闲时间最低的虚拟机或者满足任务子截止期约束执行花费最低且空闲时间最短的虚拟机执行。若任务P1是工作流入口任务且开启的虚拟机都不满足任务子截止期,则新开满足任务子截止期的等级最低的虚拟机执行。
依次类推,任务准备调度任务集R1和R2的每一个任务匹配一个虚拟机,从而生成任务集R1和R2的调度方案。为了进一步降低执行花费,任务集R1和R2中各任务的最终完成时间反馈作用下一轮准备调度任务集,更新下一轮准备调度任务集任务的子截止期。
重复上述步骤,完成周期内所有工作流任务的调度,得到在线多工作流动态调度方案。
根据图3至图11,以及下表1可知,与NOSA算法和ROSA算法相比,本发明提供的在线多工作流动态调度方法的任务执行花费和资源利用率驱动在多工作流在线调度成本上能够有效的降低,在调度成功率和资源利用率上都有一定的提升。
表1在线工作流动态调度算法基于不同调度算法的成本优化表
工作流场景 基于NOSF的平均价格优化(%) 基于ROSA的平均价格优化(%)
不同工作流到达率 69.9 86.2
不同工作流数量 45.7 84.6
不同工作流截止期 56.1 85.0
综上,本发明能够克服现有在线工作流调度算法中,存在的小规模工作流调度花费较多和云资源利用率较低的缺点,在现代科学研究过程日益趋于规模化、扩大化,研究目标具有随机性的背景下,能够有效地降低调度成本,提高云资源利用率,具体来说包括以下几点:
1、通过在现有在线工作流调度算法基础上将工作流进行规模进行分类调度,针对大、小规模工作流分别配置调度资源类型,大规模工作流对资源需求量大,租用的虚拟机能够充分利用其计费单位的资源,设置多种调度资源类型,小规模工作流资源需求量少,设置两种最高级和次高级调度资源类型,减少租用虚拟机的数量,从而降低在线多工作流调度成本。
2、通过根据当前开启的虚拟机情况,大规模工作流任务选择满足子截止期花费最小的虚拟机,小规模工作流采用的虚拟机等级高能够有效地保证满足子截止期,小规模工作流任务选择父任务所在虚拟机集合中花费最小的虚拟机,减少了新增虚拟机的数量,实现降低工作流调度花费和提高云资源利用率。
对应于上述提供的在线多工作流动态调度方法,本发明还提供了一种在线多工作流动态调度系统,如图12所示,该系统包括:第一节点时间获取模块1、第二节点时间确定模块2、子截止期确定模块3、任务调度序列生成模块4和调度执行模块5。
其中,第一节点时间获取模块1用于获取工作流任务的第一节点时间。节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间。
第二节点时间确定模块2用于根据第一节点时间确定第二节点时间。第二节点时间包括:开始时间、第一完成时间和第二完成时间。第一完成时间早于第二完成时间。
子截止期确定模块3用于根据第二节点时间确定工作流任务的子截止期。
任务调度序列生成模块4用于根据子截止期生成任务调度序列。
调度执行模块5用于获取分布式调度模型,根据任务调度序列完成对工作流任务的调度。分布式调度模型为包含多种虚拟机的分布式调度框架。
进一步,为了减少使用虚拟机的数量,降低在线工作流调度的执行成本,本发明上述提供的在线多工作流动态调度系统还包括:工作量获取模块、效用参数确定模块和工作流分类模块。
其中,工作量获取模块用于获取预设计费单位和当前时刻工作流的工作量。
效用参数确定模块用于根据预设计费单位和工作量确定当前时刻工作流的效用参数。
工作流分类模块用于根据效用参数将工作流进行分类为第一规模工作流和第二规模工作流。第一规模工作流的工作量大于第二规模的工作量。
进一步,上述第二节点时间确定模块2具体包括:开始时间确定单元、第一完成时间确定单元和第二完成时间确定单元。
其中,开始时间确定单元用于根据达到时间、任务平均执行时间和任务数据传输时间确定开始时间。
第一完成时间确定单元用于根据开始时间和任务平均执行时间确定第一完成时间。
第二完成时间确定单元用于根据截止时间、任务平均执行时间和任务数据传输时间确定第二完成时间。
进一步,上述子截止期确定模块3具体包括:子截止期确定单元。
其中,子截止期确定单元用于采用IC-PCP2算法,根据第二节点时间确定工作流任务的子截止期。
进一步,上述调度执行模块4具体包括:虚拟机集合构建单元、工作流任务依序获取单元、第一虚拟机遍历单元、第一虚拟机子集合构建单元、第二虚拟机子集合构建单元、判断单元、第一工作流任务执行单元和第二工作流任务执行单元。
其中,虚拟机集合构建单元用于对工作流进行资源配置得到执行工作流的虚拟机集合。执行第一规模工作流的虚拟机采用七种类型的虚拟机。执行第二规模工作流的虚拟机采用两种类型的虚拟机。
工作流任务依序获取单元用于依序获取任务调度序列中的工作流任务。
第一虚拟机遍历单元用于遍历虚拟机集合,确定虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间。
第一虚拟机子集合构建单元用于获取第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合。
第二虚拟机子集合构建单元用于遍历第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合。
判断单元用于判断第一虚拟机子集合或第二虚拟机子集合是否为空,得到判断结果。
第一工作流任务执行单元用于当判断结果为第一虚拟机子集合或第二虚拟机子集合为空时,开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务。
第二工作流任务执行单元用于当判断结果为第一虚拟机子集合或第二虚拟机子集合不为空时,采用第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (6)

1.一种在线多工作流动态调度方法,其特征在于,包括:
获取工作流任务的第一节点时间;所述节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间;
根据所述第一节点时间确定第二节点时间;所述第二节点时间包括:开始时间、第一完成时间和第二完成时间;所述第一完成时间早于所述第二完成时间;
根据所述第二节点时间确定所述工作流任务的子截止期;
根据所述子截止期生成任务调度序列;
获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度;所述分布式调度模型为包含多种虚拟机的分布式调度框架;
所述获取工作流任务的第一节点时间,之前还包括:
获取预设计费单位和当前时刻工作流的工作量;
根据所述预设计费单位和所述工作量确定当前时刻工作流的效用参数;
根据所述效用参数将工作流进行分类为第一规模工作流和第二规模工作流;所述第一规模工作流的工作量大于所述第二规模的工作量;
所述获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度,具体包括:
对所述工作流进行资源配置得到执行所述工作流的虚拟机集合;执行所述第一规模工作流的虚拟机采用七种类型的虚拟机;执行所述第二规模工作流的虚拟机采用两种类型的虚拟机;
依序获取所述任务调度序列中的工作流任务;
遍历所述虚拟机集合,确定所述虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间;
获取所述第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合;
遍历所述第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合;
判断所述第一虚拟机子集合或所述第二虚拟机子集合是否为空,得到判断结果;
若所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合为空,则开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务;
若所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合不为空,则采用所述第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
2.根据权利要求1所述的在线多工作流动态调度方法,其特征在于,所述根据所述第一节点时间确定第二节点时间,具体包括:
根据所述达到时间、所述任务平均执行时间和所述任务数据传输时间确定所述开始时间;
根据所述开始时间和所述任务平均执行时间确定所述第一完成时间;
根据所述截止时间、所述任务平均执行时间和所述任务数据传输时间确定第二完成时间。
3.根据权利要求1所述的在线多工作流动态调度方法,其特征在于,所述根据所述第二节点时间确定所述工作流任务的子截止期,具体包括:
采用IC-PCP2算法,根据所述第二节点时间确定所述工作流任务的子截止期。
4.一种在线多工作流动态调度系统,其特征在于,包括:
第一节点时间获取模块,用于获取工作流任务的第一节点时间;所述节点时间包括:达到时间、任务平均执行时间、任务数据传输时间和截止时间;
第二节点时间确定模块,用于根据所述第一节点时间确定第二节点时间;所述第二节点时间包括:开始时间、第一完成时间和第二完成时间;所述第一完成时间早于所述第二完成时间;
子截止期确定模块,用于根据所述第二节点时间确定所述工作流任务的子截止期;
任务调度序列生成模块,用于根据所述子截止期生成任务调度序列;
调度执行模块,用于获取分布式调度模型,根据所述任务调度序列完成对所述工作流任务的调度;所述分布式调度模型为包含多种虚拟机的分布式调度框架;
还包括:
工作量获取模块,用于获取预设计费单位和当前时刻工作流的工作量;
效用参数确定模块,用于根据所述预设计费单位和所述工作量确定当前时刻工作流的效用参数;
工作流分类模块,用于根据所述效用参数将工作流进行分类为第一规模工作流和第二规模工作流;所述第一规模工作流的工作量大于所述第二规模的工作量;
所述调度执行模块具体包括:
虚拟机集合构建单元,用于对所述工作流进行资源配置得到执行所述工作流的虚拟机集合;执行所述第一规模工作流的虚拟机采用七种类型的虚拟机;执行所述第二规模工作流的虚拟机采用两种类型的虚拟机;
工作流任务依序获取单元,用于依序获取所述任务调度序列中的工作流任务;
第一虚拟机遍历单元,用于遍历所述虚拟机集合,确定所述虚拟机集合中各虚拟机执行依序获取的工作流任务的第一完成时间;
第一虚拟机子集合构建单元,用于获取所述第一完成时间小于等于依序获取的工作流任务的子截止期的虚拟机,形成第一虚拟机子集合;
第二虚拟机子集合构建单元,用于遍历所述第一虚拟机子集合,得到执行所获取工作流任务花费最小且空闲时间最小的虚拟机,形成第二虚拟机子集合;
判断单元,用于判断所述第一虚拟机子集合或所述第二虚拟机子集合是否为空,得到判断结果;
第一工作流任务执行单元,用于当所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合为空时,开启新的满足执行所获取工作流任务花费最小且空闲时间最小条件的虚拟机,以执行所获取的工作流任务;
第二工作流任务执行单元,用于当所述判断结果为所述第一虚拟机子集合或所述第二虚拟机子集合不为空时,采用所述第二虚拟机子集合中花费最小且空闲时间最小的虚拟机执行所获取的工作流任务。
5.根据权利要求4所述的在线多工作流动态调度系统,其特征在于,所述第二节点时间确定模块具体包括:
开始时间确定单元,用于根据所述达到时间、所述任务平均执行时间和所述任务数据传输时间确定所述开始时间;
第一完成时间确定单元,用于根据所述开始时间和所述任务平均执行时间确定所述第一完成时间;
第二完成时间确定单元,用于根据所述截止时间、所述任务平均执行时间和所述任务数据传输时间确定第二完成时间。
6.根据权利要求4所述的在线多工作流动态调度系统,其特征在于,所述子截止期确定模块具体包括:
子截止期确定单元,用于采用IC-PCP2算法,根据所述第二节点时间确定所述工作流任务的子截止期。
CN202110405652.3A 2021-04-15 2021-04-15 一种在线多工作流动态调度方法和系统 Active CN113064711B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110405652.3A CN113064711B (zh) 2021-04-15 2021-04-15 一种在线多工作流动态调度方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110405652.3A CN113064711B (zh) 2021-04-15 2021-04-15 一种在线多工作流动态调度方法和系统

Publications (2)

Publication Number Publication Date
CN113064711A CN113064711A (zh) 2021-07-02
CN113064711B true CN113064711B (zh) 2022-09-20

Family

ID=76566773

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110405652.3A Active CN113064711B (zh) 2021-04-15 2021-04-15 一种在线多工作流动态调度方法和系统

Country Status (1)

Country Link
CN (1) CN113064711B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120082598A (ko) * 2011-01-14 2012-07-24 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
CN103607459A (zh) * 2013-11-21 2014-02-26 东北大学 一种云计算平台IaaS层的动态资源监测及调度方法
CN105068863A (zh) * 2015-07-16 2015-11-18 福州大学 多云环境下带截止日期约束工作流的基于代价驱动调度方法
CN105260818A (zh) * 2015-09-17 2016-01-20 福州大学 混合云环境下带截止日期约束工作流组的在线优化调度方法
CN106339924A (zh) * 2016-08-29 2017-01-18 东南大学 一种基于工作流的云计算资源混合租赁方法
CN108154317A (zh) * 2018-01-25 2018-06-12 福建师范大学 多云环境下基于实例自适应分配整合的工作流组调度方法
CN109934416A (zh) * 2019-03-25 2019-06-25 中国石油大学(华东) 一种云中科学工作流下费用预算约束的时间优化调度方法
CN110308967A (zh) * 2019-06-06 2019-10-08 东南大学 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN110825527A (zh) * 2019-11-08 2020-02-21 北京理工大学 一种云环境下截止期-预算驱动的科学工作流调度方法
CN110908772A (zh) * 2019-11-14 2020-03-24 北京理工大学 一种提高多工作流可靠性的节能调度方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7898679B2 (en) * 2005-05-27 2011-03-01 Computer Associates Think, Inc. Method and system for scheduling jobs in a computer system
US9329899B2 (en) * 2013-06-24 2016-05-03 Sap Se Parallel execution of parsed query based on a concurrency level corresponding to an average number of available worker threads
WO2017074310A1 (en) * 2015-10-27 2017-05-04 Hewlett Packard Enterprise Development Lp Partitioning a workflow
CN111078361A (zh) * 2019-12-10 2020-04-28 浙江工商大学 基于分布式估计算法的云工作流调度优化方法
CN111026533A (zh) * 2019-12-10 2020-04-17 浙江工商大学 云计算环境下基于分布式估计算法的工作流执行优化方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120082598A (ko) * 2011-01-14 2012-07-24 대전대학교 산학협력단 클라우드 컴퓨팅에서 다중 워크플로우를 위한 비용기반 스케줄링 방법 및 그 시스템
CN103607459A (zh) * 2013-11-21 2014-02-26 东北大学 一种云计算平台IaaS层的动态资源监测及调度方法
CN105068863A (zh) * 2015-07-16 2015-11-18 福州大学 多云环境下带截止日期约束工作流的基于代价驱动调度方法
CN105260818A (zh) * 2015-09-17 2016-01-20 福州大学 混合云环境下带截止日期约束工作流组的在线优化调度方法
CN106339924A (zh) * 2016-08-29 2017-01-18 东南大学 一种基于工作流的云计算资源混合租赁方法
CN108154317A (zh) * 2018-01-25 2018-06-12 福建师范大学 多云环境下基于实例自适应分配整合的工作流组调度方法
CN109934416A (zh) * 2019-03-25 2019-06-25 中国石油大学(华东) 一种云中科学工作流下费用预算约束的时间优化调度方法
CN110308967A (zh) * 2019-06-06 2019-10-08 东南大学 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN110825527A (zh) * 2019-11-08 2020-02-21 北京理工大学 一种云环境下截止期-预算驱动的科学工作流调度方法
CN110908772A (zh) * 2019-11-14 2020-03-24 北京理工大学 一种提高多工作流可靠性的节能调度方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
多云环境下基于代价驱动的科学工作流调度策略;林兵;《模式识别与人工智能》;20151030(第10期);全文 *

Also Published As

Publication number Publication date
CN113064711A (zh) 2021-07-02

Similar Documents

Publication Publication Date Title
Huang et al. An optimistic job scheduling strategy based on QoS for cloud computing
CN111381950B (zh) 一种面向边缘计算环境基于多副本的任务调度方法和系统
CN107357652B (zh) 一种基于分段排序及标准差调整因子的云计算任务调度方法
CN103838621B (zh) 用于调度例行作业的方法和系统、调度节点
CN107168770B (zh) 一种低能耗的云数据中心工作流调度与资源供给方法
CN111431961A (zh) 一种云数据中心的节能任务分配方法
Arabnejad et al. Multi-QoS constrained and profit-aware scheduling approach for concurrent workflows on heterogeneous systems
Chakravarthi et al. TOPSIS inspired budget and deadline aware multi-workflow scheduling for cloud computing
CN110308967A (zh) 一种基于混合云的工作流成本-延迟最优化任务分配方法
CN106897136A (zh) 一种任务调度方法及装置
Ding et al. QoS-constrained service selection for networked microservices
Kang et al. A SLA driven VM auto-scaling method in hybrid cloud environment
Yang et al. Deep reinforcement learning enhanced greedy optimization for online scheduling of batched tasks in cloud HPC systems
Arabnejad et al. Multi-workflow QoS-constrained scheduling for utility computing
CN108132840A (zh) 一种分布式系统中的资源调度方法及装置
CN110084507A (zh) 云计算环境下分级感知的科学工作流调度优化方法
CN112231081A (zh) 云环境下基于pso-ahp的单调速率资源调度方法及系统
Wang et al. A study on heuristic task scheduling optimizing task deadline violations in heterogeneous computational environments
Gu et al. Scheduling spark tasks with data skew and deadline constraints
CN113064711B (zh) 一种在线多工作流动态调度方法和系统
CN108958919B (zh) 一种云计算中有期限约束的多dag任务调度费用公平性评估方法
Dai et al. Improved greedy strategy for cloud computing resources scheduling
CN115185651A (zh) 一种基于云计算的工作流优化调度算法
CN114980216A (zh) 基于移动边缘计算的依赖型任务卸载系统及方法
Wang et al. Cost-effective scheduling precedence constrained tasks in cloud computing

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