首页> 中国专利> 基于量子粒子群优化算法的多目标工作流动态调度方法

基于量子粒子群优化算法的多目标工作流动态调度方法

摘要

本发明公开了一种基于量子粒子群优化算法的多目标工作流动态调度方法,属于云计算技术领域。本发明步骤包括:输入工作流以及QoS请求;获得虚拟机状态信息和虚拟机间传输信息;设定一个待执行任务集合V’,对V’中的任务调度设定时间、成本和可靠性的目标函数;利用QPSO优化算法为待执行的任务分配最优资源,执行任务后判断任务执行的总时间、总成本和总可靠性是否满足用户的QoS请求;动态更新V’、虚拟机间的传输速度和虚拟机的运行速度。本发明通过动态分割工作流以及动态更新网络带宽信息,较为精确地为工作流任务分配最优资源,使得计算所得时间和成本与实际执行时间和成本误差减小,更能够缩短时间,减少成本以及增强可靠性。

著录项

  • 公开/公告号CN103699446A

    专利类型发明专利

  • 公开/公告日2014-04-02

    原文格式PDF

  • 申请/专利权人 南京信息工程大学;

    申请/专利号CN201310750460.1

  • 发明设计人 马廷淮;储雅;田伟;钟水明;

    申请日2013-12-31

  • 分类号G06F9/50(20060101);

  • 代理机构32206 南京众联专利代理有限公司;

  • 代理人顾进;叶涓涓

  • 地址 210044 江苏省南京市宁六路219号

  • 入库时间 2024-02-19 22:49:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-02-15

    授权

    授权

  • 2014-04-30

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20131231

    实质审查的生效

  • 2014-04-02

    公开

    公开

说明书

技术领域

本发明属于云计算技术领域,具体涉及的是一种基于量子粒子群优化算法、用于动态计 算密集型工作流应用处理的方法。

背景技术

云工作流为云计算的系统性能和运行成本的优化提供了高效可行的解决方案。将工作流 集成到云计算上,不仅减少了云计算的成本,也提高了云服务质量。云工作流的调度是以用 户为中心,选择满足用户提出的服务质量(QoS)请求的最优流程执行,它相当于目标优化 问题。闫歌等人结合云计算的特点,基于改进的异态最早结束时间(SHEFT),提出了一种两 阶段任务调度策略,实现了对完成时间的优化。晏婧提出了一种基于QoS约束的调度算法, 用来解决云环境中调度实例密集型工作流效率不高的问题,在满足截止时间的条件下使执行 成本达到最小。

而实际应用中,往往需要处理多个QoS请求,这时,上述算法不能满足需要。多个QoS 请求可以采用多目标优化问题进行解决,将QoS转化为优化问题中的目标函数和约束条件, 然后进行求解,得到一组最优集,用户从中选择一个解,作为最优服务流程。

粒子群优化算法(PSO)采用惯性权重进行平衡全局搜索和局部搜索,并且具有快速收 敛能力,适合用来求解多目标优化问题,如孙妍姑和吴海波将多目标粒子群算法用在了网格 工作流调度中。但是PSO容易陷入局部最优,孙俊提出了一种具有量子行为的PSO算法, 即量子粒子群算法(QPSO),该算法具有简单、易实现和调节参数少的优点,最重要的是它 具有强大的全局搜索能力。我们知道,云环境是一个动态多变的环境,面对海量的数据传输, 云环境中的网络带宽成为相当紧缺的资源,并且带宽负载也在时刻变化,如果能运用量子粒 子群算法(QPSO)并加以改进,使其能够动态有效地执行工作流应用,则能够满足目前亟待 解决的云计算工作流多目标计算优化问题。

发明内容

为解决上述问题,本发明公开了一种基于量子粒子群优化算法的多目标工作流动态调度 方法,利用QPSO优化算法,通过动态分割工作流以及动态更新网络带宽信息,较为精确地 为工作流任务分配最优资源,使得计算所得时间和成本与实际执行时间和成本误差减小,更 能够缩短时间,减少成本以及增强可靠性。

为了达到上述目的,本发明提供如下技术方案:

