CN104834995B - 基于云计算的工作流双向调度方法 - Google Patents

基于云计算的工作流双向调度方法 Download PDF

Info

Publication number
CN104834995B
CN104834995B CN201510188745.XA CN201510188745A CN104834995B CN 104834995 B CN104834995 B CN 104834995B CN 201510188745 A CN201510188745 A CN 201510188745A CN 104834995 B CN104834995 B CN 104834995B
Authority
CN
China
Prior art keywords
node
virtual machine
workflow
time
task
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
CN201510188745.XA
Other languages
English (en)
Other versions
CN104834995A (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.)
Shanghai Inaservice Information Technology Co ltd
Original Assignee
Anhui Normal University
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 Anhui Normal University filed Critical Anhui Normal University
Priority to CN201510188745.XA priority Critical patent/CN104834995B/zh
Publication of CN104834995A publication Critical patent/CN104834995A/zh
Application granted granted Critical
Publication of CN104834995B publication Critical patent/CN104834995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于云计算的工作流双向调度方法,该工作流双向调度方法包括:步骤1,满足工作流在最终时间准时完成的情况下,采用backward算法从工作流的多个任务节点的尾节点开始分配调度,得到经过backward算法之后的工作流;步骤2,在满足所述多个任务节点的依赖关系和不超过所述工作流的最终时间的情况下,根据所述多个任务节点最早开始时间EST,采用forward算法从经过backward算法之后的工作流的多个任务节点的头节点开始对每个任务节点进行向前调度。该基于云计算的工作流双向调度方法节约了用户成本,满足用户灵活调度的个性化需求。

Description

