CN106775932A - 一种云计算系统中随机事件触发的实时工作流调度方法 - Google Patents
一种云计算系统中随机事件触发的实时工作流调度方法 Download PDFInfo
- Publication number
- CN106775932A CN106775932A CN201611073115.9A CN201611073115A CN106775932A CN 106775932 A CN106775932 A CN 106775932A CN 201611073115 A CN201611073115 A CN 201611073115A CN 106775932 A CN106775932 A CN 106775932A
- Authority
- CN
- China
- Prior art keywords
- task
- virtual machine
- workflow
- information
- mapping relations
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种云计算系统中随机事件触发的实时工作流调度方法包括:获取虚拟化云中的虚拟机信息与工作流信息;持续获取虚拟机上的任务完成信息与新到达的工作流信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度;完成全部任务并返回任务结果。本发明能够减缓不确定因素对执行调度方案的影响,并在保证工作流时效性的条件下提高虚拟机的资源利用率、降低云服务提供商的成本。
Description
技术领域
本发明涉及虚拟化云计算领域,特别地,涉及一种云计算系统中随机事件触发的实时工作流调度方法。
背景技术
云计算已成为分布式计算的新工作模式。在这种模式下,云供应商以即用即付费的方式,按需为用户提供服务,包括应用、平台与计算资源等。从用户的角度来看,云模式的费用较低,因为用户只需为他们的实际使用付费;同时,用户还可以按需使用资源,因此云模式具有良好的扩展性。云计算已被应用到越来越多领域,包括银行、电子商务、零售业与科研机构。值得注意的是,这些领域中的应用通常包括许多相互约束的计算任务(即工作流任务)。由于任务之间存在约束关系,导致虚拟机在执行相连两个任务之间可能会存在空闲时隙,这会使得虚拟机的资源得不到充分的利用。此外,云系统中的低资源利用率也会造成费用的浪费,对于大规模公司,提高资源利用率能够明显地节约成本。
高效的调度算法能够解决上述问题。目前,已经有大量的工作致力于研究云计算系统的工作流调度方法;然而现有的调度方法都基于准确的任务执行时间和任务之间的通信时间。在实际的云计算环境中,任务执行时间通常不能被准确预测,而实际值只有在任务完成后才能获得。这可能由以下两个原因造成:①任务通常包含条件性指令——并行应用程序可能包含多个选择和条件语句,不同的输入将运行应用中不同的分支和循环,而不同的分支或循环就意味着不同的指令数,这将导致相同的任务面对不同的数据输入,可能导致不同的任务运行时间;②云环境中虚拟机的性能具有不确定性——借助先进的虚拟化技术,多个虚拟机可以同时共享一台物理主机的硬件资源,而这种资源共享会导致虚拟机之间的资源冲突,从而造成虚拟机的性能具有不确定性。
由于云计算环境的动态性和随机性,众多的不确定因素(如任务执行时间的波动、虚拟机性能的变化、新工作流的到达等)将会出现,使得预先安排的调度方案不能被严格执行。而绝大多数的研究并没有考虑这些动态和随机因素,这可能会造成调度方案的实际运行效果与预期的效果相差甚远。针对现有技术中预先安排的调度方案在不确定因素的作用下不能被严格执行的问题,目前尚未有有效的解决方案。
发明内容
有鉴于此,本发明的目的在于提出一种云计算系统中随机事件触发的实时工作流调度方法,能够减缓不确定因素对执行调度方案的影响,在保证工作流时效性的条件下,提高虚拟机的资源利用率、降低云服务提供商的成本。
基于上述目的,本发明提供的技术方案如下:
根据本发明的一个方面,提供了一种云计算系统中随机事件触发的实时工作流调度方法,包括:
获取虚拟化云中的虚拟机信息与工作流信息;
持续获取虚拟机上的任务完成信息与新到达的工作流信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度;
完成全部任务并返回任务结果。
其中,虚拟机信息包括:启用虚拟机的数量、每台虚拟机的性能与价格、每两台虚拟机间的通信带宽;工作流信息包括:该工作流的到达时间、截止时间与结构,其中,结构为表明该工作流中所有任务之间依赖关系的有向无环图;工作流中每个任务的执行时间符合独立正态分布。
并且,持续获取虚拟机上的任务完成信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度包括:
将未调度的任务置于任务池中等待处理;
持续获取虚拟机上的任务完成信息,并根据虚拟机信息与任务信息,生成任务池中等待任务与虚拟机的映射关系;
根据虚拟机信息与虚拟机利用情况调整虚拟机的数量;
根据任务池中的等待任务与虚拟机之间的映射关系,将任务分配到对应的虚拟机中。
并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;对于依赖任务,后继任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后继任务所在虚拟机之间的数据传输时间之和。
同时,根据虚拟机信息与任务信息,以虚拟机成本最小化、虚拟机资源利用率最大化、波动最小化为优化目标,生成任务池中等待任务与虚拟机的映射关系。
同时,根据虚拟机信息与任务信息将任务池中的任务与虚拟机建立映射关系包括:
完成任务的虚拟机若存在等待任务,则执行其等待任务;
当被完成任务的后置任务的所有前驱任务已经被映射到虚拟机上时,将被完成任务的后置任务标记为就绪任务并移出任务池;
选定工作流中的就绪任务按照期望最晚完成时间从小到大进行排序;
按照排序顺序将所有就绪任务依次与虚拟机建立映射关系。
并且,就绪任务为不存在前驱任务的任务;或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经被完成的任务。
同时,按照排序顺序将所有就绪任务依次与虚拟机建立映射关系包括:判断是否存在一台虚拟机能在期望最晚完成时间之内以最小期望费用完成被调度的任务,若是,则将任务与该虚拟机建立映射关系;若否,则租赁一台能以最小期望费用在期望最晚完成时间之内完成被调度的任务的新虚拟机,并将任务与该虚拟机建立映射关系。
另外,持续获取新到达的工作流信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度包括:
获取新到达工作流中的任务信息,并将任务置于任务池中等待处理;
根据虚拟机信息与任务信息,生成任务池中等待任务与虚拟机的映射关系;
根据虚拟机信息与虚拟机利用情况调整虚拟机的数量;
根据任务池中的任务与虚拟机之间的映射关系,将任务分配到对应的虚拟机中。
并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;对于依赖任务,后继任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后继任务所在虚拟机之间的数据传输时间之和。
同时,根据虚拟机信息与任务信息,以虚拟机成本最小化、虚拟机资源利用率最大化、波动最小化为优化目标,生成任务池中等待任务与虚拟机的映射关系。
同时,根据虚拟机信息与任务信息将任务池中的任务与虚拟机建立映射关系包括:
分别判断工作流在任务池中的每个任务是否为就绪任务;
选定工作流中的就绪任务按照期望最晚完成时间从小到大进行排序;
按照排序顺序将所有就绪任务依次与虚拟机建立映射关系。
并且,就绪任务为不存在前驱任务的任务;或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经被完成的任务。
同时,按照排序顺序将所有就绪任务依次与虚拟机建立映射关系包括:判断是否存在一台虚拟机能在期望最晚完成时间之内以最小期望费用完成被调度的任务,若是,则将任务与该虚拟机建立映射关系;若否,则租赁一台能以最小期望费用在期望最晚完成时间之内完成被调度的任务的新虚拟机,并将任务与该虚拟机建立映射关系。
从上面所述可以看出,本发明提供的技术方案通过使用虚拟机上任务的完成信息与新到达的工作流信息作为执行调度方法的触发条件,根据成本、资源利用率和调度方案的波动性作为调度目标,对工作流任务进行动态调度的技术手段,能够减缓不确定因素对执行调度方案的影响,并在保证工作流时效性的条件下,提高虚拟机的资源利用率、降低云服务提供商的成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的一种云计算系统中随机事件触发的实时工作流调度方法的流程图;
图2为根据本发明实施例的一种云计算系统中随机事件触发的实时工作流调度方法的详细流程图;
图3(a)为根据本发明实施例的一种云计算系统中随机事件触发的实时工作流调度方法中,PRS、SHEFT和RTC三种算法的总成本-方差柱状对比图;
图3(b)为根据本发明实施例的一种云计算系统中随机事件触发的实时工作流调度方法中,PRS、SHEFT和RTC三种算法的资源利用率-方差柱状对比图;
图3(c)为根据本发明实施例的一种云计算系统中随机事件触发的实时工作流调度方法中,PRS、SHEFT和RTC三种算法的调度偏差-方差柱状对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进一步进行清楚、完整、详细地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明的实施例,提供了一种云计算系统中随机事件触发的实时工作流调度方法。
如图1所示,根据本发明实施例的提供的一种云计算系统中随机事件触发的实时工作流调度方法包括:
步骤S101,获取虚拟化云中的虚拟机信息与工作流信息;
步骤S103,持续获取虚拟机上的任务完成信息与新到达的工作流信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度;
步骤S105,完成全部任务并返回任务结果。
其中,虚拟机信息包括:启用虚拟机的数量、每台虚拟机的性能与价格、每两台虚拟机间的通信带宽;工作流信息包括:该工作流的到达时间、截止时间与结构,其中,结构为表明该工作流中所有任务之间依赖关系的有向无环图;工作流中每个任务的执行时间符合独立正态分布。
并且,持续获取虚拟机上的任务完成信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度包括:
将未调度的任务置于任务池中等待处理;
持续获取虚拟机上的任务完成信息,并根据虚拟机信息与任务信息,生成任务池中等待任务与虚拟机的建立映射关系;
根据虚拟机信息与虚拟机利用情况调整虚拟机的数量;
根据任务池中的任务与虚拟机之间的映射关系,将任务分配到对应的虚拟机中。
并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;对于依赖任务,后继任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后继任务所在虚拟机之间的数据传输时间之和。
同时,根据虚拟机信息与任务信息,以虚拟机成本最小化、虚拟机资源利用率最大化、波动最小化为优化目标,生成任务池中等待任务与虚拟机的映射关系。
同时,根据虚拟机信息与任务信息将任务池中的任务与虚拟机建立映射关系包括:
完成任务的虚拟机若存在等待任务,则执行其等待任务;
当被完成任务的后置任务的所有前驱任务已经被映射到虚拟机上时,将被完成任务的后置任务标记为就绪任务并移出任务池;
选定工作流中的就绪任务按照期望最晚完成时间从小到大进行排序;
按照排序顺序将所有就绪任务依次与虚拟机建立映射关系。
并且,就绪任务为不存在前驱任务的任务;或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经被完成的任务。
同时,按照排序顺序将所有就绪任务依次与虚拟机建立映射关系包括:判断是否存在一台虚拟机能在期望最晚完成时间之内以最小期望费用完成被调度的任务,若是,则将任务与该虚拟机建立映射关系;若否,则租赁一台能以最小期望费用在期望最晚完成时间之内完成被调度的任务的新虚拟机,并将任务与该虚拟机建立映射关系。
另外,持续获取新到达的工作流信息,并在虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对工作流任务进行动态调度包括:
获取新到达工作流中的任务信息,并将任务置于任务池中等待处理;
根据虚拟机信息与任务信息,生成任务池中等待任务与虚拟机的映射关系;
根据虚拟机信息与虚拟机利用情况调整虚拟机的数量;
根据任务池中的任务与虚拟机之间的映射关系,将任务分配到对应的虚拟机中。
并且,每个工作流的所有任务的完成时间的最大值不应超过工作流的截止时间;对于依赖任务,后继任务的开始时间不应早于前驱任务的完成时间与前驱任务所在虚拟机和后继任务所在虚拟机之间的数据传输时间之和。
同时,根据虚拟机信息与任务信息,以虚拟机成本最小化、虚拟机资源利用率最大化、波动最小化为优化目标,生成任务池中等待任务与虚拟机的映射关系。
同时,根据虚拟机信息与任务信息将任务池中的任务与虚拟机建立映射关系包括:
分别判断工作流在任务池中的每个任务是否为就绪任务;
选定工作流中的就绪任务按照期望最晚完成时间从小到大进行排序;
按照排序顺序将所有就绪任务依次与虚拟机建立映射关系。
并且,就绪任务为不存在前驱任务的任务;或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经被完成的任务。
同时,按照排序顺序将所有就绪任务依次与虚拟机建立映射关系包括:判断是否存在一台虚拟机能在期望最晚完成时间之内以最小期望费用完成被调度的任务,若是,则将任务与该虚拟机建立映射关系;若否,则租赁一台能以最小期望费用在期望最晚完成时间之内完成被调度的任务的新虚拟机,并将任务与该虚拟机建立映射关系。
下面根据具体实施例,进一步阐述本发明的技术特征。
云计算平台提供多种类型的虚拟机,虚拟机类型集合记为S={s1,s2,…,sm},其中,每一个虚拟机类型su∈S都有一个特定的配置和价格。不同类型虚拟机的配置差异主要体现在,处理器性能、内存、存储、网络和操作系统等方面。每一个su都有一个与它相关的价格,记为Price(su)。在本实施例中,虚拟机的使用时间以小时为单位,不够一个小时的那部分时间按照一个小时来计费。例如,虚拟机使用了5.1个小时,那么就算使用了6个小时。本实施例使用符号表示云计算平台中的第k台虚拟机,且该虚拟机的类型为su。
在云计算环境中,虚拟机可以运行在不同的数据中心,虚拟机之间底层网络的拓扑结构非常复杂。不失一般性地,本实施例使用参数lkl表示虚拟机和虚拟机之间的通信带宽,且不考虑网络拥塞。
本实施例关注非周期的、动态的工作流,工作流表示为W={w1,w2,…,wm}。对于任意一个工作流应用wi∈W,可以建模为wi={ai,di,Gi},其中ai,di和Gi分别表示工作流wi的到达时间、截止期和结构。另外,工作流的结构Gi可以进一步表示为有向无环图(DirectedAcyclic Graph,简写为DAG)Gi=(Ti,Ei),其中是顶点的集合,顶点tij表示工作流wi中的第j个任务, i表示任务间的有向边集合。如果任务tip和任务tij之间存在数据依赖关系,那么有向边就存在,且称tip是任务tij的直接前驱任务,而tij是任务tip的直接后继任务。符号pred(tij)表示任务tij所有直接前驱任务组成的集合,符号succ(tij)表示任务tij所有直接后继任务组成的集合。
本实施例设计了一个面向云平台的不确定感知的调度架构,该平台由用户层、调度层和资源层组成:用户层动态地向云服务提供商提交工作流;调度层根据一定的目标和资源的预测性能,负责生成任务与虚拟机的映射方案;资源层包括大规模异构虚拟机,且虚拟机可以动态增加和减少。
调度层包括一个任务池(Task Pool,简写为TP)、一个调度分析器、一个资源控制器与一个任务控制器。其中,TP容纳大部分的等待任务;调度分析器负责生成虚拟机调整的计划及TP中等待任务与虚拟机的映射方案;计算资源调整方案包括何时添加/删除不同类型的虚拟机,并由资源控制器来实施这些方案;任务控制器动态分配TP中的等待任务到对应的虚拟机。
该调度架构的独特的特点是,大部分任务在TP中等待,而不是直接放置到虚拟机。只有那些已经映射到虚拟机上的任务,才会被放置到虚拟机上。
此调度架构的主要优势包括:
①可以阻断不确定因素在调度方案中传播。由于只有被调度的任务才允许在虚拟机上等待,执行任务的不确定性只能转移到同一个虚拟机上的等待任务上。当执行任务完成时,就不再存在不确定性,并且在该虚拟机上的后续等待任务将不会受到影响。
②这个设计使通信和计算时间重叠。当一个虚拟机正在执行任务,这个虚拟机可以同时接收一个新的任务作为等待任务,通过重叠通信和计算来节省时间。
在本发明中,变量xij,k被用来表示任务tij与虚拟机的映射关系。如果任务tij被映射到虚拟机那么xij,k为1,否则为0,即:
定义1:分配给任务tij的虚拟机的索引定义为r(tij)。例如,如果工作流w1中的任务t12被调度到虚拟机上,那么r(t12)=8。
由于任务的执行时间是随机变量,在调度工作流时,我们使用它们执行时间的α分位点。符号表示任务tij在虚拟机上执行时间的α分位点;符号pstij,k和pftij,k分别用来表示任务的期望开始时间和期望结束时间。期望开始时间pstij,k可由以下式子计算:
其中,pftlh,k表示任务tlh的期望完成时间,任务tlh是当前虚拟机的最后一个任务,表示任务间的数据传输时间。
任务tij在虚拟机上期望完成时间pftij,k可表示为:
当工作流wi中所有任务都被调度后,工作流wi期望完成时间定义为:
当任务完成后,它们的实际开始时间、执行时间和完成时间就可以获得。符号rstij,k、retij,k和rftij,k分别表示任务tij在虚拟机上的实际开始时间、执行时间和完成时间。例如在调度时,任务t11在虚拟机上的执行时间假设为et11,2~N(120,102)秒,和et11,2的0.9分位点是秒;当任务t11在虚拟机上完成后,实际的完成时间rft11,2可能是135秒。工作流wi实际的完成时间可定义为:
在不确定调度环境中,工作流wi的实际完成时间rfti决定它的时效性是否得到保障。因此,我们有以下约束:
由于工作流中任务之间的前后约束关系,一个任务只有接收到所有前驱任务的数据才能开始运行。因此存在以下约束:
满足以上约束,如式子(6)和(7)所示,首要优化目标是最小化完成工作流集合W的成本:
其中,|VM|表示运行工作流集合的虚拟机数量,tpk是虚拟机的工作周期。
除了总成本,资源利用率也是衡量云计算平台性能的一个重要指标。因此,另一个优化目标是最大化虚拟机的平均资源利用率,表示如下:
其中,wtk和ttk分别表示虚拟机在运行工作流集合W过程中的工作时间和总活跃时间,总活跃时间包括工作时间和空闲时间。
在不确定计算环境中,另外一个需要优化的目标是最小化波动成本函数,定义为工作流实际完成时间与期望值差的绝对值的加权和的均值,表示如下:
其中,wi表示工作流实际完成时间与期望值差的边缘成本。
本实施例提出了一个兼具前摄性调度和反应式策略的启发式算法,以较低的计算开销获得近似最优调度方案,其中,前摄性调度是用来建立基于冗余的基准调度方案,任务执行时间的分位点被用来近似任务的执行时间;反应式策略将被动态触发来生成新的前摄性调度方案,以应对工作流运行中的各种干扰。当有虚拟机完成一个任务时,反应式策略将被触发。
任务调度中的一个重要问题是如何对任务进行排序。在本实施例中,任务池中的所有任务将被按照其期望的最晚开始时间plstij进行排序。对于每一个任务,其期望的最晚开始时间plstij定义为最晚时间点,如果该任务在该时间点之后开始,工作流的期望完成时间pfti将大于它的截止期di。
定义2:任务tij的期望最晚开始时间plstij可以递归计算如下:
其中,succ(tij)表示任务tij的所有直接前驱任务,表示任务tij执行时间α分位点的最小值。
根据以上定义,任务期望的最晚完成时间plftij可以计算如下:
定义3:就绪任务是指:一个任务没有任何前驱任务,即或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经完成。
任务tij在虚拟机上的期望成本定义为:
其中,prtk表示虚拟机可用的期望时间。
在云计算平台的实际运行中,由于工作流的到达时间和虚拟机上任务的完成时间具有不确定性。我们将实时工作流的到达和一个任务的完成视为随机事件。当这些随机事件发生后,算法PRS将触发来动态调度就绪任务到虚拟机上。具体来讲,如果新工作流到达时,根据定义3,没有前驱的任务是就绪任务,这些任务将被算法PRS映射到虚拟机上,其它未就绪任务将被加入到任务池中等待。另外,当虚拟机完成一个任务时,根据定义3,刚被完成任务的后继任务可能会变成就绪任务,那么算法PRS将被触发来调度刚变为就绪的任务到虚拟机上。
如图2所示,算法PRS的执行步骤如下:
第一步,初始化:初始化系统中可用的虚拟机为vmList;虚拟机类型集合S为S={s1,s2,…,sm};任务池(TP)中的任务集合为taskPool;就绪任务集合readyTL为空,即
第二步,监控虚拟化云中工作流到达和虚拟机完成任务的随机事件,如果是新工作流到达,则转第三步;如果是虚拟机完成一个任务tij,则转第四步;
第三步,计算新工作流中每个任务的最晚期望开始时间plstij和期望完成时间plftij;将就绪任务加到readyTL中;并将非就绪任务加入到任务池taskPool中,即taskPool←taskPool∪{Ti\readyTL};转第七步;
第四步,运行虚拟机上的等待任务。如果虚拟机上存在等待任务,且该任务收到其所有前驱任务的输出数据,则运行该等待任务;转第五步;
第五步,找出刚变为就绪的等待任务,方法是:
5.1初始化刚被完成任务为tij,其直接后继任务的索引为s←1;任务tij直接后继任务集合为succ(tij);任务tij直接后继任务的数量N,即N=|succ(tij)|;
5.2判断s>N是否成立,如果成立,则转第六步;否则执行5.3步;
5.3根据定义3,判断任务tis∈succ(tij)是否变为就绪,如果成立,则将任务tis加到就绪任务集合readyTL中,即readyTL←readyTL∪{tis},转5.4步;否则,直接转5.4步;
5.4更新后继任务的索引为s←s+1,转5.2步;
第六步,将就绪任务readyTL从任务池(TP)中移除,即taskPool←taskPool\readyTL,转第七步;
第七步,将每个就绪任务调度到虚拟机上,方法是:
7.1对readyTL中所有的就绪任务,根据期望最晚开始时间plstij进行升序排序;
7.2初始化就绪任务的数量为R,即R=|readyTL|;就绪任务的索引为s←1;转7.3步;
7.3判断s>R是否成立,如果成立,清空就绪任务列表,即则转第二步;否则,从readyTL取出第个s任务,记为tis,转7.4步;
7.4将任务tis调度到已经开启的虚拟机上,方法是:
7.4.1虚拟机的索引为k←1;可用虚拟机的数量为K,即K=|vmList|;选择的虚拟机selVM为空;最小完成费用minCost为minCost←+∞;执行7.4.2步;
7.4.2判断k>K是否成立,如果成立,则转7.4.3步;否则,转7.4.4步;
7.4.3如果选择的虚拟机selVM不为空,则映射任务tis到虚拟机selVM上,并更新任务的索引s为s←s+1,转7.3步;否则,转7.5步;
7.4.4计算任务tis在虚拟机上的期望完成时间pftis,k,和费用pcis,k;转7.4.5;
7.4.5判断pftis,k≤plftis是否成立,如果成立,转7.4.6;否则,更新虚拟机的索引k为k←k+1;转7.4.2步;
7.4.6判断pcis,k<minCost是否成立,如果成立,则更新选择的虚拟机为更新虚拟机的索引k为k←k+1;转7.4.2步;否则,更新虚拟机的索引k为k←k+1;转7.4.2步;
7.5将任务调度到新租的虚拟机上,方法是:
7.5.1初始化虚拟机类型的索引u为u←1;m为虚拟机类型的总量;选出的虚拟机类型u*为空;最小完成费用minCostAdd为minCostAdd←+∞;,转7.5.2步;
7.5.2判断u>m是否成立,如果成立,则租一台类型为u*的新虚拟机,并将任务tis映射到该虚拟机上,并更新任务的索引s为s←s+1,转7.3步;否则,转7.5.3步;
7.5.3计算任务tis在类型为u的新虚拟机上的期望完成时间pftis,k和费用pcis,k,转7.5.4步;
7.5.4判断pftis,k≤plftis是否成立,如果成立,则转7.5.5步;否则,更新虚拟机类型的索引u为u←u+1,转7.5.2步;
7.5.5判断pcis,k<minCostAdd是否成立,如果成立,则更新选择的虚拟机类型为u*←u,更新虚拟机的索引u为u←u+1;转7.5.2步;否则,更新,更新虚拟机的索引u为u←u+1;转7.5.2步。
对比实验验证了算法PRS的有效性。选择两个已有的调度算法(SHEFT和RTC)作为对比算法,由于这两个对比算法设计来调度单个工作流,在实验中,为了使它们适应实时工作流,每当新工作流到达时,这些算法就被触发来调度工作流中所有任务到虚拟机上。
假设云计算平台提供6类虚拟机,且每类虚拟机的数量可任意增加。下表列出的是这些虚拟机的配置和单价,这些参数来自Amazon的EC2。虚拟机的计费周期是1小时,虚拟机之间的带宽设为1Gbps。
实验中选择四组实际测试集,即Cybershake,LIGO,Montage和SIPHT。
图3(a)、(b)、(c)示出的是观察任务执行时间的不确定性对算法性能的影响,其中,任务运行时间的方差值从0.10增加到0.40,步长为0.05。
如图3(a)所示,随着任务运行时间方差的增加,3个调度算法的总成本都以不同的速率上升。对于算法SHEFT和RTC,这种趋势尤为突出,这是因为算法SHEFT和RTC在基准调度方案执行的过程中没有采用任何反应策略来控制的随机因素。PRS的成本平均比SHEFT和RTC低14.01%和21.60%,证明了算法PRS可以降低云服务提供商的成本。
如图3(b)所示,算法PRS的资源利用率最高,约71.17%;算法SHEFT和RTC的资源利用率分别在46.19%和45.62%左右波动。这可归结于以下几个原因:首先,当等待任务变为就绪,PRS就将这些任务动态调度到虚拟机,使得每个虚拟机上的空闲时隙被有效压缩和去除;其次,随着任务执行时间方差的变大,任务的期望完成时间和时间完成时间的间隔也相应增加,对于算法SHEFT和RTC,浪费的时间间隙就越大,从而导致资源利用率降低。
如图3(c)所示,随着任务执行时间的方差增大,算法PRS、SHEFT和RTC得到调度方案的偏差也相应变大,这是因为较大的方差使得期望和实际的任务完成时间之间的差异变得更大。此外,PRS的偏差平均比RTC低491.80%,这是因为算法RTC不控制不确定性在等待任务之间的传播。以上证明了PRS能够有效减轻不确定因素对基准调度方案的影响。
综上所述,借助于本发明的上述技术方案,通过使用以虚拟机上的任务完成信息与新到达的工作流信息作为执行调度方法的触发条件根据成本、资源利用率和调度方案的波动性作为调度目标,对工作流中的非周期性动态任务进行调度的技术手段,能够消除不确定因素对执行调度方案的影响,并在保证工作流时效性的条件下提高虚拟机的资源利用率、降低云服务提供商的成本。
所属领域的普通技术人员应当理解:以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种云计算系统中随机事件触发的实时工作流调度方法,其特征在于,包括:
获取虚拟化云中的虚拟机信息与工作流信息;
持续获取虚拟机上的任务完成信息与新到达的工作流信息,并在所述虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对所述工作流任务进行动态调度;
完成全部任务并返回任务结果。
2.根据权利要求1所述的方法,其特征在于,所述虚拟机信息包括:启用虚拟机的数量、每台虚拟机的性能与价格、每两台虚拟机间的通信带宽;所述工作流信息包括:该工作流的到达时间、截止时间与结构,其中,所述工作流结构为表明该工作流中所有任务之间依赖关系的有向无环图;所述工作流中每个任务的执行时间符合独立正态分布。
3.根据权利要求2所述的方法,其特征在于,持续获取虚拟机上的任务完成信息,并在所述虚拟机上以成本、资源利用率和调度方案波动性作为调度目标,对所述工作流任务进行动态调度包括:
将未调度的任务置于任务池中等待处理;
持续获取虚拟机上的任务完成信息,并根据所述虚拟机信息与所述任务信息,生成所述任务池中等待任务与所述虚拟机的建立映射关系;
根据所述虚拟机信息与虚拟机利用情况调整所述虚拟机的数量;
根据所述任务池中的任务与所述虚拟机之间的映射关系,将所述任务分配到对应的虚拟机中。
4.根据权利要求3所述的方法,其特征在于,根据所述虚拟机信息与所述任务信息,以虚拟机成本最小化、虚拟机资源利用率最大化、波动最小化为优化目标,生成所述任务池中等待任务与所述虚拟机的映射关系,其中,根据所述虚拟机信息与所述任务信息将所述任务池中的任务与所述虚拟机建立映射关系包括:
完成任务的所述虚拟机若存在等待任务,则执行其等待任务;
当所述被完成任务的后置任务的所有前驱任务已经被映射到虚拟机上时,将所述被完成任务的后置任务标记为就绪任务并移出任务池;
选定所述工作流中的所述就绪任务按照期望最晚完成时间从小到大进行排序;
按照排序顺序将所有所述就绪任务依次与虚拟机建立映射关系。
5.根据权利要求4所述的方法,其特征在于,所述就绪任务为不存在前驱任务的任务;或其所有前驱任务都已经被映射到虚拟机,且至少一个前驱任务已经被完成的任务。
6.根据权利要求4所述的方法,其特征在于,按照排序顺序将所有所述就绪任务依次与虚拟机建立映射关系包括:判断是否存在一台虚拟机能在期望最晚完成时间之内以最小期望费用完成被调度的任务,若是,则将所述任务与该虚拟机建立映射关系;若否,则租赁一台能以最小期望费用在期望最晚完成时间之内完成被调度的任务的新虚拟机,并将所述任务与该虚拟机建立映射关系。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073115.9A CN106775932B (zh) | 2016-11-29 | 2016-11-29 | 一种云计算系统中随机事件触发的实时工作流调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611073115.9A CN106775932B (zh) | 2016-11-29 | 2016-11-29 | 一种云计算系统中随机事件触发的实时工作流调度方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106775932A true CN106775932A (zh) | 2017-05-31 |
CN106775932B CN106775932B (zh) | 2020-01-17 |
Family
ID=58900493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611073115.9A Active CN106775932B (zh) | 2016-11-29 | 2016-11-29 | 一种云计算系统中随机事件触发的实时工作流调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106775932B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108245A (zh) * | 2017-12-18 | 2018-06-01 | 天津科技大学 | 一种云平台宽节点科学工作流的混合型调度方法及系统 |
CN110308991A (zh) * | 2019-06-21 | 2019-10-08 | 长沙学院 | 一种基于随机任务的数据中心节能优化方法及系统 |
CN110516000A (zh) * | 2019-09-02 | 2019-11-29 | 中山大学 | 一种支持复杂工作流结构的工作流管理系统 |
CN111444001A (zh) * | 2020-03-24 | 2020-07-24 | 中南大学 | 一种云平台任务调度方法及系统 |
CN111651235A (zh) * | 2020-04-17 | 2020-09-11 | 北京奇艺世纪科技有限公司 | 一种虚拟机组任务管理方法及装置 |
CN112084002A (zh) * | 2020-08-03 | 2020-12-15 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
CN113238841A (zh) * | 2021-05-11 | 2021-08-10 | 湖北碳聚生物科技有限责任公司 | 一种基于云计算技术的任务调度方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019822A (zh) * | 2012-12-07 | 2013-04-03 | 北京邮电大学 | 一种云环境下收益驱动的大规模处理任务调度方法 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN104834995A (zh) * | 2015-04-20 | 2015-08-12 | 安徽师范大学 | 基于云计算的工作流双向调度方法 |
CN102799957B (zh) * | 2012-05-30 | 2015-10-14 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN102780759B (zh) * | 2012-06-13 | 2016-05-18 | 合肥工业大学 | 基于调度目标空间的云计算资源调度方法 |
CN106020927A (zh) * | 2016-05-05 | 2016-10-12 | 中国人民解放军国防科学技术大学 | 一种云计算系统中任务调度与资源配置的通用方法 |
-
2016
- 2016-11-29 CN CN201611073115.9A patent/CN106775932B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799957B (zh) * | 2012-05-30 | 2015-10-14 | 武汉理工大学 | 一种云计算环境下安全感知的科学工作流调度方法 |
CN102780759B (zh) * | 2012-06-13 | 2016-05-18 | 合肥工业大学 | 基于调度目标空间的云计算资源调度方法 |
CN103019822A (zh) * | 2012-12-07 | 2013-04-03 | 北京邮电大学 | 一种云环境下收益驱动的大规模处理任务调度方法 |
CN104252381A (zh) * | 2013-06-30 | 2014-12-31 | 北京百度网讯科技有限公司 | 一种用于调度etl任务的方法与设备 |
CN104834995A (zh) * | 2015-04-20 | 2015-08-12 | 安徽师范大学 | 基于云计算的工作流双向调度方法 |
CN106020927A (zh) * | 2016-05-05 | 2016-10-12 | 中国人民解放军国防科学技术大学 | 一种云计算系统中任务调度与资源配置的通用方法 |
Non-Patent Citations (2)
Title |
---|
李克武,等;: "云环境中基于分解的多目标工作流调度算法", 《计算机工程与科学》 * |
沈虹,等;: "带准备时间和截止期约束的云服务工作流调度算法", 《通信学报》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108108245A (zh) * | 2017-12-18 | 2018-06-01 | 天津科技大学 | 一种云平台宽节点科学工作流的混合型调度方法及系统 |
CN108108245B (zh) * | 2017-12-18 | 2020-11-20 | 天津科技大学 | 一种云平台宽节点科学工作流的混合型调度方法及系统 |
CN110308991A (zh) * | 2019-06-21 | 2019-10-08 | 长沙学院 | 一种基于随机任务的数据中心节能优化方法及系统 |
CN110516000A (zh) * | 2019-09-02 | 2019-11-29 | 中山大学 | 一种支持复杂工作流结构的工作流管理系统 |
CN111444001A (zh) * | 2020-03-24 | 2020-07-24 | 中南大学 | 一种云平台任务调度方法及系统 |
CN111651235A (zh) * | 2020-04-17 | 2020-09-11 | 北京奇艺世纪科技有限公司 | 一种虚拟机组任务管理方法及装置 |
CN112084002A (zh) * | 2020-08-03 | 2020-12-15 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
CN112084002B (zh) * | 2020-08-03 | 2022-09-02 | 同济大学 | 云环境下微服务系统的弹性伸缩方法、系统、介质及设备 |
CN113238841A (zh) * | 2021-05-11 | 2021-08-10 | 湖北碳聚生物科技有限责任公司 | 一种基于云计算技术的任务调度方法 |
CN113238841B (zh) * | 2021-05-11 | 2023-12-12 | 湖北碳聚生物科技有限责任公司 | 一种基于云计算技术的任务调度方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106775932B (zh) | 2020-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106775932A (zh) | 一种云计算系统中随机事件触发的实时工作流调度方法 | |
Cheng et al. | Cost-aware job scheduling for cloud instances using deep reinforcement learning | |
Gao et al. | An energy and deadline aware resource provisioning, scheduling and optimization framework for cloud systems | |
Zhu et al. | Scheduling stochastic multi-stage jobs to elastic hybrid cloud resources | |
Shi et al. | MDP and machine learning-based cost-optimization of dynamic resource allocation for network function virtualization | |
Chang et al. | Scheduling in mapreduce-like systems for fast completion time | |
Cheng et al. | Resource and deadline-aware job scheduling in dynamic hadoop clusters | |
CN107168770B (zh) | 一种低能耗的云数据中心工作流调度与资源供给方法 | |
US20120079501A1 (en) | Application Load Adaptive Processing Resource Allocation | |
Cheng et al. | Deadline-aware MapReduce job scheduling with dynamic resource availability | |
US20210216375A1 (en) | Workload placement for virtual gpu enabled systems | |
Chakravarthi et al. | TOPSIS inspired budget and deadline aware multi-workflow scheduling for cloud computing | |
Xiao et al. | Learning non-cooperative game for load balancing under self-interested distributed environment | |
CN106371924B (zh) | 一种最小化MapReduce集群能耗的任务调度方法 | |
Zhou et al. | Concurrent workflow budget-and deadline-constrained scheduling in heterogeneous distributed environments | |
Biswas et al. | Automatic resource provisioning: a machine learning based proactive approach | |
Hao et al. | An adaptive algorithm for scheduling parallel jobs in meteorological Cloud | |
CN111913800B (zh) | 基于l-aco的云中微服务成本优化的资源分配方法 | |
Hu et al. | Improved heuristic job scheduling method to enhance throughput for big data analytics | |
CN106502790A (zh) | 一种基于数据分布的任务分配优化方法 | |
Wang et al. | Geoclone: Online task replication and scheduling for geo-distributed analytics under uncertainties | |
Liang et al. | Business value-aware task scheduling for hybrid IaaS cloud | |
Amin et al. | Scheduling real time parallel structures on cluster computing with possible processor failures | |
Bi et al. | Dynamic fine-grained resource provisioning for heterogeneous applications in virtualized cloud data center | |
Lu et al. | Overhead aware task scheduling for cloud container services |
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 |