步骤10,输入用户提交的工作流以及用户的QoS请求,获取各个任务、任务间的数据依 赖关系以及每个任务对应的数据大小,并将输入的工作流以有向无环图DAG来表示,DAG 图用G={V,E,D}表示,其中:V={v1,v2,…,vn}是任务集,E是任务间的有向边,表示任务间的 数据依赖关系,有向边用<vi,vj>表示,vi被称为vj的父任务,vj被称为vi的子任务,只有当 某个子任务的所有父任务都被执行完成后,才能执行子任务,D={d1,d2,…,dn}表示每个任务对 应的数据大小;获取用户对整个工作流应用的QoS请求,QoS请求中包括{TQoS,CQoS,RAQoS}, 其中TQoS,CQoS,RAQoS分别表示用户对时间、成本和可靠性的QoS请求值,即工作流执行 完后必须达到总时间Ttotal≤TQoS,总成本Ctotal≤CQoS以及可靠性RAtotal≥RAQoS,初始化任务 执行的总时间Ttotal=0,总成本Ctotal=0以及总可靠性RAtotal=0;

步骤20,广播由步骤10所得的工作流中任务集V中各任务计算所需的资源 R={r1,r2,…,rn},各个云提供商发布包含这些资源的虚拟机VM={VM1,VM2,…,VMm}当 前状态信息VMj(vj,pj,fj),其中,vj、pj、fj分别为VMj的运行速度、运行价格和失效率; 并提供VM与VM间的传输数据信息Trk1k2(vtrk1k2,ptrk1k2),其中vtrk1k2表示传输速度,ptrk1k2表示传输价格;本发明对VM状态信息的描述采用三元组,对VM与VM间的传输数据信息 描述采用二元组,并且对在VM上执行任速度和执行价格以及VM间的传输速度和传输价格 采用单位制形式,适用于各种工作流任务执行时采用该信息且不需要对任务在该资源上执行 进行预估。

步骤30,设定一个待执行任务集合V’,将父任务已经执行完毕的子任务或没有父任务的 任务放入V’中,针对V’中的每个任务,根据虚拟机当前状态信息以及虚拟机间的传输速度, 利用任务需要执行的数据量,对V’中的任务调度设定时间、成本和可靠性的目标函数,所述 目标函数中根据用户对时间、成本和可靠性的偏好进行权重运算,所述任务需要执行的数据 量包括父任务传输给当前任务的数据量和当前任务自身的数据量;

步骤40,根据步骤30中获得的目标函数,采用QPSO优化算法为V’中的任务选择当前 最适宜的虚拟机;使V’中任务尽可能获得最小执行时间、最小成本以及最大可靠性。

步骤50,当经过步骤40的QPSO优化算法获取当前最适宜虚拟机后,将V’中的任务分 配到相应虚拟机上执行,并获取V’中任务执行的实际总执行时间T、总成本C和总可靠性R, 选取其中最大的执行时间作为这次V’中任务执行的总时间T,将每个任务的执行成本之和作 为本次V’中任务执行的总成本C,将每个任务的可靠性之积作为本次V’中任务执行的总可靠 性R,并将它们累计到Ttotal、Ctotal和RAtotal中;

步骤60,根据步骤50得到的Ttotal、Ctotal和RAtotal,判断是否 Ttotal≤TQoS&&Ctotal≤CQoS&&RAtotal≥RAQoS,如果不满足上式,则记录违反QoS请求的行为;

步骤70,获取任务的完成状态,如果有任务的父任务已经全部完成,则更新待执行集合 V’;然后根据当前网络负载更新虚拟机间的传输速度,并根据当前虚拟机的负载更新虚拟机 的运行速度;

步骤80,当待执行集合V’中还有任务未完成时,根据最新的虚拟机当前状态信息和虚拟 机间的传输数据信息,再次执行步骤40直至V’中不存在待执行的任务。

更进一步的,所述设定时间、成本和可靠性的目标函数的过程具体包括如下步骤:

步骤301,设定时间目标函数:

Time=min(Ttr+Tcom)=min(ΣiVΣk1,k2VMxk1k2di.prevtrk1k2+ΣiVΣjVMxijdi.pre+divj)