基于云计算的工作流双向调度方法
技术领域
本发明涉及云计算的领域,具体地,涉及一种基于云计算的工作流双向调度方法。
背景技术
工作流调度是一种多约束满足问题,例如对于工作流中的任务之间相互依赖关系、任务与任务之间的传输时间、任务类型的约束满足。云资源提供商往往会基于租赁的销售模式以及基于使用量和性能标准的计费模式对用户应用所提供的计算服务进行收费。不同的调度算法直接关系到云计算的整体稳定性,并且在保证整个工作流按时完成的情况下,尽可能为用户节省成本。从云服务供应商角度出发,既要保证云端服务质量(QoS),又要考虑到负载均衡问题,以及利益最大化问题。因此,需要设计良好的调度算法,以实现云计算资源更好地共享。另外,在调度过程中,往往需要考虑到用户偏好问题。
工作流任务调度是一个NP-hard问题,目前大多数调度算法从云服务商角度出发,最大化地使用云端的固定资源数量,从而产生最大效益,面临着把工作流中的任务理想化成同一种类型任务、没有考虑到云端虚拟机按小时收费的策略、没有把云中资源想象成同构资源、没有考虑到预算的限制以及未考虑到任务之间的通讯量等问题,容易造成在实际执行过程中用户成本的增加。此外,现有技术认为云资源是单一化的,而这与现实是不相符,因为在云端其资源总量、类别数量都比较多,不可能单一化;另外也有采用deadline-assignment策略,将整个工作流的最终时间(deadline)约束到各个子任务中,存在着资源利用率不高的问题;现有技术还研究了关于云计算的资源动态分配与共享技术,主要集中在无用户差别情况下的资源动态分配策略,但云计算最终对象是不同的用户,而用户不同的行为习惯决定了不同的服务质量要求。此外,由于云计算环境下按小时收费的策略,但是用户面临着如何减少因剩余时间(partial hour)统计不合理而额外花费的问题。例如,用户的某任务总共需要调度执行1.2小时,但云端服务提供商要按2小时收取费用,额外的0.8小时的收费给用户造成了不少损失,如果云端避免这0.8小时的使用,既可以避免用户的额外损失,又可以实现云端服务提供商的自身利益的最大化。因此,需要设计合理的调度算法。
发明内容
本发明的目的是提供一种基于云计算的工作流双向调度方法,该基于云计算的工作流双向调度方法克服了现有技术中的虚拟机资源利用效率不高、没有考虑到用户差别化的问题,节约了用户成本,满足用户灵活调度的个性化需求。
为了实现上述目的,本发明提供了一种基于云计算的工作流双向调度方法,该工作流双向调度方法包括:
步骤1,满足工作流在最终时间准时完成的情况下,采用backward算法从工作流的多个任务节点vi的尾节点开始分配调度,得到经过backward算法之后的工作流;
步骤2,在满足所述多个任务节点vi的依赖关系和不超过所述工作流的最终时间的情况下,根据所述多个任务节点vi最早开始时间EST,采用forward算法从经过backward算法之后的工作流的多个任务节点vi的头节点开始对每个任务节点vi进行向前调度。
优选地,所述步骤1包括:
步骤S101,计算得到所有任务节点vi的多个工作区间,根据所述工作区间的最迟结束时间LFT将多个所述工作区间从大到小进行排序,从所述任务节点vi的尾节点开始依次执行步骤S102;
步骤S102,当所述任务节点vi的所有直接后继节点所分配的虚拟机的类型相同于所述任务节点vi所映射的虚拟机的类型,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S103;
步骤S103,求出任务节点vi与所述任务节点vi的直接后继节点的传输时间,比较所述任务节点vi的多个直接后继节点的最迟结束时间和所述传输时间之和,得出所述和的最小值所对应的直接后继节点;
步骤S104,当所述和的最小值所对应的直接后继节点所分配的虚拟机的类型与所述任务节点vi所映射的虚拟机的类型相同,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S105;
步骤S105,当所述任务节点vi所在类型的已经分配的虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机中,否则,执行步骤S106;
步骤S106,重新租用所述任务节点vi所在类型的虚拟机,则将所述任务节点vi分配到所述虚拟机中。
优选地,所述工作区间从所述任务节点vi的最迟开始时间LST至传输到该任务节点vi的直接后继节点的完成时间之间的区间。
优选地,在所述步骤S102和步骤S103中,当所述直接后继节点为所述任务节点vi的唯一直接后继节点,且所述直接后继节点所分配的虚拟机的类型相同于所述任务节点vi所映射的虚拟机的类型,则所述工作区间省去相邻节点的传输完成时间。
优选地,所述步骤2包括,
步骤S201,将经过backward算法之后的工作流中的头节点放入集合SET中;
步骤S202,分别计算集合SET中的任务节点vi在步骤1中所分配到的虚拟机以及与所述虚拟机同类的虚拟机的多个空闲时间戳;
步骤S203,根据所述多个空闲时间戳计算得到每个空闲时间所对应的以下因素:最早开始时间影响因素ESTF、浪费时间影响因素WTF和额外租用的费用影响因素ACF;
步骤S204,通过如下公式得到任务最优放置指数:
Index=ESTF×a+WTF×b+ACF×c,
其中,a、b、c是权重,且a、b、c的范围都为[0,1];
步骤S205,比较多个所述空闲时间戳所对应的任务最优放置指数的大小得到最小的最优放置指数,将集合SET中的任务节点vi放入所述最小的最优放置指数所对应的空闲时间戳得到FeasibleSet集合;
步骤S206,当所述任务节点vi有直接后继节点时,将集合SET中的任务节点vi替换成所述任务节点vi的直接后继节点,否则,返回执行步骤S202。
优选地,在所述步骤S203中,计算最早开始时间影响因素ESTF的方法包括:
最早开始时间影响因素ESTF等于实际开始时间AST与最早开始时间之差LST除以最迟开始时间EST。
优选地,在所述步骤S203中,计算浪费时间影响因素WTF的方法包括:
浪费时间影响因素WTF等于在预设周期的时间内左边的空闲时间戳与右边的空闲时间戳的和除以所述预设周期的时间。
优选地,在所述步骤S203中,计算额外租用的费用影响因素ACF的方法包括:
额外租用的费用影响因素ACF等于增加的额外虚拟机的预设周期数乘以预设周期除以所述任务节点vi的工作区间。
优选地,该工作流双向调度方法还包括步骤3,
根据每个虚拟机的费用price(t)通过如下公式计算已经分配的虚拟机的总费用Costsum
其中,price(t)代表第t种类型虚拟机每小时的收费标准,n表示有n种虚拟机;表示任务节点vi在所分配的t类虚拟机上执行所需要的时间且向上取整。
优选地,该工作流双向调度方法还包括:将分配调度后的任务节点vi进行标记。
通过上述的实施方式,本发明的基于云计算的工作流双向调度方法针对当前研究中存在的因剩余时间而导致的虚拟机资源利用效率不高、没有考虑到用户差别化等问题,从用户角度出发,针对虚拟机按小时收费模型,提出一种动态的双向调度算法,即从尾节点到头节点反向进行一次排序,再正向进行一次排序,在满足用户指定的截止时间的同时,又可以根据剩余时间实际情况动态地对虚拟机租用数量进行调节,从而进一步节约用户成本,满足用户灵活调度的个性化需求。
本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是说明本发明的优选实施方式的工作流实例示意图;
图2是说明本发明的优选实施方式的backward算法调度最终结果示意图;
图3是说明本发明的优选实施方式的浪费时间影响因素WTF实例的示意图;
图4是说明本发明的优选实施方式的额外租用的费用影响因素实例的示意图;
图5是说明本发明的优选实施方式的v5分配之前的虚拟机状态的实例的示意图;
图6是说明本发明的优选实施方式的排除c之后v5在虚拟机上两种可选择状态的示意图;
图7是说明本发明的优选实施方式的虚拟机v5分配后最终状态的示意图;
图8是说明本发明的最优选方式的虚拟机调度整个工作流的最终结果的示意图;
图9是说明本发明的θ取0.15时本文算法在执行费用与其它算法对比的效果图;
图10是说明本发明的θ取0.3时本文算法在执行费用与其它算法对比的效果图;以及
图11是说明本发明的一种基于云计算的工作流双向调度方法的流程图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
在本发明的一种基于云计算的工作流双向调度方法的具体实施方式中,如图11所示,该工作流双向调度方法包括:
步骤1,满足工作流在最终时间准时完成的情况下,采用backward算法从工作流的多个任务节点vi的尾节点开始分配调度,得到经过backward算法之后的工作流;
步骤2,在满足所述多个任务节点vi的依赖关系和不超过所述工作流的最终时间的情况下,根据所述多个任务节点vi最早开始时间EST,采用forward算法从经过backward算法之后的工作流的多个任务节点vi的头节点开始对每个任务节点vi进行向前调度。
通过上述的实施方式,本发明的首先采用backward算法从尾节点开始调度,在工作流的deadline时刻准时完成,同时保证每个任务都正好在最迟时刻完成。其次采用forward算法,根据虚拟机的空闲情况,动态调节任务的时间戳,根据每个任务的最早开始时间,从头节点开始,对每个任务进行向前调度,该任务标记为已分配任务,之后再动态调整后续任务的最早开始时间,在调度时,对同类型虚拟机上的任务,在不违反任务之间相互依赖关系以及不超出工作流deadline时,尽可能地合并在一个收费周期(预设为60分钟),从而不需要重新租用额外的虚拟机时间,以尽可能地为用户节省费用。
在考虑到了尽可能减少任务之间的传输时间的同时,为用户制定了三种选择模式(在定义7详细介绍),用户可以根据实际需要进行选择调度模式。
以下结合附图1对本发明进行进一步的说明,图1是具体的一种工作流实例示意图,
1、图1所示的工作流总共有7个节点,v1到v7代表各个任务,箭头方向从父任务节点指向子任务节点,表示调度时节点之间的先后关系,箭头上的数字代表两个节点之间的通信时长(单位:分钟)。
令W={v1,…,vn}表示一个有n个任务(节点)的工作流,W中除首、尾任务外,其它任务都有直接父任务和直接子任务。用集合E={eij}表示父子任务之间拥有的直接有向边,其中,eij=(vi,vj),(1<=i<j<=n)。只有当某子任务所有父任务都执行完成后,该子任务(直接后继节点)才可以开始执行。当子任务与其父任务在同一个虚拟机上执行时,数据传输时间忽略不计,用TT(vi,vj)来表示任务vi和任务vj之间的传输时间,用D表示工作流W的截止时间deadline。
与双向调度算法有关的定义如下:
定义1,工作流最迟结束时间LFT(latest finish time):LFT(vexit)=D,
在定义1中,vexit表示工作流的尾节点(该节点只是一个虚拟的最后节点,与其它节点之间并无通信量,本身也无计算量),vi和vc均为工作流中的节点,且vc是vi的直接后继节点,代表任务vi在所分配的虚拟机t上的执行时间。
定义2,最早开始时间EST(earliest start time):EST(ventry)=0,EST
在定义2中,ventry表示工作流的首节点,vp和vi均为工作流中的节点且vp是vi的父节点,代表任务vp在所分配的虚拟机t上的执行时间。
定义3,最迟开始时间LST(latest start time): 含义同定义1。
定义4,实际开始时间AST(vi)(Actual Start Time):指任务vi在所分配的虚拟机上实际的开始时间。
2、虚拟机类型映射
在云端有多种类型的虚拟机,每种都有不同的配置,主要区别在于内核数、CPU频率、存储空间大小、I/O带宽的不同,表1和表2分别给出了亚马逊和Rackspace公司的云平台虚拟机配置。
表1亚马逊公司云平台虚拟机主要配置及收费标准
虚拟机类型 内核数(个) 内存(GB) 价格(美元/小时)
M1.small 1 1.7 0.06
M1.medium 2 3.75 0.12
M1.large 4 7.5 0.24
M1.xlarge 8 15 0.48
表2某公司云平台虚拟机配置及收费标准
由表1和表2可知,云供应商所提供的虚拟机有多种类型。云供应商所提供的虚拟机按小时进行收费,不同类型的虚拟机收费标准也不相同,不同云供应商收费也不同。表2中分Normal type、High-memory type、High-CPU type是三种类型的虚拟机,分别适用于普通任务、存储密集型任务、CPU密集型任务。图1中任务的执行时间以及执行成本如表3所示。
表3是图1中任务的执行时间以及执行成本
表3给出各个任务在不同类型虚拟机上的执行时间。在双向调度算法实现前,我们首先需要解决虚拟机的映射问题,以保证执行成本最小,同时要满足工作流的deadline限制,该映射问题是一个混合整数线性规划问题。约定图1中的工作流在规定的deadline时刻完成,设deadline时长为120min,采用CPLEX实现任务与虚拟机类型之间的映射,过程如下:在eclipse中引入CPLEX.jar文件,通过调用AddMinimize添加优化目标(cost),并通过IRange来定义约束(time)。映射结果如表4所示。
表4基于表3的任务与虚拟机类型映射
任务 v1 v2 v3 v4 v5 v6 v7
虚拟机类型 C_M C_M C_M C_EL C_M N_L C_EL
由表4知,CPLEX算法执行后,v1被映射到C_M类型虚拟机上,v2被映射到C_M类型的虚拟机上,v7被映射到C_EL类型的虚拟机。映射结果在接下来所提到的双向调度算法中将被用到。
CPLEX实现了把任务映射到高性价比的虚拟机类型上,但是具体是该类型的哪个虚拟机并没有给定。为合理调度到具体的高性价比虚拟机,本文设计了双向调度算法,该算法包括backward和forward两个子算法。首先,采用backward算法把任务调度到相应的虚拟机的具体时间戳,即把所有任务的“最后通牒”时间段规定好。其次,由于在对应的虚拟机上,该任务的具体时间戳的前面必然有大量的空闲时间,为了进一步利用这些空闲时间,根据任务的最早开始时间和最迟开始时间,采用forward算法尽最大可能地接近最早开始时间去调度该任务,节省调度时间和用户开支。
图2中,设用户规定的deadline为120min,计算每个任务最迟结束时间LFT(vi),可知,v7为120min,v5为108min,v6为108min,v3为107min,v2为90min,v4为74min,v1为52min。由表4可知,v7分配到CE_L类型的虚拟机上,该虚拟机执行v7只需要10min,由于LST(v7)为110min,可把CE_L1时间戳为[110,120]分配给v7。由表4可知,v5被分配到C_M类型虚拟机,v5与其直接后继节点所需类型虚拟机不同,因此需要租用C_M1虚拟机,同理,将[94,108]时间戳分配给v5。继续分配v6,同理需要租用N_L1虚拟机,将[78,108]时间段分配给v6。接着对v3进行分配,由表4可知,v3被映射到了C_M类型虚拟机上,由于v5已经租用了C_M1虚拟机但是在[93,110]时间段不空闲,那么只能重新租用新的C_M类型虚拟机C_M2,把时间段在[90,107]分配给v3。接着对v2进行分配,由表4可知,v2被映射到了C_M类型虚拟机上,其最迟开始时间到最迟完成时间为[64,85],v2的唯一直接后继节点v3也是采用C_M类型虚拟机并且在[64,85]空闲,即把v2分配在该虚拟机C_M2,时间段为[69,90],可以把最迟开始时间和最迟结束时间都向后延迟5分钟,因为原本其最迟开始时间到最迟结束时间为[64,85],但是由于其孩子节点(即直接后继节点)v3与其在同一个虚拟机上执行它们之间的传输时间即可省去,所以最迟开始时间和最迟结束时间都会向后推迟。继续分配v4,根据CPLEX映射关系,其被映射到C_EL类型虚拟机上,最迟开始时间到最迟完成时间为[54,74]。由于v4的两个直接后继节点v3和v6所使用的虚拟机的类型与C_EL不同,即只能查看是否有类型为CE_L虚拟机在[54,74]上空闲,经计算发现CE_L1满足要求,将CEL_1在[54,74]时间段分配给v4。最后分配v1,其映射虚拟机类型是C_M类型,并且最迟开始时间到最迟完成时间为[25,52],由于其所有直接后继节点不都是与它同类型,而且其直接后继节点最早的最迟开始时间是54min,所属任务是v4,所以只能找所有C_M类型虚拟机在[25,52]是否空闲。由图1可知,任务v1和v4之间传输时间为2min,因此,要留下2min为v1和v4的传输时间,由于C_M1和C_M2虚拟机均满足分配条件,通过随机选择,把任务v1分配给C_M2。
在本发明的一种具体实施方式中,如图2所示,所述步骤1可以包括:
步骤S101,计算得到所有任务节点的多个工作区间,根据所述工作区间的最迟结束时间LFT将多个所述工作区间从大到小进行排序,从所述任务节点的尾节点开始依次执行步骤S102;
步骤S102,当所述任务节点vi的所有直接后继节点所分配的虚拟机的类型相同于所述任务节点所映射的虚拟机的类型,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S103;
步骤S103,求出任务节点vi与所述任务节点vi的直接后继节点的传输时间,比较所述任务节点vi的多个直接后继节点的最迟结束时间和所述传输时间之和,得出所述和的最小值所对应的直接后继节点;
步骤S104,当所述和的最小值所对应的直接后继节点所分配的虚拟机的类型与所述任务节点vi所映射的虚拟机的类型相同,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S105;
步骤S105,当所述任务节点vi所在类型的已经分配的虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机中,否则,执行步骤S106;
步骤S106,重新租用所述任务节点vi所在类型的虚拟机,则将所述任务节点vi分配到所述虚拟机中。
在该backward算法中输入参数为初始工作流(包括所有任务及任务间的前后关系、任务之间的传输时间、任务通过CPLEX所映射到的虚拟机类型、工作流deadline)。
输出参数为经过backward算法后的工作流(包括所有任务通过CPLEX所映射的具体虚拟机的执行时间、任务在具体虚拟机上所分配的时间段)。
上述的步骤具体为:
Step1,从工作流尾节点开始向前计算每个任务的LST(vi)以及LFT(vi),按任务最迟完成时间递减排序,依次分配每个任务,被分配以后被标记为assigned,否则标记为unassigned;
Step2,如果任务vi所有直接后继节点都分配在同一个虚拟机,并且vi所映射到虚拟机的类型与后继节点所分配的虚拟机类型相同,同时,在该虚拟机时间间隔[LST(vi)+TT(vp,vi),LFT(vi)+TT(vp,vi)]空闲,则把vi分配到该虚拟机上并标记为assigned,否则跳转到Step3;
Step3,计算vi所有直接后继节点,求出具有最小minLFT(vc)+TT(vc,vi)的任务,如果任务vc所租用的虚拟机与任务vi所映射的虚拟机是同类型,同时在[LST(vi)+TT(vi,vc),LFT(vi)+TT(vp,vi)]空闲,则将vi分配到该虚拟机上,并标记为assigned,否则,跳转到Step4;
Step4,在所有同类已分配的虚拟机上寻找[LST(vi),LFT(vi)]是否存在空闲段,如果有,则把vi分配到该时段,并标记为assigned;否则,跳转到Step5;
Step5,由于该时间戳找不到可以分配的虚拟机,因此重新租用一个该类的虚拟机,(即与vi所映射的虚拟机同类型),把vi分配在时段[LST(vi),LFT(vi)]内;跳转到Step1,继续分配unassigned的任务,直到所有任务都标记为assigned;
Step6,返回经过backward算法后的工作流(包括任务通过CPLEX所映射的具体虚拟机的执行时间、任务在具体虚拟机上所分配的时间段)。
在该种实施方式中,所述工作区间从所述任务节点vi的最迟开始时间LST至传输到该任务节点vi的直接后继节点的完成时间之间的区间。
在该种实施方式中,在所述步骤S102和步骤S103中,当所述直接后继节点为所述任务节点vi的唯一直接后继节点,且所述直接后继节点所分配的虚拟机的类型相同于所述任务节点vi所映射的虚拟机的类型,则所述工作区间省去相邻节点的传输完成时间。
在本发明的一种优选实施方式中,所述步骤2可以包括,
步骤S201,将经过backward算法之后的工作流中的头节点放入集合SET中;
步骤S202,分别计算集合SET中的任务节点vi在步骤1中所分配到的虚拟机以及与所述虚拟机同类的虚拟机的多个空闲时间戳;
步骤S203,根据所述多个空闲时间戳计算得到每个空闲时间所对应的以下因素:最早开始时间影响因素ESTF、浪费时间影响因素WTF和额外租用的费用影响因素ACF;
步骤S204,通过如下公式得到任务最优放置指数:
Index=ESTF×a+WTF×b+ACF×c,
其中,a、b、c是权重,且a、b、c的范围都为[0,1];
步骤S205,比较多个所述空闲时间戳所对应的任务最优放置指数的大小得到最小的最优放置指数,将集合SET中的任务节点vi放入所述最小的最优放置指数所对应的空闲时间戳得到FeasibleSet集合;
步骤S206,当所述任务节点vi有直接后继节点时,将集合SET中的任务节点vi替换成所述任务节点vi的直接后继节点,否则,执行步骤S202。
基于backward算法结果,forward算法主要从3个方面考虑如何选择虚拟机以及时间戳的分配问题,
(1)ESTF(最早开始时间影响因素)
让AST与EST尽可能地接近,便于后面任务有更多的时间戳去选择,ESTF=(AST(vi)-EST(vi))/LST(vi)。在选择时间戳分配时,ESTF越小越好。
(2)WTF(浪费时间影响因素)
记任务vi的开始时间为ST(vi),结束时间为FT(vi)。租用虚拟机的时间为HP(分钟),HP=60*i,i=1……n。HPleft代表该虚拟机租用的起始时间,HPright代表该虚拟机租用的截止时间。当任务vi分配到该虚拟机上时,该任务左右各有两种空闲时间戳(分别记为Slotleft和Slotright)。左边的空闲时间戳Slotleft的范围是[Slotstart,ST(vi)]或者是[HPleft,ST(vi)],同理右边的空闲时间戳的范围是[FT(vi),Slotend]或者是[FT(vi),HPright],任务vi浪费的总时间戳Slotsum=Slotleft+Slotright。浪费时间影响因素WTF示例如图3所示。
图3中,在CE_L1虚拟机上,v9左边空闲时间戳为[20,25],而在CE_L2虚拟机上中,v9左边空闲时间戳为[0,25]。以60分钟为一个租赁周期,60是分水岭,因此,在CE_L1虚拟机上中v2右边空闲时间戳为[55,60],而在CE_L2虚拟机上中为[45,50]。
(3)ACF(额外租用的费用影响因素)
当任务vi在被分配的虚拟机t上时,函数Addedhour(vi,slot)用于计算执行任务vi所需要增加的额外虚拟机的小时数,代表任务vi在虚拟机t上的执行时间,TT(vp,vi)来表示任务vp和任务vi之间的传输时间,vp是vi的直接父节点,额外租用的费用影响因素ACF的示例如图4所示。
如果v9被分配到图4的CE_L1虚拟机上,则不需要额外增加收费,因为v9利用的是该虚拟机调度v8和v10之间的剩余时间。但是若将v9分配到CE_L2虚拟机上时,还需要增加一个小时的付费,因为在时间戳为[60,120]时,该虚拟机并未分配其它任务,所以仍需租用一个小时去执行v9,而在CE_L1上即可省去此次费用。
定义5,任务最优放置指数Index(vi,slot):上述ESTF、WTF、ACF三个因素的结合,将决定任务分配到哪个空闲时间戳,如式(1)所示。
Index(vi,slot)=ESTF*a+WTF*b+ACF*c (1)
式(1)中,a、b、c是权重,范围为[0,1],用户根据自己的偏好进行设定,本文a、b、c取值均为1。如果用户对于整个工作流时间要求尽可能快地完成,在满足小于用户cost的限制条件下,可以增大权重a的值。任务最优放置指数Index(vi,slot)值越小,表示可以提前知道任务浪费的时间戳越小,因此减少因虚拟机时间剩余而浪费的额外费用。
定义6,总费用Costsum:计算所有已经分配的虚拟机的总费用(向上取整),如式(2)所示:
式(2)用于计算租用的n个虚拟机的总费用。price(t)代表第t种类型虚拟机每小时的收费标准,表示任务vi在所分配的t类虚拟机上执行所需要的时间(单位:分钟),表示任务节点vi在所分配的t类虚拟机上执行所需要的总费用。表示除以60并且向上取整,以求出该虚拟机总共使用多少小时,以充分体现了云计算按小时收费特点。
定义7,用户自定义优先级:在满足定义2的情况下,根据用户的费用要求以及工作流最后实际完成时间两种因素的优先级,用户有3种选择模式:费用优先、工作流最后实际完成时间优先及用户自由选择,如下。
1)费用优先模式
该策略调度优先级由高到低的顺序是:先按费用优先调度,其次是按工作流最后实际完成时间进行调度。该策略的调度目标是让调度的费用达到最低,并且最小化工作流最后实际完成时间。该策略首先对所有可行调度方案按照费用进行排序,从中选出所有费用最低的调度方案,在这些方案中按照工作流最后实际完成时间进行排序从中选取时间最小的调度方案。
2)工作流最后实际完成时间优先模式
该策略调度优先级由高到低的顺序是:先按工作流最后实际完成时间进行调度,其次是按费用进行调度。该策略的调度目标是让调度的工作流最后实际完成时间达到最小,且费用最小化。该策略首先对所有可行调度方案按照工作流最后实际完成时间进行排序,从中选出所有时间最小的调度方案,在这些方案中按照费用进行排序从中选取费用最小的调度方案。
3)用户自定义模式
为满足用户的自身偏好,用户可以根据自己的实际需要,在不违反deadline和cost限制的同时,选择“最低的成本、更快的执行时间或达到性价比最低”三者之一优先执行,即为用户自定义模式。
在该种实施方式中,在所述步骤S203中,计算最早开始时间影响因素ESTF的方法可以包括:
最早开始时间影响因素ESTF等于实际开始时间AST与最早开始时间之差LST除以最迟开始时间EST。
在该种实施方式中,在所述步骤S203中,计算浪费时间影响因素WTF的方法包括:
浪费时间影响因素WTF等于在预设周期的时间内左边的空闲时间戳与右边的空闲时间戳的和除以所述预设周期的时间。
在该种实施方式中,在所述步骤S203中,计算额外租用的费用影响因素ACF的方法包括:
额外租用的费用影响因素ACF等于增加的额外虚拟机的预设周期数乘以预设周期除以所述任务节点vi的工作区间。工作区间包括传输时间加上执行时间。
在该种实施方式中,该工作流双向调度方法还包括步骤3,
根据每个虚拟机的费用price(t)通过如下公式计算已经分配的虚拟机的总费用Costsum
其中,price(t)代表第t种类型虚拟机每小时的收费标准,n表示有n种虚拟机;表示任务vi在所分配的t类虚拟机上执行所需要的时间且向上取整。
在该种实施方式中,该工作流双向调度方法还包括:将分配调度后的任务节点vi进行标记。
综上所述,以图2中工作流为例的v5为例,采用以最节省费用为调度目标的forward算法调度,如图5-图8所示,v5分配之前的虚拟机状态如图5所示,图5中,v5放在图5的最右边,表示其还没有被分配虚拟机。由于backward算法为每个任务设定了最迟开始时间,forward算法需要将v5尽可能早地分配到某虚拟机上。由表4可知,v5被映射到C_M类型虚拟机上,又由图5可知,所有已经分配的C_M类型虚拟机有C_M1和C_M2,这两个虚拟机上总共有a、b、c三个空闲时间戳。由forward算法可知,由于c违反了v5的最迟开始时间限制,所以首先排除c。v5将在a或者b中进行分配,排除c之后,v5在虚拟机上有两种可选择状态,如图6所示。从图6可知,在排除时间戳c之后,只能从时间戳a(见图5的C_M1)或时间戳b(见图5的C_M2)中选择一个。由于是按时间调度的,因此,可通过计算时间戳a和时间戳b的综合影响因素指数的“任务最优放置指数”来确定,即计算时间戳a和时间戳b的任务最优放置指数Index(v5,slot),计算公式见式(1),此处,式(1)中a、b、c取值均为1。
针对时间戳a,计算Index(v5,slot)过程如下:
因为ESTF=0、WTF=(31+15)/60=0.76,ACF=60/14=4.2,代入式(1)得Index(v5,slot)=0+0.76+4.2=4.96。
针对时间戳b,计算Index(v5,slot)过程如下:
又因为ESTF=0,WTF=19/60=0.31,ACF=0,同理得Index(v5,slot)=0+0.31+0=0.31
可知,4.96>0.31。由定义5可知,任务最优放置指数Index(vi,slot)值越小越好,所以v5分配给了图6中的C_M2。v5被分配后,虚拟机最终状态如图7所示。
从图7可知,v5由于没有租用C_M1虚拟机而节省了费用,否则v5将按一个周期(小时)付费,v5被分配在在虚拟机C_M2上,通过和v1共同租用C_M2的一个周期,从而达到了节省费用的目的,同理,后面的任务继续使用forward算法,图8给出了虚拟机调度图2所示的整个工作流的最终结果。
图8所示的整个工作流在虚拟机上调度的最终结果是所有调度方案中最节约的一种,在于对每个任务分配虚拟机时都求出综合影响因素指数,通过选出最小的空闲时间戳进行分配,以节省租用虚拟机的费用。
在本发明的实施方式中,backward算法中时间复杂度为O(N2)其中N表示任务数,在forward算法中,由于出现了空闲时间戳选择,假设总共有H个空闲时间戳需要去选择,则双向调度算法的总时间复杂度为O(N2H)。
将ICPCP算法、BDA算法与本文算法进行比较。我们取工作流包含的任务数为100,共有如表3所示的9种类型虚拟机。考虑到工作流的复杂度OS参数(OS是指整个工作流中实际path路径条数除以该工作流可以容纳最大的path条数),分别取OS=0.2、OS=0.3、OS=0.4三种情况。工作流deadline的生成方法:D=Dmin+(Dmax-Dmin)*θ,其中Dmin是工作流执行时间的最小值,Dmax是工作流执行时间的最大值,θ为系数,取值范围为0到1,以保证取到相对合理的deadline,实验中取θ=0.15、θ=0.3两种情况分析。工作流中的任务节点路径,将根据OS取值随机产生。
当θ取0.15时,本文算法与其它算法在执行费用方面的对比分析如图9所示。
从图9可以看出,当θ取0.15时,在OS=0.2和OS=0.4时,本文算法比ICPCP算法和BDA算法进一步节约了成本,尤其与ICPCP算法相比,优势非常明显。
随着θ增大,本文算法的优势更加明显,如θ取0.3时,对比图如图10所示。
由图10可知,随着deadline限制的逐步减小,本文与BDA以及ICPCP算法进行比较,平均降低20%-60%的成本,体现出来本文方法节约成本的明显优势。
由于虚拟机按周期调度,而当任务执行时间小于虚拟机周期时,将会产生剩余时间的虚拟机浪费成本问题。为降低当前云计算中工作流任务调度成本及等待时间,本文提出的双向调度算法,该算法包括了backward以及forward两部分调度,实现将任务调度到具体类型的虚拟机,该算法充分考虑到云计算环境下的虚拟机按小时收费特点以及任务之间传输时间限制,在调度具体虚拟机时,不仅可满足任务按照用户所规定的deadline完成、同时可满足用户支付费用最小的需求。通过实验可以看出,本文算法比ICPCP以及BDA算法进一步节约了费用,同时本文算法可在不违反cost约束的情况下,用户可以根据偏好自行选取相应的调度模式。
本方法仿真实验的硬件环境为:Intel Core 1.86GHz CPU,4G内寸,320G硬盘,编程语言为Java。软件环境为win7操作***,Eclipse以及云计算仿真软件Cloudsim仿真器。Cloudsim是由澳大利亚墨尔本大学的网络实验室研究发布的,对云计算开发和仿真具有很好的效果。用ILOG CPLEX解决任务与虚拟机类型的匹配的最小线性二乘问题。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。

