CN109784663B - 一种工作流调度方法与装置 - Google Patents
一种工作流调度方法与装置 Download PDFInfo
- Publication number
- CN109784663B CN109784663B CN201811562133.2A CN201811562133A CN109784663B CN 109784663 B CN109784663 B CN 109784663B CN 201811562133 A CN201811562133 A CN 201811562133A CN 109784663 B CN109784663 B CN 109784663B
- Authority
- CN
- China
- Prior art keywords
- time
- workflow
- virtual machine
- current
- module
- 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
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种工作流调度方法与装置。本发明通过寻找关键路径和最短路径,为工作流的各个模块分配合适的虚拟机和带宽;通过关键路径和最短路径将工作流的全部模块分为两类,在未超过截止时间的情况下,先对A类模块分配的虚拟机进行降级,若这些虚拟机已经是性能最差且时间剩余,则继续对B类模块虚拟机进行降级,直至超过截止时间,然后用同样的降级方式选择合适的带宽。这样不仅能够确保工作流能在规定时间内完成处理。
Description
技术领域
本发明属于工作流技术领域,涉及一种在多云环境中截止时间约束下的工作流调度方法。
背景技术
近年来,由于云计算的虚拟化、高可靠性以及高可扩展性,使云计算得到广泛的应用。如今,越来越多的科学应用程序使用工作流技术来管理和执行科学创新过程中的数据生成、合成、可视化和分析。在某种程度上说,科学工作流已经成为各个领域用来计算和处理数据的一种有效方法。
对于某些数据来说,需要在一定时间内进行计算分析,一旦超过这个时间限制,那么这些数据就会失去价值,比如天气预报。如何在规定时间内完成大量的计算任务,是一个亟待解决的问题。随着数据量的增大,传统的单个云环境可能无法胜任如此艰巨的任务。多个云环境可提供更多的虚拟资源来进行快速计算处理,被公认是一种有效的解决方案。在多云环境中,可根据工作流的各个任务分配不同的虚拟机使数据快速被处理。多云环境相比单个云环境,在资源方面具有明显优势,因此单个云环境到多云环境是一个自然的趋势。
现有的工作流任务调度的方法大多只是考虑多个云环境之间的数据传输,而针对在截止时间约束下的工作流调度策略,忽略了I/O传输,云间带宽选择,以及数据的存储要求,没有充分考虑到各个方面,很难适应在一定时间内及时完成计算处理大规模数据的要求。
发明内容
针对现有技术的缺陷或不足,本发明的目的是一种工作流调度方法与装置。
本发明提供的工作流调度方法包括:
(1)给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
(2)计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径;计算工作流中从起始模块到结束模块的当前完成时间最短路径;工作流中属于最短路径且不属于关键路径上的模块为A类模块,其余模块为B类模块;
(3)比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总执行时间小于截止时间,则执行步骤(4);所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
(4)对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
(5)若当前总运行时间小于截止时间时,重复执行步骤(4)直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
(6)给工作流选择性能最好的带宽;
(7)比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行步骤(8);若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
(8)给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
进一步,本发明的方法包括:
Step1,分别对虚拟机类型和带宽进行性能降级排序;
Step2,给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
Step3,计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径CP;
Step4,计算工作流中从起始模块到结束模块的当前完成时间最短路径SP;
Step5,工作流中属于最短路径SP且不属于关键路径CP上的模块为A类模块,其余模块为B类模块;
Step6,比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总执行时间小于截止时间,则执行步骤Step7;所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
Step7,对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
Step8,若当前总运行时间小于截止时间时,重复执行Step7直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
Step9,根据对工作流分配的虚拟机方案将所有模块分配至相应的云数据中心的物理机中;
Step10,给工作流选择性能最好的带宽;
Step11,比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行Step12;若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
Step12,给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
在一些实施方案中,虚拟机类型性能按照CPU、I/O、DISK进行性能降级排序;带宽按照大小降级排序。
优选的,本发明采用FLOYD算法或迪杰斯特拉算法计算工作流中从起始模块到结束模块的当前完成时间最短路径SP。
有些实施方案中,若执行步骤(4)或Step7时所有的A类模块所分配的虚拟机类型性能都已达到最差时,则对B类模块进行降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前运行时间与截止时间的大小。
有些实施方案中,步骤(7)或Step11中若在选择性能最好的带宽时,工作流的总完成时间大于截止时间,在已分配方案好的虚拟机类型方案的基础上升级关键路径上模块的虚拟机类型性能,每升级一次比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小,直至总运行时间大于等于截止时间后,再次进行物理机选择。
本发明提供的工作流调度装置包括:
模块分类装置,该装置用于:
①给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
②计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径;计算工作流中从起始模块到结束模块的当前完成时间最短路径;工作流中属于最短路径且不属于关键路径上的模块为A类模块,其余模块为B类模块;
虚拟机类型分配装置,该装置用于:
③比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总执行时间小于截止时间,则执行步骤④;所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
④对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
⑤若当前总运行时间小于截止时间时,重复执行步骤(4)直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
物理机分配装置,该装置用于:
⑥给工作流选择性能最好的带宽;
⑦比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行步骤⑧;若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
⑧给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
与现有技术相比,本发明具有以下技术效果:
本发明的方法尤其适用于在多云环境中截止时间约束下工作流的任务调度。在多云环境中,本发明通过寻找关键路径和最短路径,为工作流的各个模块分配合适的虚拟机和带宽;通过关键路径和最短路径将工作流的全部模块分为两类,在未超过截止时间的情况下,先对A类模块分配的虚拟机进行降级,若这些虚拟机已经是性能最差且时间剩余,则继续对B类模块虚拟机进行降级,直至超过截止时间,然后用同样的降级方式选择合适的带宽。这样不仅能够确保工作流能在规定时间内完成处理。
附图说明
图1是模块分类示意图;
图2是在不同问题规模下与Max-min和MCWM算法性能比较;
图3是中在不同截止时间下与Max-min和MCWM算法性能比较;
图4为一工作流示意图。
具体实施方式
本文所用的所有科技术语的含义与本发明所属领域的技术人员通常理解是一样的。另外,除非特殊情况有其他限制,否则下列定义适用于本说明书中使用的术语。
本领域工作流通常表示为一种有向无环图DAG,其中的每条边代表的是前一个节点与后一个节点的联系或者说是一种依赖关系,前一节点执行完毕后,根据边的权重即传输数据的大小传输数据给下一个节点,下一个节点开始执行。具体可根据用户或者云供应商提交的具体应用需求与数据放置位置,产生一个由有向无环图表示的工作流Gw(Vw,Ew),工作流中的模块具体指程序、代码段等基本数据操作。每个工作流均存在一个或多个起始模块和一个结束模块,当存在多个起始模块时,可在工作流中人为设定虚拟起始模块。一种工作流建立方法是由多个计算模块组成工作流结构Gw(Vw,Ew),这些计算模块之间有不同的数据传输和执行依存度,其中︱Vw︳为该工作流所含有的模块数,|Ew|是有向边的数目,即工作流中模块间所存在的依赖关系的数目。
虚拟机类型是指多云供应商提供的可运行虚拟机实例的可选项,本发明适用于现有的虚拟机类型。虚拟机类型性能的最优级到最差级可依次按照CPU、I/O、Disk的顺序和各自的取值大小进行排序分级,并且是同一参数比较排序,同一参数值越大越性能优。也就是说,首先按照CPU资源的大小排序,若CPU资源相同则顺序按照I/O的指标排序,若前两者相同则顺序按照Disk的可用空间大小排序,结束排序后依据相应的价格得到虚拟机类型与价格表。
在一个CPU受约束的代码段中,程序的运行时间主要取决于模块w的工作量和分配给该模块的虚拟机类型的CPU频率。在这样的代码段中,程序的运行时间主要由CPU的运行时间占据,可以用CPU的运行时间来代替该代码段的程序执行时间。在I/O约束的代码段中,程序的运行时间主要取决于代码段所执行的I/O操作,即取决于输入数据量,输出数据量和分配到的虚拟机类型的I/O速率rI/O。在这样的代码段中,程序的运行时间主要由I/O时间占据,可以用代码段的I/O时间来代替程序的执行时间。
工作流中的一个模块在一个特定的虚拟机上的运行时间Tme(w,vt)=TCPU+TI/O。
其中:
在一个CPU受约束的代码段中,程序的运行时间主要取决于模块的工作量和分配给该模块的虚拟机类型的CPU频率。
在I/O约束的代码段中,程序的运行时间主要取决于代码段所执行的I/O操作,即取决于模块输入数据量,输出数据量和分配到的虚拟机类型的I/O速率。
带宽是指多云供应商提供的可运行虚拟机实例的可选项,带宽的性能差与优可根据带宽数值大小进行排序分级。通过将传输的数据大小除以可用带宽来计算两个不同云之间的数据传输时间。工作流的完成时间主要取决于关键路径,主要由关键路径上模块的运行时间加上关键路径上模块之间的数据传输时间构成。
本发明的截止时间可由用户根据需要人为设定。
本发明的最短路径可以采用FLOYD算法、迪杰斯特拉算法、及本发明改进的迪杰斯特拉算法选取获得。其中迪杰斯特拉算法只计算了边的权重,改进的迪杰斯特拉算法则需要将点的权重也算进去。具体采用本发明改进的迪杰斯特拉算法获取过程为:
在一个工作流Gw中,把DAG图中模块集合V分成两组,第一组为已求出最短路径的模块集合(用S表示,初始时S中只有一个起始模块),第二组为其余未确定最短路径的模块集合(用U表示)。结合图4工作流和表2所示:
①初始时,S只包含起始模块,即S={w0}(在上图中即为模块A)。U包含除w0外的其他模块,即U={其余模块},若w0与U中模块u(u∈U)有边,则<u,w0>正常有权值,若u不是w0的出边邻接模块,则<u,w0>权值为∞。
②从U中选取一个与w0有边连接(即为B或C)、且其边的权重(具体取值为其中一条边的数据传输时间,即10或3)和模块权重(具体取值为其中一个模块的运行时间,即3或5)相加值最小的模块k(在上图中即为C),把k加入S中(即模块A和模块C,以及A与C之间所连边的权重就是A到C的最短路径长度),【A->C】。
③然后考虑以k为中间点,找起始模块w0到与k相连模块u′(u′可为模块B,D,E)之间最短路径的距离值,比较起始模块w0到模块u′的所有路径的权重的大小,将w0到u′的最短路径的距离值设为值较小的一个(u′≠k;u′≠w0)。
④继续找与模块u′相连的模块,设为k,重复步骤③直到所有顶点都包含在S中,最后得到起始模块与结束模块之间的最短路径即可。
表2本发明改进的迪杰斯特拉算法执行过程
下面结合附图和具体实施方式对本发明进行详细说明。
实施例1:
Step1,将虚拟机类型和带宽根据其性能进行降序排序:
对于虚拟机,按照CPU频率fCPU,I/O速度rI/O,硬盘空间cdisk由高至低进行排列,首先按照fCPU大小降序排序,fCPU越大性能越好排在前面,若fCPU相同,则rI/O大的排在前面,若rI/O相同,则cdisk大的排在前面;
对于带宽,则由大至小排列即可;
Step2,按照工作流模型中模块的数据量和工作量将工作流原图转换成一个DAG图;
Step3,给工作流中每个模块分配所能分配的性能最好的虚拟机,同时此虚拟机也需要满足数据存储要求,若不满足存储要求,则分配性能较差的虚拟机,直至满足存储要求;
Step4,计算出各个模块的运行时间,并在此基础上找一条关键路径CP;
该实施例采用寻找关键路径算法找到工作流的关键路径CP;
此时寻找到的关键路径CP是基于文献C.Q.Wu,H.Cao,Optimizing theperformance of big data workflows in multi-cloud environments under budgetconstraint,IEEE International Conference on Services Computing,2016,pp.138–145.利用该文献中的寻找关键路径算法(FindCP())得出关键路径CP。
Step5,找出一条最短路径SP;本实施例寻找到的最短路径SP是基于文献E.W.Dijkstra,A note on two problems in connexion with graphs,NumerischeMathematik,vol.1,no.1,pp.269–271,1959.利用该文献中的迪杰斯特拉算法(Dijkstra'algorithm)所设计的一个多项式时间的寻找最短路径算法。
本实施例中,采用本发明改进的迪杰斯特拉算法,计算最短路径P并计算路径T(P)的总时间,最后将最短路径P上的所有模块添加到S中,得到最短路径SP;
Step6,根据SP和CP将模块分为A,B两类,A类模块为属于最短路径且不属于关键路径的模块,剩余模块为B类,
本实施例以图4所示的模块分类示意图为简单示例,使用由9个计算模块组成的科学工作流w1,w2,...,w9,起始模块w0,结束模块w10表示工作流的数据输入和输出过程。在为模块和云间链路分配虚拟机和带宽之后,计算总的模块执行时间和数据传输时间。为简单起见,标记每个有向边上的数据传输时间以及每个计算模块的执行时间。通过计算每条路径的执行时间,可知{w0,w2,w5,w8,w9,w10}是关键路径,该路径权重为143,{w0,w1,w4,w7,w10}是最短路径,该路径权重为65。因此,蓝色模块属于A类,其他模块属于B类。
Step6,比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总执行时间小于截止时间,则执行步骤Step7;
Step7,对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
Step8,若当前总运行时间小于截止时间时,重复执行Step7直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
Step9,根据对工作流分配的虚拟机方案将所有模块分配至相应的云数据中心的物理机中,尽可能将更多的符合条件的虚拟机放置在同一个云cloudi中,以减少云间数据传输,由此减少时间和成本;
Step10,给工作流选择性能最好的带宽;
Step11,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行Step12;若当前总完成时间等于截止,则完成选择;
Step12,给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
实施例2:
在实施例1方案的基础上,Step7中若A类模块降级完成后,总运行时间仍然小于截止时间,则继续降级B类模块所对应的虚拟机性能,直至总运行时运行时间大于等于截止时间。
实施例3:
在实施例1或2方案的基础上,Step11中若在带宽最大的情况下依然超出截止时间,则此时提升已分配的虚拟机的等级,直到能够满足截止时间。
实施例5:
该实施例是基于实施例1方法的工作流调度装置。包括:
模块分类装置,该装置用于:
①给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
②计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径;计算工作流中从起始模块到结束模块的当前完成时间最短路径;工作流中属于最短路径且不属于关键路径上的模块为A类模块,其余模块为B类模块;
虚拟机类型分配装置,该装置用于:
③比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总执行时间小于截止时间,则执行步骤④;所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
④对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
⑤若当前总运行时间小于截止时间时,重复执行步骤(4)直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
物理机分配装置,该装置用于:
⑥给工作流选择性能最好的带宽;
⑦比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行步骤⑧;若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
⑧给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
在该实施例装置的基础上,虚拟机分配装置与物理机分配装置可实现实施例2或3的方法。
实施例4:
为了更好地分析所提出算法的性能,发明人对本发明的方案进行了仿真。
仿真对象为不同规模结构的工作流,工作流的生成方式如下一段描述所示。根据通用硬件配置和网络基础设施,将每个PM/VM的参数以及数据中心之间的链路带宽设置为适当的值。
考虑不同规模的问题实例来评估所提出的算法性能,发明人将问题规模定义为4元组(m,|Ew|,n,c),其中m是工作流计算模块的数量,|Ew|是工作流有向边的数量,n是可用的虚拟机类型的数量,c是数据中心的数量,不同的问题规模如表1所示。
具体来说,在每个问题实例中,每个核心的CPU频率设置在1GHz到4GHz的范围内,I/O速度设置在20Mbps到300Mbps的范围内,磁盘容量设置在500GB到4TB的范围内,网络带宽在1Gbps到10Gbps范围内。
以如下所示产生不同大小的工作流实例:
a)从仅需要输出数据的第一个计算模块开始,将第一个模块视为整个工作流的源点。选择1~3的随机整数作为第一个模块与下一个模块之间的间隔,以获得后续模块,并将它们作为两个模块之间的边(从左到右)连接,然后,将该模块视为另一个边的前一个模块,利用随机整数1~3得到后续模块。通过这种方式,获得第一个模块到最后一个模块的边;
b)选择任意两个模块并在它们之间添加一个从左到右的单向链接,直到随机地获得指定数量的模块和边;
c)按顺序布置所有模块。每个模块分配一个随机计算工作负载,每个边缘分配一个范围[5,500]内的随机数据大小,分别以百万条指令和GBytes为单位。
表1
仿真实验中,对每个规模的问题实例选择具有相同间隔的10个截止时间。在工作流不同规模中的每个截止时间水平的问题实例中,分别运行对比算法Max-min和MCWM和提高算法WMFCO20次。对Max-min和MCWM问题的算法性能比较分别见图2和图3。对Max-min,可以发现WMFCO算法性能优于Max-min和MCWM。
Claims (11)
1.一种工作流调度方法,其特征在于,方法包括:
(1)给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
(2)计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径;计算工作流中从起始模块到结束模块的当前完成时间最短路径;工作流中属于最短路径且不属于关键路径上的模块为A类模块,其余模块为B类模块;
(3)比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总运行时间小于截止时间,则执行步骤(4);所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
(4)对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
(5)若当前总运行时间小于截止时间时,重复执行步骤(4)直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
(6)给工作流选择性能最好的带宽;
(7)比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行步骤(8);若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
(8)给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
2.如权利要求1所述的工作流调度方法,其特征在于,方法包括:
Step1,分别对虚拟机类型和带宽进行性能降级排序;
Step2,给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
Step3,计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径CP;
Step4,计算工作流中从起始模块到结束模块的当前完成时间最短路径SP;
Step5,工作流中属于最短路径SP且不属于关键路径CP上的模块为A类模块,其余模块为B类模块;
Step6,比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总运行时间小于截止时间,则执行步骤Step7;所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
Step7,对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
Step8,若当前总运行时间小于截止时间时,重复执行Step7直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
Step9,根据对工作流分配的虚拟机方案将所有模块分配至相应的云数据中心的物理机中;
Step10,给工作流选择性能最好的带宽;
Step11,比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行Step12;若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
Step12,给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
3.如权利要求2所述的工作流调度方法,其特征在于,虚拟机类型性能按照CPU、I/O、DISK进行性能降级排序;带宽按照大小降级排序。
4.如权利要求1或2所述的工作流调度方法,其特征在于,采用FLOYD算法或迪杰斯特拉算法计算工作流中从起始模块到结束模块的当前完成时间最短路径SP。
5.如权利要求1或2所述的工作流调度方法,其特征在于,若执行步骤(4)或Step7时所有的A类模块所分配的虚拟机类型性能都已达到最差时,则对B类模块进行降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前运行时间与截止时间的大小。
6.如权利要求1或2所述的工作流调度方法,其特征在于,步骤(7)或Step11中若在选择性能最好的带宽时,工作流的总完成时间大于截止时间,在已分配方案好的虚拟机类型方案的基础上升级关键路径上模块的虚拟机类型性能,每升级一次比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小,直至总运行时间大于等于截止时间后,再次进行物理机选择。
7.一种工作流调度装置,其特征在于,装置包括:
模块分类装置,该装置用于:
①给工作流Gw(Vw,Ew)中每个模块分配性能最优的虚拟机类型,并且所分配性能最优的虚拟机类型同时满足所有模块的数据存储要求,Vw为模块集合,Ew为所有模块依赖关系的集合;
②计算各个模块采用当前各自所分配分虚拟机类型的当前运行时间,其中当前运行时间最大的模块所在路径为关键路径;计算工作流中从起始模块到结束模块的当前完成时间最短路径;工作流中属于最短路径且不属于关键路径上的模块为A类模块,其余模块为B类模块;
虚拟机类型分配装置,该装置用于:
③比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;若当前总运行时间大于等于截止时间,则完成分配;若当前总运行时间小于截止时间,则执行步骤④;所述的当前总运行时间为关键路径上各模块的当前运行时间之和;
④对A类模块各自所分配的虚拟机类型进行性能降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小;
⑤若当前总运行时间小于截止时间时,重复执行步骤(4)直至当前总运行时间大于等于截止时间;若当前总运行时间大于截止时间时,则对经过当前次降级处理的模块重新分配上一次分配的虚拟机类别并完成分配;若当前总运行时间等于截止时间,则完成分配;
物理机分配装置,该装置用于:
⑥给工作流选择性能最好的带宽;
⑦比较当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则执行步骤⑧;若当前总完成时间等于截止,则完成选择;所述总完成时间为工作流的关键路径上模块的总运行时间和关键路径上模块的总传输时间之和;
⑧给工作流带宽性能进行降级,每降级一次,比较工作流的当前总完成时间与截止时间大小,若当前总完成时间小于截止时间,则继续工作流给选择新降级的带宽;若当前总完成时间大于截止时间,则选择上一次的带宽并完成选择,若当前总完成时间等于截止,则完成选择。
8.如权利要求7所述的工作流调度装置,其特征在于,虚拟机类型性能按照CPU、I/O、DISK进行性能降级排序;带宽按照大小降级排序。
9.如权利要求7所述的工作流调度装置,其特征在于,采用FLOYD算法或迪杰斯特拉算法计算工作流中从起始模块到结束模块的当前完成时间最短路径SP。
10.如权利要求7所述的工作流调度装置,其特征在于,若执行步骤④时所有的A类模块所分配的虚拟机类型性能都已达到最差时,则对B类模块进行降级,每降级一次比较工作流采用当前所分配虚拟机类型的当前运行时间与截止时间的大小。
11.如权利要求7所述的工作流调度装置,其特征在于,步骤⑦中若在选择性能最好的带宽时,工作流的总完成时间大于截止时间,在已分配方案好的虚拟机类型方案的基础上升级关键路径上模块的虚拟机类型性能,每升级一次比较采用当前所分配虚拟机类型的当前总运行时间与截止时间的大小,直至总运行时间大于等于截止时间后,再次进行物理机选择。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811562133.2A CN109784663B (zh) | 2018-12-20 | 2018-12-20 | 一种工作流调度方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811562133.2A CN109784663B (zh) | 2018-12-20 | 2018-12-20 | 一种工作流调度方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109784663A CN109784663A (zh) | 2019-05-21 |
CN109784663B true CN109784663B (zh) | 2022-11-25 |
Family
ID=66497458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811562133.2A Active CN109784663B (zh) | 2018-12-20 | 2018-12-20 | 一种工作流调度方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109784663B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110740194B (zh) * | 2019-11-18 | 2020-11-20 | 南京航空航天大学 | 基于云边融合的微服务组合方法及应用 |
CN111950835B (zh) * | 2019-12-06 | 2021-03-12 | 中国人民解放军国防科技大学 | 基于竞价型实例的截止期约束工作流资源调度方法 |
CN111597031A (zh) * | 2020-05-22 | 2020-08-28 | 山东汇贸电子口岸有限公司 | 一种多云环境下科学工作流程的调度方法 |
CN113127205B (zh) * | 2021-04-30 | 2022-05-17 | 东北大学秦皇岛分校 | 一种云中满足截止时间约束且优化成本的工作流调度方法 |
CN113568747B (zh) * | 2021-07-27 | 2024-04-12 | 上海交通大学 | 基于任务分类与时序预测的云机器人资源调度方法及系统 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011191964A (ja) * | 2010-03-15 | 2011-09-29 | Hitachi Information & Control Solutions Ltd | ワークフロー管理方法、プログラムおよびワークフロー管理装置 |
CN104536806A (zh) * | 2014-12-26 | 2015-04-22 | 东南大学 | 一种云环境下的工作流应用弹性资源供应方法 |
CN104657221A (zh) * | 2015-03-12 | 2015-05-27 | 广东石油化工学院 | 一种云计算中基于任务分类的多队列错峰调度模型及方法 |
KR101643251B1 (ko) * | 2015-04-29 | 2016-07-28 | 한국과학기술원 | 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 |
CN106339924A (zh) * | 2016-08-29 | 2017-01-18 | 东南大学 | 一种基于工作流的云计算资源混合租赁方法 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
CN108021435A (zh) * | 2017-12-14 | 2018-05-11 | 南京邮电大学 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
CN108108225A (zh) * | 2017-12-14 | 2018-06-01 | 长春工程学院 | 一种面向云计算平台的任务调度方法 |
CN108628665A (zh) * | 2018-05-16 | 2018-10-09 | 天津科技大学 | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107947974B (zh) * | 2017-11-17 | 2021-01-19 | 国云科技股份有限公司 | 一种云平台业务的网络关键链路检测方法 |
-
2018
- 2018-12-20 CN CN201811562133.2A patent/CN109784663B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011191964A (ja) * | 2010-03-15 | 2011-09-29 | Hitachi Information & Control Solutions Ltd | ワークフロー管理方法、プログラムおよびワークフロー管理装置 |
CN104536806A (zh) * | 2014-12-26 | 2015-04-22 | 东南大学 | 一种云环境下的工作流应用弹性资源供应方法 |
CN104657221A (zh) * | 2015-03-12 | 2015-05-27 | 广东石油化工学院 | 一种云计算中基于任务分类的多队列错峰调度模型及方法 |
KR101643251B1 (ko) * | 2015-04-29 | 2016-07-28 | 한국과학기술원 | 컴퓨팅 워크플로우에서 작업 분할 방식을 이용한 가상머신 스케줄링 방법 |
CN106339924A (zh) * | 2016-08-29 | 2017-01-18 | 东南大学 | 一种基于工作流的云计算资源混合租赁方法 |
CN107301500A (zh) * | 2017-06-02 | 2017-10-27 | 北京工业大学 | 一种基于关键路径任务前瞻的工作流调度方法 |
CN108021435A (zh) * | 2017-12-14 | 2018-05-11 | 南京邮电大学 | 一种基于截止时间的具有容错能力的云计算任务流调度方法 |
CN108108225A (zh) * | 2017-12-14 | 2018-06-01 | 长春工程学院 | 一种面向云计算平台的任务调度方法 |
CN108628665A (zh) * | 2018-05-16 | 2018-10-09 | 天津科技大学 | 基于数据密集型科学工作流的任务调度与虚拟机整合方法 |
Non-Patent Citations (3)
Title |
---|
QoS约束云环境下的工作流能效调度算法;李廷元等;《计算机科学》;20180615;第317-322,340页 * |
云平台上基于关键路径截取的有向无环图应用调度算法;刘少伟等;《国防科技大学学报》;20170628(第03期);第100-107页 * |
基于动态关键路径的云工作流调度算法;陶勇等;《计算机应用研究》;20170614(第05期);第226-231页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109784663A (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109784663B (zh) | 一种工作流调度方法与装置 | |
Nabi et al. | DRALBA: Dynamic and resource aware load balanced scheduling approach for cloud computing | |
Shi et al. | Empirical evaluation of vector bin packing algorithms for energy efficient data centers | |
CN103336722B (zh) | 一种虚拟机cpu资源监控和动态分配方法 | |
CN111381950A (zh) | 一种面向边缘计算环境基于多副本的任务调度方法和系统 | |
CN104239141A (zh) | 数据中心中基于工作流关键路径的任务优化调度方法 | |
CN103699446A (zh) | 基于量子粒子群优化算法的多目标工作流动态调度方法 | |
CN108270805B (zh) | 用于数据处理的资源分配方法及装置 | |
Liu et al. | A survey on virtual machine scheduling in cloud computing | |
Babu et al. | Virtual machine placement for improved quality in IaaS cloud | |
Ihara et al. | Many-objective virtual machine placement for dynamic environments | |
CN107070965B (zh) | 一种虚拟化容器资源下的多工作流资源供给方法 | |
CN106293947B (zh) | 虚拟化云环境下gpu-cpu混合资源分配系统和方法 | |
CN104104621A (zh) | 一种基于非线性降维的虚拟网络资源动态自适应调节方法 | |
Ma et al. | On resource management for cloud users: A generalized kelly mechanism approach | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
Alyouzbaki et al. | Novel load balancing approach based on ant colony optimization technique in cloud computing | |
US9591067B2 (en) | Methods and apparatus for allocating cloud-based media resources | |
CN106802822A (zh) | 一种基于飞蛾算法的云数据中心认知资源调度方法 | |
Asgari et al. | An effiecient approach for resource auto-scaling in cloud environments | |
Delavar et al. | A goal-oriented workflow scheduling in heterogeneous distributed systems | |
CN109783189B (zh) | 一种静态工作流调度方法与装置 | |
Gąsior et al. | A Sandpile cellular automata-based scheduler and load balancer | |
Srivastava et al. | Load management model for cloud computing using cloudsim | |
Aryan et al. | A bi-objective workflow application scheduling in cloud computing systems |
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 |