其中,Ttr为传输时间与Tcom为计算时间,di.pre表示父任务执行完后需要传输给子任务 的数据量,di.pre+di表示父任务的数据量与子任务vi的数据量之和;xk1k2∈{0,1},当选择 VMk1和VMk2执行任务时其值为1,否则为0;xij∈{0,1},当任务vi选择VMj执行时,其值 为1,否则为0;

步骤302,设定成本目标函数:

Cost=min(Ctr+Ccom)=min(ΣiVΣk1,k2VMxk1k2di.prevtrk1k2ptrk1k2+ΣiVΣjVMxijdi.pre+divjpj)

步骤303,设定可靠性目标函数:

RA=max(ΠjVMxij(1-fj))

其中,1-fj为VMj的可靠性;

步骤304,根据用户对时间、成本和可靠性的偏好(Qt、Qc、Qr),采用加权法将时间、 成本、可靠性目标函数合并为:

f(X)=QtTime+QcCost+QrRA。

更进一步的,所述步骤70中获取任务的完成状态之前等待一个轮询时间。

本发明提供的方法具有如下优点和有益效果:利用量子粒子群(QPSO)优化算法,在满 足用户多个QoS请求的同时,追求最优执行时间和成本消耗;并采取动态有效的方法来执行 工作流应用,从而能够以较快速度搜索到尽可能最优的资源,并且能够随着网络及资源的状 态进行动态调整,还减少了任务在虚拟机上执行时间的预估。相对于一般的云工作流调度方 法,能够在多变的云环境中更精确的得到执行时间和成本,并且使执行时间最短,执行成本 最低,特别适合用来处理对计算能力要求高的大型应用。

附图说明

图1为本发明提供的量子粒子群优化算法的多目标云计算工作流调度方法流程示意图;

图2为云工作流的结构图;

图3为云提供商提供的VM信息示意图;

图4为VM与VM之间的传输成本示意图;

图5为QPSO优化算法流程图;

具体实施方式

以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方 式仅用于说明本发明而不用于限制本发明的范围。

本实施案例动态分割云计算工作流,然后采用量子粒子群优化算法为工作流任务分配当 前最优资源,进而使得工作流的执行时间、成本以及可靠性最优。

如图1所示,本发明提供的方法包含如下步骤:

步骤10,输入用户提交的工作流V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12}以及用户的 QoS请求{1h,100﹩,98%}。本实施例的工作流包含12个任务,将输入的工作流以如图2 所示的有向无环图DAG来表示。其中:V={v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11,v12}是任务集, 任务之间通过有向边连接(以带箭头的实线表示),表示任务间的数据依赖关系,以一对有向 边<v1,v3>为例,其中v1被称为v3的父任务,v3被称为v1的子任务,一个子任务可能有多个 父任务,一个父任务也可能有多个子任务,只有当某个子任务的所有父任务都被执行完成后, 才能执行子任务。D={10G,13G,12G,10G,14G,10G,15G,11G,12G,16G,15G,13G}表示各 个任务对应的数据大小。用户QoS请求表明用户要求工作流执行完后必须达到总时间 Ttotal≤1h,总成本Ctotal≤100﹩,可靠性RAtotal≥98%。初始化任务执行的总时间Ttotal=0,总 成本Ctotal=0以及总可靠性RAtotal=0。

步骤20,广播由步骤1)所得的工作流中任务集V中各任务计算所需的资源R={r1,r2,r3,r4, r5,r6,r7,r8,r9,r10,r11,r12},本例中具有3个云提供商:Cloud Provider1,Cloud Provider2,Cloud  Provider3,Cloud Provider1中的虚拟机{VM1,VM2,VM3}含有任务所需资源,Cloud  Provider2中的虚拟机{VM4,VM5,VM6,VM7}含有任务所需资源,Cloud Provider3中的虚 拟机{VM8,VM9}含有任务所需资源。各个云提供商发布上述这些虚拟机针对任务所需各资 源{r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12}的运行速度、运行价格和失效率VMj(vj,pj,fj),如图3所 示;并提供虚拟机与虚拟机间的传输数据信息Trk1k2(vtrk1k2,ptrk1k2),如图4所示,其中vtrk1k2表示传输速度,单位为MB/s,ptrk1k2表示传输价格,单位为﹩/s。VM与VM之间的传输特点 为:同一个VM的数据传输速度与价格忽略不计,同一个云提供商内的VM间传输速度高、 价格低,不同云之间的VM间传输速度低、价格高。