Claims (8)

1.一种基于云计算的工作流双向调度方法,其特征在于,该工作流双向调度方法包括:
步骤1,满足工作流在最终时间准时完成的情况下,采用backward算法从工作流的多个任务节点vi的尾节点开始分配调度,得到经过backward算法之后的工作流;
步骤2,在满足所述多个任务节点vi的依赖关系和不超过所述工作流的最终时间的情况下,根据所述多个任务节点vi最早开始时间EST,采用forward算法从经过backward算法之后的工作流的多个任务节点vi的头节点开始对每个任务节点vi进行向前调度;
所述步骤1包括:
步骤S101,计算得到所有任务节点vi的多个工作区间,根据所述工作区间的最迟结束时间LFT将多个所述工作区间从大到小进行排序,从所述任务节点vi的尾节点开始依次执行步骤S102;
步骤S102,当所述任务节点vi的所有直接后继节点所分配的虚拟机的类型相同于所述任务节点vi所映射的虚拟机的类型,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S103;
步骤S103,求出任务节点vi与所述任务节点vi的直接后继节点的传输时间,比较所述任务节点vi的多个直接后继节点的最迟结束时间和所述传输时间之和,得出所述和的最小值所对应的直接后继节点;
步骤S104,当所述和的最小值所对应的直接后继节点所分配的虚拟机的类型与所述任务节点vi所映射的虚拟机的类型相同,且该虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机上,否则,执行步骤S105;
步骤S105,当所述任务节点vi所在类型的已经分配的虚拟机在所述任务节点vi的工作区间内空闲,则将所述任务节点vi分配到该虚拟机中,否则,执行步骤S106;
步骤S106,重新租用所述任务节点vi所在类型的虚拟机,则将所述任务节点vi分配到所述虚拟机中;
所述步骤2包括,
步骤S201,将经过backward算法之后的工作流中的头节点放入集合SET中;
步骤S202,分别计算集合SET中的任务节点vi在步骤1中所分配到的虚拟机以及与所述虚拟机同类的虚拟机的多个空闲时间戳;
步骤S203,根据所述多个空闲时间戳计算得到每个空闲时间所对应的以下因素:最早开始时间影响因素ESTF、浪费时间影响因素WTF和额外租用的费用影响因素ACF;
步骤S204,通过如下公式得到任务最优放置指数:
Index=ESTF×a+WTF×b+ACF×c,
其中,a、b、c是权重,且a、b、c的范围都为[0,1];
步骤S205,比较多个所述空闲时间戳所对应的任务最优放置指数的大小得到最小的最优放置指数,将集合SET中的任务节点vi放入所述最小的最优放置指数所对应的空闲时间戳得到FeasibleSet集合;
步骤S206,当所述任务节点vi有直接后继节点时,将集合SET中的任务节点vi替换成所述任务节点vi的直接后继节点,否则,返回执行步骤S202。
2.根据权利要求1所述的基于云计算的工作流双向调度方法,其特征在于,所述工作区间是从所述任务节点vi的最迟开始时间LST至传输到该任务节点vi的直接后继节点的完成时间之间的区间。
3.根据权利要求2所述的基于云计算的工作流双向调度方法,其特征在于,在所述步骤S102和步骤S103中,当所述直接后继节点为所述任务节点vi的唯一直接后继节点,且所述直接后继节点所分配的虚拟机的类型相同于所述任务节点vi所映射的虚拟机的类型,则所述工作区间省去相邻节点的传输完成时间。
4.根据权利要求1所述的基于云计算的工作流双向调度方法,其特征在于,在所述步骤S203中,计算最早开始时间影响因素ESTF的方法包括:
最早开始时间影响因素ESTF等于实际开始时间AST与最早开始时间之差LST除以最迟开始时间EST。
5.根据权利要求1所述的基于云计算的工作流双向调度方法,其特征在于,在所述步骤S203中,计算浪费时间影响因素WTF的方法包括:
浪费时间影响因素WTF等于在预设周期的时间内左边的空闲时间戳与右边的空闲时间戳的和除以所述预设周期的时间。
6.根据权利要求1所述的基于云计算的工作流双向调度方法,其特征在于,在所述步骤S203中,计算额外租用的费用影响因素ACF的方法包括:
额外租用的费用影响因素ACF等于增加的额外虚拟机的预设周期数乘以预设周期除以所述任务节点vi的工作区间。
7.根据权利要求1-6中任意一项所述的基于云计算的工作流双向调度方法,其特征在于,该工作流双向调度方法还包括步骤3,
根据每个虚拟机的费用price(t)通过如下公式计算已经分配的虚拟机的总费用Costsum
其中,price(t)代表第t种类型虚拟机每小时的收费标准,n表示有n种虚拟机;表示任务节点vi在所分配的t类虚拟机上执行所需要的时间且向上取整。
8.根据权利要求1-6中任意一项所述的基于云计算的工作流双向调度方法,其特征在于,该工作流双向调度方法还包括:将分配调度后的任务节点vi进行标记。
CN201510188745.XA 2015-04-20 2015-04-20 基于云计算的工作流双向调度方法 Active CN104834995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510188745.XA CN104834995B (zh) 2015-04-20 2015-04-20 基于云计算的工作流双向调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510188745.XA CN104834995B (zh) 2015-04-20 2015-04-20 基于云计算的工作流双向调度方法