步骤30,设定一个待执行任务集合V’,将父任务已经执行完毕的子任务或没有父任务的 任务放入V’中,等待分配到合适的资源进行运行。本例中V’的初始值为{v1,v2}然后,要对 V’中的任务调度设定时间、成本和可靠性目标函数,从而在后续步骤中获得使V’中任务执 行时间最短、执行成本最小、执行可靠性最高的资源分配方案。设置目标函数步骤如下:

步骤301,获得使V’中任务执行时间最短的资源分配方案。由于V’中的任务属于并行任 务,可以并行执行,因此针对每个任务,我们采用求总时间最短的方法来尽量获取使时间最 优的方案。每个任务的执行总时间Time等于传输时间Ttr与计算时间Tcom之和,实际父任务 到子任务vi的传输时间其中,di.pre表示父任务执行完后的数据量,即需 要传输给子任务的数据量。任务vi的计算时间tcomi=(di.pre+di)/vj,di.pre+di表示父任务的 数据量与子任务vi的数据量之和。综上所述,求V’中任务执行时间最短的时间目标函数为:

Time=min(Ttr+Tcom)=min(ΣiVΣk1,k2VMxk1k2di.prevtrk1k2+ΣiVΣjVMxijdi.pre+divj)---(1)

其中xk1k2∈{0,1},当选择VMk1和VMk2执行任务时其值为1,否则为0;xij∈{0,1},当 任务vi选择VMj执行时,其值为1,否则为0。

步骤302,获得使V’中任务执行成本最小的资源分配方案。总成本Cost等于传输成本Ctr与计算成本Ccom之和。实际父任务到子任务vi的传输成本任务vi的计算成 本ccomi=tcomipj。综上所述,求V’中任务执行成本最小的成本目标函数为:

Cost=min(Ctr+Ccom)=min(ΣiVΣk1,k2VMxk1k2di.prevtrk1k2ptrk1k2+ΣiVΣjVMxijdi.pre+divjpj)---(2)

步骤303,获得使V’中任务执行可靠性最高的资源分配方案。VMj的可靠性raj=1-fj,VM 的总可靠性等于各VM可靠性的乘积。因此,求V’中任务执行的最大可靠性目标函数为:

RA=max(ΠjVMxij(1-fj))---(3)

步骤304,根据用户对时间、成本和可靠性的偏好(Qt、Qc、Qr),采用加权法将多目标 问题转化为单目标问题来解决。可以将目标函数(1)(2)(3)合并为:

f(X)=QtTime+QcCost+QrRA                   (4)

其中,X为VMj(vj,pj,fj);(Qt,,Qc,Qr)的默认值为(0.1,0.8,0.1),此时算法在保证 时间和可靠性的同时,偏重于减少成本开销。用户还可以根据自己的偏好,取其他值,例如 表1所示:

(Qt,Qc,Qr解释 (1,0,0) 只要求时间达到最优 (0,1,0) 只要求成本达到最优 (0,0,1) 只要求可靠性达到最优 (1/3,1/3,1/3) 时间、成本、可靠性的偏好度相同 (0.8,0.1,0.1) 在保证成本和可靠性的同时,尽量使时间达到最优 (0.1,0.8,0.1) 在保证时间和可靠性的同时,尽量使成本达到最优 (0.1,0.1,0.8) 在保证时间和成本的同时,尽量使可靠性达到最优

表1

步骤40,采用QPSO优化算法为V’中任务选择最优的资源,设置粒子群维数D等于待执 行任务集V’中任务的个数,各提供商提供的资源VM={VM1,VM2,…,VMm}数即为粒子 数m,最大迭代数maxgen默认值为100,Pi(t)表示第t次迭代时第i个粒子的当前最佳位置, Pg(t)表示第t次迭代时的全局最佳位置。QPSO算法流程如图5,过程描述如下:

步骤401,初始化种群,随机初始化m个粒子的初始位置Xi(0),并令各个粒子的当前最 佳位置为:Pi(0)=Xi(0),令全局最佳位置为:

Pg(0)=min{X1(0),X2(0),…,Xm(0)}

步骤402,根据目标函数f计算式即式(4),计算每个粒子的适应度。

步骤403,按照下式更新每个粒子的新局部最优位置Pi(t+1):

Pi(t+1)=Pi(t);if>(Pi(t))f(Xi(t+1))Xi(t+1);if>(Pi(t))<f(Xi(t+1))

步骤404,按照下式更新全局最优位置Pg(t+1):

Pg(t+1)=min{P1(t+1),P2(t+1),...,Pm(t+1)}

步骤405,按照下式计算粒子群中所有粒子第t次迭代时当前最佳位置pbest(t)的中间位置 mbest(t+1):

mbest(t+1)=1mΣi=1mPi(t)=(1mΣi=1mPi1(t),1mΣi=1mPi2(t),...,1mΣi=1mPiD(t))

步骤406,按照下式计算Pi(t)和Pg(t)之间的随机点PPi(t+1):

PPij(t+1)=fij(t+1)×Pij(t)+(1-fij(t+1)×Pgj(t))

其中,fij(t+1)=radf(),函数radf()产生一个[0,1]之间随机数。

步骤407,按照下式更新每个粒子的新位置Xi(t+1);

Xij(t+1)=PPij(t+1)+Rand(t+1)×a(t+1)×|mbestj(t+1)-Xij(t)|×ln(1uij(t+1))

其中,uij(t+1)=radf(),Rand(t+1)以一定的概率分别取-1和1,这里采用如下方法:

Rand(t+1)=-1if>()0.5+1if>()>0.5

a(t)为QPSO的收缩扩张系数,取值视情况而定,一般按照下式取值:

a(t)=m-(m-n)×tmaxgen

通常,m=1,n=0.5,此处,根据maxgen默认值为100,则a(t)=1-t/200。

步骤408,判断是否满足终止条件即是否达到最大迭代次数maxgen,如果是,就终止优 化,否则就重复计算步骤402到步骤407。

至此即可获得最适宜各任务运行的虚拟机。

步骤50,经过步骤40的QPSO优化算法获取当前最适宜虚拟机后,将V’中的任务分配 到相应虚拟机上执行。任务执行后,首先会产生需要传输给子任务的数据量,将这新的数据 量代替原有的数据量存入集合D中;然后每个任务都有各自实际执行时间,选取其中最大的 执行时间作为这次V’中任务执行的总时间T,因此Ttotal=Ttotal+T;其次将每个任务的执行成 本之和作为本次V’中任务执行的总成本C,因此Ctotal=Ctotal+C,将每个任务的可靠性之积作 为本次V’中任务执行的总可靠性R,因此RAtotal=RAtotal×R。

步骤60,根据步骤50得到的Ttotal、Ctotal和RAtotal,判断是否 Ttotal≤TQoS&&Ctotal≤CQoS&&RAtotal≥RAQoS,如果是,就继续执行,否则记录违反QoS请求 的行为,然后继续将任务执行完成。

步骤70,此时调度器会等待一个轮询时间(默认为1s),在这个时间段里,可以获取任务 的完成状态,如果有任务的父任务已经全部完成,那就更新待执行集合V’。在本例中,第 一轮V’={v1,v2}执行完后,则将V’更新为{v3,v4,v5}。由于带宽负载也在时刻变化,所以 需要根据当前网络负载更新虚拟机间的传输速度,并根据当前虚拟机的负载更新虚拟机的运 行速度。

步骤80,因为步骤70中更新了待执行集合V’、传输成本和运行速度,所以需要重新采 用QPSO算法计算出最合适虚拟机,将待执行集合中的任务分配给该虚拟机进行执行,即再 次执行步骤40。如果集合V’中不存在待执行的任务,说明工作流已经执行完毕。

本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上 技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在 不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的 保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号