Publications (2)

Publication Number Publication Date
CN104834995A CN104834995A (zh) 2015-08-12
CN104834995B true CN104834995B (zh) 2018-01-09

Family

ID=53812869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510188745.XA Active CN104834995B (zh) 2015-04-20 2015-04-20 基于云计算的工作流双向调度方法

Country Status (1)

Country Link
CN (1) CN104834995B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105677470B (zh) * 2016-01-07 2019-02-15 中国联合网络通信集团有限公司 虚拟机任务调度方法、虚拟机***
CN105912588A (zh) * 2016-03-31 2016-08-31 中国农业银行股份有限公司 一种基于内存计算的大数据可视化处理方法及***
CN107305658A (zh) * 2016-04-21 2017-10-31 北京京东尚科信息技术有限公司 用于信息***中管理工作流的方法及***
CN106096644B (zh) * 2016-06-08 2019-04-02 杭州电子科技大学 基于概率工作流的相似度度量方法及装置
CN106775932B (zh) * 2016-11-29 2020-01-17 中国人民解放军国防科学技术大学 一种云计算***中随机事件触发的实时工作流调度方法
CN106934537A (zh) * 2017-03-02 2017-07-07 北京工业大学 基于反向工作流调度的子期限获取优化方法
CN108733464B (zh) * 2017-04-18 2021-09-14 华为技术有限公司 一种确定计算任务的调度方案的方法及装置
CN109902901A (zh) * 2017-12-11 2019-06-18 广东智动力知识产权运营有限公司 任务分配方法、装置、存储介质和计算机设备
CN108337697B (zh) * 2018-02-12 2021-06-18 重庆邮电大学 无线网络虚拟化中节点与链路的延迟映射方法
CN112406748B (zh) * 2020-11-19 2023-08-01 广州瑞修得信息科技有限公司 一种车辆数据采集方法、装置及车辆诊断***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567851A (zh) * 2011-12-29 2012-07-11 武汉理工大学 一种云计算环境下安全感知的科学工作流数据布局方法
CN102833310A (zh) * 2012-07-03 2012-12-19 中山大学 一种基于虚拟化技术的工作流引擎集群***
CN103226759A (zh) * 2013-04-25 2013-07-31 中山大学 基于遗传算法的动态云工作流调度方法
CN103268529A (zh) * 2013-04-25 2013-08-28 中山大学 基于集合型离散粒子群优化的云工作流调度方法
CN103365700A (zh) * 2013-06-28 2013-10-23 福建师范大学 一种面向云计算虚拟化环境的资源监测和调整***
CN103473122A (zh) * 2013-08-21 2013-12-25 上海交通大学 一种云计算环境中的工作流***资源调度方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102567851A (zh) * 2011-12-29 2012-07-11 武汉理工大学 一种云计算环境下安全感知的科学工作流数据布局方法
CN102833310A (zh) * 2012-07-03 2012-12-19 中山大学 一种基于虚拟化技术的工作流引擎集群***
CN103226759A (zh) * 2013-04-25 2013-07-31 中山大学 基于遗传算法的动态云工作流调度方法
CN103268529A (zh) * 2013-04-25 2013-08-28 中山大学 基于集合型离散粒子群优化的云工作流调度方法
CN103365700A (zh) * 2013-06-28 2013-10-23 福建师范大学 一种面向云计算虚拟化环境的资源监测和调整***
CN103473122A (zh) * 2013-08-21 2013-12-25 上海交通大学 一种云计算环境中的工作流***资源调度方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Energy EfficientWorkflow Job Scheduling for Green Cloud;Fei Cao 等;《2013 IEEE 27th International Symposium on Parallel & Distributed Processing Workshops and PhD Forum》;20131231;第2218-2221页 *
基于串归约的网格工作流费用优化方法;苑迎春 等;《计算机研究与发展》;20080229;第45卷(第2期);第246-253页 *

Also Published As

Publication number Publication date
CN104834995A (zh) 2015-08-12

Similar Documents

Publication Publication Date Title
CN104834995B (zh) 基于云计算的工作流双向调度方法
Mao et al. Scaling and scheduling to maximize application performance within budget constraints in cloud workflows
CN111480145B (zh) 用于根据基于信用的机制来调度工作负载的***和方法
CN105740051B (zh) 基于改进的遗传算法的云计算资源调度实现方法
US9218213B2 (en) Dynamic placement of heterogeneous workloads
Lucas-Simarro et al. Scheduling strategies for optimal service deployment across multiple clouds
Zhang et al. Optimal posted prices for online cloud resource allocation
CN106789118B (zh) 基于服务等级协议的云计算计费方法
Li et al. Cost-optimal cloud service placement under dynamic pricing schemes
WO2019024445A1 (zh) 地理分布交互服务云资源协同优化方法
CN103064744B (zh) 一种基于SLA的面向多层Web应用的资源优化方法
Mastelic et al. Predicting resource allocation and costs for business processes in the cloud
Quarati et al. Delivering cloud services with QoS requirements: Business opportunities, architectural solutions and energy-saving aspects
Hoseinyfarahabady et al. Handling uncertainty: Pareto-efficient bot scheduling on hybrid clouds
Menouer et al. Scheduling and resource management allocation system combined with an economic model
CN105592160B (zh) 一种云计算环境下面向服务消费者的资源配置方法
Bartolini et al. Proactive workload dispatching on the EURORA supercomputer
Jarray et al. VCG auction-based approach for efficient Virtual Network embedding
Vieira et al. Reducing costs in cloud application execution using redundancy-based scheduling
Depoorter et al. Advance reservation, co-allocation and pricing of network and computational resources in grids
Shrivastava et al. EBTASIC: An Entropy-Based TOPSIS Algorithm for Task Scheduling in IaaS Clouds
Yao et al. An online mechanism for dynamic instance allocation in reserved instance marketplace
Sun et al. An improved budget-deadline constrained workflow scheduling algorithm on heterogeneous resources
Toporkov et al. Coordinated and hindsight resources allocation in distributed computing
Soares et al. Definition of distribution network tariffs considering distribution generation and demand response

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
TR01 Transfer of patent right

Effective date of registration: 20220826

Address after: Room 211, Zone X, Floor 2, Building 1, No. 349, Xicen Street, Qingpu District, Shanghai, 201799

Patentee after: SHANGHAI INASERVICE INFORMATION TECHNOLOGY CO.,LTD.

Address before: 241002 Science and Technology Service Department, No. 189 Jiuhua South Road, Yijiang District, Wuhu City, Anhui Province

Patentee before: ANHUI NORMAL University

TR01 Transfer of patent right