CN110928648A - 融合启发式和智能计算的云工作流分段在线调度优化方法 - Google Patents

融合启发式和智能计算的云工作流分段在线调度优化方法 Download PDF

Info

Publication number
CN110928648A
CN110928648A CN201911261580.9A CN201911261580A CN110928648A CN 110928648 A CN110928648 A CN 110928648A CN 201911261580 A CN201911261580 A CN 201911261580A CN 110928648 A CN110928648 A CN 110928648A
Authority
CN
China
Prior art keywords
task
virtual machine
time
scheduling
vatl
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
Application number
CN201911261580.9A
Other languages
English (en)
Other versions
CN110928648B (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.)
Tanxun Intelligent Technology Hangzhou Co ltd
Tongxiang Beite Technology Co ltd
Original Assignee
Zhejiang Gongshang 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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN201911261580.9A priority Critical patent/CN110928648B/zh
Publication of CN110928648A publication Critical patent/CN110928648A/zh
Application granted granted Critical
Publication of CN110928648B publication Critical patent/CN110928648B/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/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
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)启发式方法,是指工作流任务分配和执行顺序都用启发式方法生成,如:Heterogeneous Earliest Finish Time即HEFT、Critical Path On a Processors即CPOP、Levelized Min Time即LMT、Dynamic Level Scheduling即DLS、Dynamic Critical Path即DCP、Longest Dynamic Critical Path即LDCP等方法;
2)智能计算方法,是指工作流任务分配和执行顺序都通过智能计算方法来搜索生成;如:遗传算法GA、粒子群优化算法PSO、模拟退火算法SA等方法;
3)结合启发式的半智能计算方法,是指工作流任务分配通过智能计算方法来搜索生成而任务执行顺序则根据智能计算方法搜索生成的任务分配方案采用基于优先级的启发式方法生成,或工作流任务执行顺序通过智能计算方法来搜索生成而任务分配则根据智能计算方法搜索生成的任务执行顺序通过基于任务最早完成时间的启发式方法来生成。
然而,现有的这些云工作流调度优化方法有着如下缺点:
1)启发式方法能在较短的时间获得一个调度优化方案,适用于在线实时调度,但其质量通常不是很高而且依赖于工作流的类型;
2)智能计算方法的算法效率依赖于编码与解码、进化迭代策略的设计及控制参数的选择等,其中,结合启发式的半智能计算方法搜索的解空间即调度方案是不完整的,因此其理论上存在搜索不到最优调度方案的可能性,同时在算法中需要不断调用启发式方法,其时间效率也不是很高;智能计算方法其理论上可以实现全域搜索,但采用全域搜索会导致搜索效率降低;总体来说智能计算方法的求解质量要优于启发式方法,但其求解时间要高于启发式方法,并不适用于在线实时调度优化;
因此,亟需设计一种更高效方法来解决云工作流在线实时调度优化问题。
发明内容
为了克服启发式方法解的质量通常不是很高而且依赖于工作流的类型,而智能计算方法时间效率不高并不适用于在线实时调度优化,本发明提供了一种既能适用于在线实时调度又能发现高质量解的云工作流调度优化方法。
本发明解决其技术问题所采用的技术方案如下:一种融合启发式和智能计算的云工作流分段在线调度优化方法,包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
Figure BDA0002311737280000021
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure BDA0002311737280000022
获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
获取虚拟机相关参数:虚拟机j的计算能力vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,2…,J;
获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
步骤2:计算任务的排序值rank;
先计算ti执行时的平均处理时间
Figure BDA0002311737280000031
需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311737280000032
需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA0002311737280000033
ti执行时的平均处理时间计算如下:
Figure BDA0002311737280000034
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure BDA0002311737280000035
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure BDA0002311737280000036
其中
Figure BDA0002311737280000037
Figure BDA0002311737280000038
和ti间的文件平均传输时间,其计算如下:
Figure BDA0002311737280000039
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
Figure BDA00023117372800000310
其它任务的排序值rank采用如下递归公式进行计算:
Figure BDA00023117372800000311
步骤3:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
leveli=1 (7)
其它任务的层次值采用如下递归公式进行计算:
Figure BDA0002311737280000041
步骤4:基于动态关键任务优先调度的启发式方法生成第一阶段的任务调度方案;
所述基于动态关键任务优先调度的启发式方法生成第一阶段的任务调度方案包括如下步骤:
步骤A1:系统状态初始化:令虚拟机可得时间段列表vatl′j={[0,M]},j=1,2,…,J,其中M为一个接近无穷大的数;令任务的就绪时间rt′i=0、任务集P(ti)=PRi,i=1,…,I;令变量k=1;令任务集
Figure BDA0002311737280000042
UT=T;把UT中
Figure BDA0002311737280000043
的ti移到RT中;
步骤A2:从RT中取出优先级
Figure BDA0002311737280000044
最大的ti;如果ti的就绪时间rti′小于ξ,那么转到步骤A3,否则转到步骤A7;
步骤A3:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A3.2:计算ti分配给vmj处理后的执行时间
Figure BDA0002311737280000045
步骤A3.3:在vatl′j中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rt′i
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rt′i},完成时间fi,j=si,j+eti,j
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:若对于任意vmj∈VMi,si,j≥ξ,那么转到步骤A7;否则在满足si,j<ξ的虚拟机中按顺序找出能最早完成ti的虚拟机,不妨设为vmj,转到步骤A5;
步骤A5:把ti分配给vmj
步骤A5.1:令ST=ST∪ti,g′I+k=i,g′i=j,k=k+1;ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A5.2:在虚拟机可得时间段列表vatl′j中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A5.3:更新ti的子任务的就绪时间
Figure BDA0002311737280000051
步骤A6:在所有
Figure BDA0002311737280000052
中删除ti;把UT中
Figure BDA0002311737280000053
Figure BDA0002311737280000054
移到RT中;
步骤A7:如果RT不为空,则转到步骤A2,否则转到步骤A8;
步骤A8:完成第一阶段的调度,获得已调度的任务集ST,已调度任务的虚拟机分配g′i、完成时间fi,ti∈ST,已调度任务的调度顺序g′I+k,1≤k≤|ST|,及完成第一阶段任务调度后虚拟机的可得时间段列表vatl′j和所有任务的就绪时间rt′i
其中:
Figure BDA00023117372800000514
是当ti的父任务的虚拟机分配已确定的情况下ti执行时需要从虚拟机获得输入文件的平均传输时间,
Figure BDA0002311737280000055
Figure BDA0002311737280000056
是处理
Figure BDA0002311737280000057
的虚拟机;
ξ:是第一阶段与第二阶段的临界点,即遗传算法获得一个优化调度方案所需的时间;
ωi,j:是vmj处理ti的时间,
Figure BDA0002311737280000058
Figure BDA0002311737280000059
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure BDA00023117372800000510
Figure BDA00023117372800000511
是处理
Figure BDA00023117372800000512
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure BDA00023117372800000513
步骤5:基于遗传算法获得第二阶段任务的调度方案;
步骤5.1:采用基于层次的个体随机生成方法生成N个不同的个体形成当代种群;
所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数,其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi,i=1,…,I,例如:g1=2表示1号任务是分配给2号虚拟机的;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的,例如gI+1=3,表示第1个调度的任务是3号任务;由于ti∈ST在第一阶段已调度,因此对于任何一个个体始终有:
Figure BDA0002311737280000061
gi=g′i
Figure BDA0002311737280000062
gI+k=g′I+k
所述采用基于层次的个体随机生成方法包括如下步骤:
步骤B1:令任务集UT=T-ST;令所有任务的就绪时间rt″i=rt′i,i=1,…,I;初始化虚拟机的可得时间段列表vatl″j=vatl′j,j=1,2,…,J;令基因gi=g′i,ti∈ST;令基因gI+k=g′I+k,1≤k≤|ST|;令变量δ=|ST|+1;
步骤B2:从UT中随机取出一个层次值最小的任务,不妨设为ti
步骤B3:从VMi中随机选择一个虚拟机,不妨设为vmj,把ti分配给vmj
步骤B3.1:令gI+δ=i,gi=j,δ=δ+1;
步骤B3.2:计算ti分配给vmj处理后的执行时间
Figure BDA0002311737280000063
步骤B3.3:在vatl″j中从早到晚找出一个可得时间段[νjj],满足υjj≥eti和υj-eti≥rt″i
步骤B3.4:计算ti分配给vmj处理后的开始时间si=max{νj,rt″i},完成时间fi=si+eti
步骤B3.5:在虚拟机可得时间段列表vatl″j中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤B3.6:更新ti的子任务的就绪时间
Figure BDA0002311737280000064
步骤B4:如果UT不为空,则转到步骤B2,否则转到步骤B5;
步骤B5:输出一个个体ch={g1,…,gI,gI+1,…,g2I},计算其适应度值,操作结束;
步骤5.2:对当代种群进行N次基于偏好的参数化均匀交叉操作生成新种群,对新种群中的每个个体采用单点变异操作;
所述基于偏好的参数化均匀交叉操作包括如下步骤:
步骤C1:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体,不妨设为chp1、chp2,且chp1优于chp2;令变量δ=1、子体
Figure BDA0002311737280000071
步骤C2:如果δ≤I+|ST|,则转到步骤C3;如果I+|ST|<δ≤2I,则转到步骤C4;如果δ>2I则转到步骤C5;
步骤C3:生成一个随机数λ∈[0,1),如果λ<pb,那么从chp1中取出首元素放到chc的尾部,并从chp2中删除首元素,否则从chp2中取出首元素放到chc的尾部,并从chp1中删除首元素;δ=δ+1,转到步骤C2;
步骤C4:生成一个随机数λ∈[0,1),如果λ<pb,那么从chp1中取出首元素放到chc的尾部,并从chp2中删除该元素,否则从chp2中取出首元素放到chc的尾部,并从chp1中删除该元素;δ=δ+1,转到步骤C2;
步骤C5:输出子体
Figure BDA0002311737280000072
操作结束;
其中,pb∈(0.5,1)为偏好概率;
所述单点变异操作包括如下步骤:
步骤D1:产生一个随机数λ1∈[0,1),如果λ1<pm,则转步骤D2,否则转步骤D5;
步骤D2:产生一个随机数λ2∈[0,1),如果λ2<0.5,则从i≤I且
Figure BDA0002311737280000073
中随机选择一个基因gi转到步骤D3,否则从i>I+|ST|中随机选择一个基因gi转到步骤D4;
步骤D3:从可以处理任务i的VMi中重新随机选择一个虚拟机vmj,gi=j,转到步骤D5;
步骤D4:如果在T-ST中存在任务gi的父任务,那么从gi开始向前找到任务gi的第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+|ST|+1;如果在T-ST中存在任务gi的子任务,从gi开始向后找到任务gi的第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I,在[pos1,pos2]之间重新随机选择一个位置插入gi
步骤D5:变异操作结束;
其中:pm∈[0,1)是变异率;
步骤5.3:对新种群中的每个个体采用基于插入模式的串行个体解码和LDI方法改进;
所述基于插入模式的串行个体解码包括如下步骤:
步骤E1:令所有任务的就绪时间rt″i=rt′i,i=1,…,I;初始化虚拟机的可得时间段列表vatl″j=vatl′j,j=1,2,…,J;令变量k=|ST|+1;
步骤E2:选取编号为gI+k的任务,不妨设i=gI+k
步骤E3:基于插入模式把任务i分配给虚拟机gi
步骤E3.1:计算任务i的执行时间
Figure BDA0002311737280000081
步骤E3.2:在
Figure BDA00023117372800000811
中从早到晚找出一个空闲时段
Figure BDA0002311737280000089
满足
Figure BDA00023117372800000812
Figure BDA00023117372800000810
步骤E3.3:
Figure BDA00023117372800000813
fi=si+eti
Figure BDA0002311737280000082
步骤E3.4:在虚拟机可得时间段列表vatl″j中删除
Figure BDA0002311737280000087
插入区间长度大于0的
Figure BDA0002311737280000088
Figure BDA00023117372800000814
步骤E4:令k=k+1,如果k≤I则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的开始时间和完成时间:si、fi,i=1,…,I,计算适应度值;操作结束;
所述LDI方法包括如下步骤:
步骤F1:计算各虚拟机负载
Figure BDA0002311737280000083
步骤F2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤F3,否则转到步骤F4;
步骤F3:令任务集
Figure BDA0002311737280000084
转到步骤F5;
步骤F4:令任务集DTj′=Tj′-ST,转到步骤F5;
步骤F5:如果DTj′不为空,则从DTj′中按顺序取出一个其所在虚拟机j″的负载是最高的任务i′,转到步骤F6;否则转到步骤F7;
步骤F6:令gi′=j′,形成新的个体
Figure BDA0002311737280000085
采用基于插入模式的串行个体解码方法对
Figure BDA0002311737280000086
进行解码,如果有改进则用此改进的个体替换原个体,转到步骤F7;否则转到步骤F5;
步骤F7:LDI操作结束;
步骤5.4:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
步骤5.5:令下一代种群为当代种群;判断是否满足进化终止条件,如满足,则转到步骤6,否则,转到步骤5.2;
所述终止条件为运行到第一阶段与第二阶段的临界点ξ;
步骤6:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
进一步的,所述适应度值为工作流响应时间rs,其计算方法如下:
Figure BDA0002311737280000091
其中:rfi是任务i的响应时间,
Figure BDA0002311737280000092
SFLi是任务i输出给共享数据库的输出文件集,即
Figure BDA0002311737280000093
适应度值越小,个体越优。
进一步的,所述步骤C1中采用锦标赛法从当代种群中随机选择一个个体的具体步骤如下:首先从当代种群中随机选择2个不同的个体,然后根据适应度值比较这两个个体的优劣,返回优的个体。
本发明的有益效果在于:
(1)本发明采用融合启发式和智能计算的分段调度优化方法,求解时间即响应时间等于启发式方法的求解时间,而解的质量则近似于用智能计算方法求解的质量,因此本发明提出的技术方案在能适应实时在线调度的情况下,有效提高了解的质量。
(2)在生成第一阶段的任务调度方案的过程中,相对传统的启发式调度方法,本发明设计采用的任务优先级会随着调度的进行而不断调整,能更好地反映当前未调度任务的紧急程度,因此通常其找到更好的调度方案。
(3)在用遗传算法获得第二阶段的调度方案中,相对于结合启发式的半智能计算方法及基于分层编码的智能计算方法,本发明设计采用的一维编码方法,任何一个调度方案都可以有一个个体与之对应,因此其搜索空间是完备的,可以实现全域搜索。
(4)在用遗传算法获得第二阶段的调度方案中,相对于基于非插入模式和并行的解码方法,本发明设计采用的基于插入模式的尽可能早地安排任务执行的串行解码方法通常能找到更好的调度方案。
(5)在用遗传算法获得第二阶段的调度方案中,相对于一般的基于优先级的编码方式,本发明设计采用的基于拓扑排序的任务调度顺序编码方法,考虑了任务之间的时序关系,这样解码方法就比较简单,能有效提高解码的效率,进而提高了算法的整体效率。
(6)在用遗传算法获得第二阶段的调度方案中,本发明设计采用了考虑传输时间的负载均衡策略LDI,增强了个体的邻域寻优能力,从而能提高整个算法的寻优能力和搜索效率。
(7)在用遗传算法获得第二阶段的调度方案中,相对于传统的随机初始化方法,本发明基于层次的随机个体生成方法,这样可以使算法可以在最优方案附近开始搜索,从而缩短算法的收敛时间。
(8)在用遗传算法获得第二阶段的调度方案中,针对提出的一维整数编码方法,本发明设计了一种新的简单而有效的交叉和变异方法,如果父体是有效合法的,那么用该方法能确保生成的子体也是有效的合法的。
附图说明
图1是本发明一种融合启发式和智能计算的云工作流分段在线调度优化方法的流程示意图。
图2是本发明实施例中Montage工作流任务间的时序关系图。
具体实施方式
下面结合图1、图2及实施例对本发明做进一步详细说明,但本发明并不仅限于以下的实施例。
假设一个云计算中心有编号为1至6的6台虚拟机可供使用,虚拟机vm1,vm2,…,vm6的处理能力和带宽如表1所示;一个Montage工作流任务间的时序关系如图2所示,由编号为1至15的15个任务组成,任务t1,t2,…,t15的执行长度,处理所需要的输入文件和处理后的输出文件的名称、长度以及可以被处理的虚拟机如表2所示。
虚拟机 处理能力(MI/s) 带宽(Mbit/s) 虚拟机 处理能力(MI/s) 带宽(Mbit/s)
vm<sub>1</sub> 1000 200 vm<sub>4</sub> 2000 300
vm<sub>2</sub> 1000 200 vm<sub>5</sub> 3000 400
vm<sub>3</sub> 2000 300 vm<sub>6</sub> 3000 400
表1
Figure BDA0002311737280000101
Figure BDA0002311737280000111
表2
针对上述案例,如图1所示,一种融合启发式和智能计算的云工作流分段在线调度优化方法,包括以下实施步骤:
执行步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
获取任务间的时序关系,即任务i的父任务集PRi和子任务集SCi
Figure BDA0002311737280000112
Figure BDA0002311737280000113
PR4={t1},PR5={t1,t2},PR6={t1,t3},PR7={t4,t5,t6},PR8={t7},PR9={t1,t8},PR10={t2,t8},PR11={t3,t8},PR12={t9,t10,t11},PR13={t12},PR14={t13},PR15={t14};SC1={t4,t5,t6,t9},SC2={t5,t10},SC3={t6,t11},SC4={t7},SC5={t7},SC6={t7},SC7={t8},SC8={t9,t10,t11},SC9={t12},SC10={t12},SC11={t12},SC12={t13},SC13={t14},SC14={t15},
Figure BDA0002311737280000121
获取任务的相关参数:t1.length=126000MI,t1.IFL={fd1,fd2},t1.OFL={f1-1,f1-2};t2.length=138000MI,t2.IFL={fd1,fd3},t2.OFL={f2-1,f2-2};t3.length=132000MI,t3.IFL={fd1,fd4},t3.OFL={f3-1,f3-2};t4.length=102000MI,t4.IFL={fd1,f1-1,f1-2},t4.OFL={f4-1,f4-2};……;t15.length=7800MI,t15.IFL={f14-1},t15.OFL={f15-1};fd1.size=36MB,fd2.size=4320MB,f1-1.size=3960MB,f1-2.size=3960MB,……,f14-1.size=1560MB,f15-1.size=420MB;
获取云计算环境下的虚拟机集:VM={vm1,vm2,vm3,vm4,vm5,vm6};
获取虚拟机相关参数:vm1.ps=1000MI/s,vm1.bw=200Mbit/s;vm2.ps=1000MI/s,vm2.bw=200Mbit/s;vm3.ps=2000MI/s,vm3.bw=300Mbit/s;vm4.ps=2000MI/s,vm4.bw=300Mbit/s;vm5.ps=3000MI/s,vm5.bw=400Mbit/s;vm6.ps=3000MI/s,vm6.bw=400Mbit/s;
获取任务与虚拟机之间的支持关系:T1={t1,t2,t3,t4,t5,t6,t9,t13,t15},T2={t3,t5,t7,t9,t10,t11,t14},T3={t2,t3,t4,t6,t9,t11,t12},T4={t1,t2,t4,t6,t7,t8,t9,t10,t11,t12,t14},T5={t1,t2,t3,t4,t6,t7,t8,t9,t12,t14},T6={t1,t4,t5,t8,t11,t13,t14,t15};VM1={vm1,vm4,vm5,vm6},VM2={vm1,vm3,vm4,vm5},VM3={vm1,vm2,vm3,vm5},VM4={vm1,vm3,vm4,vm5,vm6},VM5={vm1,vm2,vm6},VM6={vm1,vm3,vm4,vm5},VM7={vm2,vm4,vm5},VM8={vm4,vm5,vm6},VM9={vm1,vm2,vm3,vm4,vm5},VM10={vm2,vm4},VM11={vm2,vm3,vm4,vm6},VM12={vm3,vm4,vm5},VM13={vm1,vm6},VM14={vm2,vm4,vm5,vm6},VM15={vm1,vm6}。
执行步骤2:计算任务的排序值rank;
首先,计算ti执行时的平均处理时间
Figure BDA0002311737280000122
Figure BDA0002311737280000131
Figure BDA0002311737280000132
同理可得
Figure BDA0002311737280000133
结果如表3所示:
Figure BDA0002311737280000134
表3
计算ti执行时需要从共享数据库获得输入文件的平均传输时间
Figure BDA0002311737280000135
Figure BDA0002311737280000136
Figure BDA0002311737280000137
同理可得
Figure BDA0002311737280000138
结果如表4所示:
Figure BDA0002311737280000139
表4
计算
Figure BDA00023117372800001310
和ti间的文件平均传输时间:
Figure BDA00023117372800001311
Figure BDA00023117372800001312
同理可得其它任务间的文件平均传输时间,结果如表5所示:
Figure BDA00023117372800001313
表5
计算ti执行时需要从其它虚拟机获得输入文件的平均传输时间
Figure BDA00023117372800001314
Figure BDA0002311737280000141
Figure BDA0002311737280000142
Figure BDA0002311737280000143
同理可得
Figure BDA0002311737280000144
结果如表6所示:
Figure BDA0002311737280000145
表6
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
Figure BDA0002311737280000146
其它任务的rank采用如下递归公式进行计算:
Figure BDA0002311737280000147
Figure BDA0002311737280000148
同理,可得rank12,……,rank1,结果如表7所示:
rank<sub>1</sub> rank<sub>2</sub> rank<sub>3</sub> rank<sub>4</sub> rank<sub>5</sub> rank<sub>6</sub> rank<sub>7</sub> rank<sub>8</sub>
4095.28 4114.79 4047.06 3371.56 3401.40 3383.72 3290.80 3287.52
rank<sub>9</sub> rank<sub>10</sub> rank<sub>11</sub> rank<sub>12</sub> rank<sub>13</sub> rank<sub>14</sub> rank<sub>15</sub>
3011.03 3025.03 2998.03 2314.36 2302.63 69.55 5.20
表7
执行步骤3:计算任务的层次值;
任务1、任务2和任务3均没有父任务,则level1=level2=level3=1;
任务4只有一个父任务1,则
Figure BDA0002311737280000149
同理,可以获得其它任务的层次值:level5=level6=2;level7=3;level8=4;level9=level10=level11=5;level12=6;level13=7;level14=8;level15=9。
执行步骤4:基于动态关键任务优先调度的启发式方法生成第一阶段的任务调度方案;
取阈值ξ=150;
执行步骤A1:系统状态初始化:令虚拟机可得时间段列表:vatl′1={[0,M]},vatl′2={[0,M]},…,vatl′6={[0,M]},其中M为一个接近无穷大的数;令所有任务的就绪时间rt′1=0,rt′2=0,…,rt′15=0,
Figure BDA0002311737280000151
P(t4)={t1},P(t5)={t1,t2},P(t6)={t1,t3},P(t7)={t4,t5,t6},P(t8)={t7},P(t9)={t1,t8},P(t10)={t2,t8},P(t11)={t3,t8},P(t12)={t9,t10,t11},P(t13)={t12},P(t14)={t13},P(t15)={t14};k=1;
Figure BDA0002311737280000152
UT=T={t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};把UT中
Figure BDA0002311737280000153
的t1,t2,t3移到RT中,则RT={t1,t2,t3},UT={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};
执行步骤A2:在任务集RT={t1,t2,t3}中,
Figure BDA0002311737280000154
pr2=4114.79,pr3=4047.06,由于pr2最大,因此取出t2,则RT={t1,t3};由于t2的就绪时间rt′2=0<ξ=150,则转到步骤A3;
执行步骤A3:令AVM2=VM2={vm1,vm3,vm4,vm5},计算把t2分别分配给AVM2中的每个虚拟机后t2的完成时间;即:执行步骤A3.1:从AVM2中取出一个虚拟机,其为vm1,则AVM2={vm3,vm4,vm5};执行步骤A3.2:计算t2分配给vm1处理后的执行时间
Figure BDA0002311737280000155
执行步骤A3.3:在vatl′1中从早到晚找出一个空闲时段[0,M],满足M-0≥312.24和M-312.24≥0;执行步骤A3.4:计算t2分配给vm1处理后的开始时间s2,1=max{ν1,rt′2}=max{0,0}=0,完成时间f2,1=s2,1+et2,1=312.24;执行步骤A3.5:由于AVM2={vm3,vm4,vm5}不为空,则转到步骤A3.1;……,这样重复执行步骤A3.1至步骤A3.5,直到AVM2为空,得到s2,3=0,s2,4=0,s2,5=0,f2,3=185.16,f2,4=185.16,f2,5=133.12,则转到步骤A4;
执行步骤A4:由于s2,1<ξ=150,s2,3<ξ=150,s2,4<ξ=150,s2,5<ξ=150,因此在vm1,vm3,vm4,vm5中按顺序找出能最早完成t2的虚拟机,其为vm5,转到步骤A5;
执行步骤A5:把t2分配给vm5;即:执行步骤A5.1:令ST=ST∪t2={t2},g′I+k=g′16=2,g′2=5,k=1+1=2;t2的开始时间s2=s2,5=0,t2的完成时间f2=f2,5=133.12;执行步骤A5.2:在虚拟机可得时间段列表vatl′5中删除[0,M],由于[0,0]的区间长度为0,而[133.12,M]的区间长度大于0,因此插入[133.12,M],则vatl′5={[133.12,M]};执行步骤A5.3:更新t2的子任务的就绪时间:rt′5=max{rt′5,f2}=max{0,133.12}=133.12,rt′10=max{rt′10,f2}=max{0,133.12}=133.12;
执行步骤A6:在P(t5)、P(t10)中删除t2,则P(t5)={t1}、P(t10)={t8};由于UT中没有
Figure BDA0002311737280000161
的任务,则RT,UT均不变;
执行步骤A7:由于RT={t1,t3}不为空,则转到步骤A2;
执行步骤A2:在任务集RT={t1,t3}中,pr1=4095.28,pr3=4047.06,由于pr1最大,因此取出t1,则RT={t3};由于t1的就绪时间rt′1=0<ξ=150,则转到步骤A3;
执行步骤A3:令AVM1=VM1={vm1,vm4,vm5,vm6},计算把t1分别分配给AVM1中的每个虚拟机后t1的完成时间;即:执行步骤A3.1:从AVM1中取出一个虚拟机,其为vm1;执行步骤A3.2:计算t1分配给vm1处理后的执行时间
Figure BDA0002311737280000162
执行步骤A3.3:在vatl1′中从早到晚找出一个空闲时段[0,M],满足M-0≥300.24和M-300.24≥0;执行步骤A3.4:计算t1分配给vm1处理后的开始时间s1,1=max{ν1,rt1′}=max{0,0}=0,完成时间f1,1=s1,1+et1,1=0+300.24=300.24;执行步骤A3.5:由于AVM1={vm4,vm5,vm6}不为空则转到步骤A3.1;……,这样重复执行步骤A3.1至A3.5,直到AVM1为空,得到s1,4=0,s1,5=133.12,s1,6=0,f1,4=179.16,f1,5=262.24,f1,6=129.12,则转到步骤A4;
执行步骤A4:由于s1,1<ξ=150,s1,4<ξ=150,s1,5<ξ=150,s1,6<ξ=150,因此在vm1,vm4,vm5,vm6中按顺序找出能最早完成t1的虚拟机,其为vm6,转到步骤A5;
执行步骤A5:把t1分配给vm6;即:执行步骤A5.1:令ST=ST∪t1={t1,t2},g′I+k=g′17=1,g′1=6,k=2+1=3;t1的开始时间s1=s1,6=0,t1的完成时间f1=f1,6=129.12;执行步骤A5.2:在虚拟机可得时间段列表vatl′6中删除[0,M],插入区间长度大于0的[129.12,M],则vatl′6={[129.12,M]};执行步骤A5.3:更新t1的子任务的就绪时间:rt′4=max{rt′4,f1}=max{0,129.12}=129.12,rt′5=max{rt′5,f1}=max{133.12,129.12}=133.12,rt′6=max{rt′6,f1}=max{0,129.12}=129.12,rt′9=max{rt′9,f1}=max{0,129.12}=129.12;
执行步骤A6:在P(t4)、P(t5)、P(t6)、P(t9)中删除t1,则
Figure BDA0002311737280000171
P(t6)={t3}、P(t9)={t8},把UT中
Figure BDA0002311737280000172
的t4、t5移到RT中,则UT={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15},RT={t3,t4,t5};
执行步骤A7:由于RT={t3,t4,t5}不为空,则转到步骤A2;
执行步骤A2:在任务集RT={t3,t4,t5}中,pr3=4047.06,
Figure BDA0002311737280000173
Figure BDA0002311737280000174
由于pr3最大,因此取出t3,则RT={t4,t5};由于t3的就绪时间rt′3=0<ξ=150,则转到步骤A3;
执行步骤A3:令AVM3=VM3={vm1,vm2,vm3,vm5},计算把t3分别分配给AVM3中的每个虚拟机后t3的完成时间;即:执行步骤A3.1:从AVM3中取出一个虚拟机,其为vm1;执行步骤A3.2:计算t3分配给vm1处理后的执行时间
Figure BDA0002311737280000175
执行步骤A3.3:在vatl′1中从早到晚找出一个空闲时段[0,M],满足M-0≥306.24和M-306.24≥0;执行步骤A3.4:计算t3分配给vm1处理后的开始时间s3,1=max{ν1,rt′3}=max{0,0}=0,完成时间f3,1=s3,1+et3,1=0+306.24=306.24;执行步骤A3.5:由于AVM3={vm2,vm3,vm5}不为空,则转到步骤A3.1;……,这样重复执行步骤A3.1至A3.5,直到AVM1为空,得到s3,2=0,s3,3=0,s3,5=133.12,f3,2=306.24,f3,3=182.16,f3,5=264.24,则转到步骤A4;
执行步骤A4:由于s3,1<ξ=150,s3,2<ξ=150,s3,3<ξ=150,s3,5<ξ=150,因此在vm1,vm2,vm3,vm5中按顺序找出能最早完成t3的虚拟机,其为vm3,转到步骤A5;
执行步骤A5:把t3分配给vm3;即:执行步骤A5.1:令ST=ST∪t3={t1,t2,t3},g′I+k=g′18=3,g′3=3,k=3+1=4;t3的开始时间s3=s3,3=0,t3的完成时间f3=f3,3=182.16;执行步骤A5.2:在虚拟机可得时间段列表vatl′3中删除[0,M],插入区间长度大于0的[182.16,M],则vatl′3={[182.16,M]};执行步骤A5.3:更新t3的子任务的就绪时间:rt′6=max{rt′6,f3}=max{129.12,182.16}=182.16,rt′11=max{rt′11,f3}=max{0,182.16}=182.16;
执行步骤A6:在P(t6)、P(t11)中删除t3,则
Figure BDA0002311737280000181
P(t11)=={t8};把UT中
Figure BDA0002311737280000182
的t6移到RT中,则UT={t7,t8,t9,t10,t11,t12,t13,t14,t15},RT={t4,t5,t6};
执行步骤A7:由于RT={t4,t5,t6}不为空,则转到步骤A2;
……
这样重复执行步骤A2至A7,直到RT为空,转到步骤A8;
执行步骤A8:完成第一阶段的调度,获得已调度的任务集ST={t1,t2.t3,t4,t5},已调度任务的虚拟机分配:g′1=6、g′2=5、g′3=3、g′4=5、g′5=6,完成时间:f1=129.12、f2=133.12,f3=182.16、f4=326.24、f5=333.04,已调度任务的调度顺序:g′16=2、g′17=1、g′18=3,g′19=5、g′20=4,及完成第一阶段任务调度后虚拟机的可得时间段列表:vatl′1={[0,M]},vatl′2={[0,M]},vatl′3={[182.16,M]},vatl′4={[0,M]},vatl′5={[326.24,M]},vatl′6={[129.12,133.12],[333.04,M]}和各任务的就绪时间:rt′1=0,rt′2=0,rt′3=0,rt′4=129.12,rt′5=133.12,rt′6=182.16,rt′7=333.04,rt′8=0,rt′9=129.12,rt′10=133.12,rt′11=182.16,rt′12=0,rt′13=0,rt′14=0,rt′15=0;
执行步骤5:基于遗传算法获得第二阶段任务的调度方案;
执行步骤5.1:采用基于层次的个体随机生成方法生成N个不同的个体形成当代种群;
取种群规模N=10;
基于层次的个体随机生成方法生成一个个体的具体实施过程如下:
执行步骤B1:UT=T-ST={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15};令所有任务的就绪时间:rt″1=0,rt″2=0,rt″3=0,rt″4=129.12,rt″5=133.12,rt″6=182.16,rt″7=333.04,rt″8=0,rt″9=129.12,rt″10=133.12,rt″11=182.16,rt″12=0,rt″13=0,rt″14=0,rt″15=0;初始化虚拟机的可得时间段列表:vatl″1=vatl′1={[0,M]},vatl″2=vatl′2={[0,M]},vatl″3=vatl′3={[182.16,M]},vatl″4=vatl′4={[0,M]},vatl″5=vatl′5={[326.24,M]},vatl″6=vatl′6={[129.12,133.12],[333.04,M]},g1=g′1=6,g2=g′2=5,g3=g′3=3,g4=g′4=5,g5=g′5=6,g16=g′16=2,g17=g′17=1,g18=g′18=3,g19=g′19=5,g20=g′20=4;δ=|ST|+1=6;
执行步骤B2:从任务集UT={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t6
执行步骤B3:从VM6={vm1,vm3,vm4,vm5}中随机选择一个虚拟机,其为vm1,把t6分配给vm1;即:执行步骤B3.1:令gI+6=g21=6,g6=1,δ=δ+1=6+1=7;执行步骤B3.2:计算t6分配给vm1处理后的执行时间
Figure BDA0002311737280000191
执行步骤B3.3:在vatl″1中从早到晚找出一个空闲时段[0,M],满足M-0≥et6=739.44和M-739.44≥rt″6=182.16;执行步骤B3.4:计算t6分配给vm1处理后的开始时间s6=max{ν1,rt″6}=max{0,182.16}=182.16,完成时间f6=s6+et6=921.60;执行步骤B3.5:在虚拟机可得时间段列表vatl″1中删除[0,M],插入区间长度不为0的[0,182.16]和[921.60,M],则vatl″1={[0,182.16],[921.60,M]};执行步骤B3.6:更新t6的子任务的就绪时间rt″7=max{rt″7,f6}=max{333.04,921.60}=921.60;
执行步骤B4:由于任务集UT={t7,t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤B2;
执行步骤B2:从任务集UT={t7,t8,t9,t10,t11,t12,t13,t14,t15}中随机取出一个层次值最小的任务,其为t7
执行步骤B3:从VM7={vm2,vm4,vm5}中随机选择一个虚拟机,其为vm4,把t7分配给vm4;即:执行步骤B3.1:令gI+7=g22=7,g7=4,δ=δ+1=7+1=8;执行步骤B3.2:计算t7分配给vm4处理后的执行时间
Figure BDA0002311737280000192
执行步骤B3.3:在vatl″4中从早到晚找出一个空闲时段[0,M],满足M-0≥26.96和M-26.96≥921.60;执行步骤B3.4:计算t7分配给vm4处理后的开始时间s7=max{ν4,rt″7}=max{0,921.60}=921.60,完成时间f7=s7+et7=921.60+26.96=948.56;执行步骤B3.5:在虚拟机可得时间段列表vatl″4中删除[0,M],插入区间长度不为0的[0,921.60]和[948.56,M],则vatl″4={[0,921.60],[948.56,M]};执行步骤B3.6:更新t7的子任务的就绪时间rt″8=max{rt″8,f7}=max{0,948.56}=948.56;
执行步骤B4:由于任务集UT={t8,t9,t10,t11,t12,t13,t14,t15}不为空,转到步骤B2;
……
这样不断重复执行步骤B2至步骤B4,直至UT为空集,转到步骤B5;
执行步骤B5:输出一个个体ch1={6,5,3,5,6,1,4,5,4,2,2,3,1,5,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15},计算适应度值即工作流的响应时间rs1,由于
Figure BDA0002311737280000201
而SFL15={f15-1},故
Figure BDA0002311737280000202
操作结束;
同理,基于层次的个体随机生成方法生成种群中的剩余个体如下:
ch2={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch3={6,5,3,5,6,3,5,4,1,2,4,3,1,5,6;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
ch4={6,5,3,5,6,3,4,4,4,4,4,4,6,2,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch5={6,5,3,5,6,4,5,5,1,2,4,3,1,4,1;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch6={6,5,3,5,6,3,4,4,3,2,6,4,6,2,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch7={6,5,3,5,6,3,5,4,4,2,6,5,1,2,1;2,1,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch8={6,5,3,5,6,4,5,5,2,4,4,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch9={6,5,3,5,6,3,2,5,1,2,6,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch10={6,5,3,5,6,5,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs2=2030.52,rs3=4703.88,rs4=4286.80,rs5=4955.56,rs6=4669.56,rs7=4619.96,rs8=1955.12,rs9=1826.00,rs10=2584.20;
这样最终生成的初始当代种群为CP={ch1,ch2,ch3,ch4,ch5,ch6,ch7,ch8,ch9,ch10}。
执行步骤5.2:对当代种群进行N次基于偏好的参数化均匀交叉操作生成新种群,对新种群中的每个个体采用单点变异操作;
对当代种群进行基于偏好的参数化均匀交叉操作的具体实施过程如下:
取偏好概率pb=0.7;
执行步骤C1:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体;即:从当代种群中随机选择两个不同个体,其为ch9和ch8,由于rs9=1826.00<rs8=1955.12,因此选择ch9作为其中的一个父体;再从当代种群中随机选择两个不同个体,其为ch1和ch10,由于rs1=5607.40>rs10=2584.20,因此选择ch10作为其中的另一个父体;又由于ch9的适应度值小于ch10的适应度值,故chp1=ch9={6,5,3,5,6,3,2,5,1,2,6,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15},chp2=ch10={6,5,3,5,6,5,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};令δ=1,
Figure BDA0002311737280000211
执行步骤C2:由于δ=1≤I+|ST|=20,则转到步骤C3;
执行步骤C3:生成一个随机数λ∈[0,1),其为0.20,由于λ=0.2<pb=0.7,那么从chp1中取出首元素放到chc的尾部,则chc={6},chp1={5,3,5,6,3,2,5,1,2,6,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15},并从chp2中删除首元素,则chp2={5,3,5,6,5,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};δ=1+1=2,转到步骤C2;
执行步骤C2:由于δ=2≤I+|ST|=20,则转到步骤C3;
执行步骤C3:生成一个随机数λ∈[0,1),其为0.93,由于λ=0.93>pb=0.7,那么从chp2中取出首元素放到chc的尾部,则chc={6,5},chp2={3,5,6,5,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15},并从chp1中删除首元素,则chp1={3,5,6,3,2,5,1,2,6,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};δ=2+1=2,转到步骤C2;
……
这样不断重复执行步骤C2和步骤C3,直至δ=21>I+|ST|=20,此时chc={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4},chp1={6,7,8,9,10,11,12,13,14,15},chp2={6,7,8,10,11,9,12,13,14,15},转到步骤C2;
执行步骤C2:由于I+|ST|=20<δ=21≤2I=30,则转到步骤C4;
执行步骤C4:生成一个随机数λ∈[0,1),其为0.92,由于λ=0.92>pb=0.7,那么从chp2中取出首元素放到chc的尾部,则chc={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6},chp2={7,8,10,11,9,12,13,14,15},并从chp1中删除该元素,则chp1={7,8,9,10,11,12,13,14,15};δ=21+1=22,转到步骤C2;
执行步骤C2:由于I+|ST|=20<δ=22≤2I=30,则转到步骤C4;
执行步骤C4:生成一个随机数λ∈[0,1),其为0.62,由于λ=0.62<pb=0.7,那么从chp1中取出首元素放到chc的尾部,则chc={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7},chp1={8,9,10,11,12,13,14,15},并从chp2中删除该元素,则chp2={8,10,11,9,12,13,14,15};δ=22+1=23,转到步骤C2;
……
这样不断重复执行步骤C2和步骤C4,直至δ=31>2I=30,此时chc={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15},转到步骤C2;
执行步骤C2:由于δ=31>2I=30,则转到步骤C5;
执行步骤C5:输出子体ch′1=chc={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15},操作结束;
同理,经基于偏好的参数均匀交叉操作生成新种群中剩余的9个个体如下:
ch′2={6,5,3,5,6,4,4,5,4,4,4,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′3={6,5,3,5,6,4,5,5,2,4,6,5,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′4={6,5,3,5,6,3,2,5,1,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′5={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′6={6,5,3,5,6,3,5,4,4,2,6,5,1,2,1;2,1,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch′7={6,5,3,5,6,3,2,5,1,2,6,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch′8={6,5,3,5,6,3,5,5,4,4,6,3,6,2,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch′10={6,5,3,5,6,3,2,4,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
对新种群进行单点变异操作的具体实施过程如下:
取变异率pm=0.2;
对于ch′1={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
执行步骤D1:产生一个随机数λ1∈[0,1),其为0.68,λ1=0.68>pm=0.2,则转步骤D5;
执行步骤D5:变异操作结束;
对于ch′2={6,5,3,5,6,4,4,5,4,4,4,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
执行步骤D1:产生一个随机数λ1∈[0,1),其为0.15,λ1=0.15<pm=0.2,则转步骤D2;
执行步骤D2:产生一个随机数λ2∈[0,1),其为0.27,λ2=0.27<0.5,则从i≤I=15且
Figure BDA0002311737280000231
中随机选择一个基因,其为g11,转到步骤D3;
执行步骤D3:从可以处理任务11的虚拟机集VM11={vm2,vm3,vm4,vm6}中重新随机选择一个虚拟机,其为vm2,则g11=2,转到步骤D5;
执行步骤D5:变异操作结束;
ch′2变为{6,5,3,5,6,4,4,5,4,4,2,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
……
对于ch′9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
执行步骤D1:产生一个随机数λ1∈[0,1),其为0.12,λ1=0.12<pm=0.2,则转步骤D2;
执行步骤D2:产生一个随机数λ2∈[0,1),其为0.74,λ2=0.74>0.5,则从i>I+|ST|=20中随机选择一个基因gi,其为g25=11,转到步骤D4;
执行步骤D4:在T-ST={t6,t7,t8,t9,t10,t11,t12,t13,t14,t15}中存在任务11的父任务,那么从g25开始向前找到任务11的第一个父任务g23=8,pos1=i′+1=23+1=24;在T-ST中存在任务g25的子任务,从g25开始向后找到任务11的第一个子任务g27=12,pos2=i″-1=27-1=26,在[24,26]之间重新随机选择一个位置插入任务11,则g26=11;
执行步骤D5:变异操作结束;
ch′9变为ch′9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
……
这样新种群中的个体经变异后变为:
ch′1={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′2={6,5,3,5,6,4,4,5,4,4,2,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′3={6,5,3,5,6,4,5,5,2,4,6,5,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′4={6,5,3,5,6,3,2,5,1,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′5={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′6={6,5,3,5,6,3,5,4,4,2,6,5,1,2,1;2,1,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch′7={6,5,3,5,6,3,2,5,1,2,6,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch′8={6,5,3,5,6,3,5,5,4,4,6,3,6,2,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′10={6,5,3,5,6,3,2,4,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
执行步骤5.3:对新种群中的每个个体采用基于插入模式的串行个体解码和LDI方法改进;
对新种群中的所有个体采用基于插入模式的串行个体解码,例如对新种群中的ch′1={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15}为例进行基于插入模式的串行个体解码的过程如下:
执行步骤E1:令所有任务的就绪时间:rt″1=0,rt″2=0,rt″3=0,rt″4=129.12,rt″5=133.12,rt″6=182.16,rt″7=333.04,rt″8=0,rt″9=129.12,rt″10=133.12,rt″11=182.16,rt″12=0,rt″13=0,rt″14=0,rt″15=0;初始化所有虚拟机的可得时间段列表:vatl″1=vatl′1={[0,M]},vatl″2=vatl′2={[0,M]},vatl″3=vatl′3={[182.16,M]},vatl″4=vatl′4={[0,M]},vatl″5=vatl′5={[326.24,M]},vatl″6=vatl′6={[129.12,133.12],[333.04,M]};k=|ST|+1=6,
执行步骤E2:选取编号为gI+k=g21的任务,其为g21=6;
执行步骤E3:基于插入模式把任务6分配给虚拟机g6=3;即:执行步骤E3.1:计算任务6的执行时间
Figure BDA0002311737280000252
执行步骤E3.2:在vatl″3中从早到晚找出一个空闲时段[182.16,M],满足M-182.16≥et6=269.16和M-269.16≥rt″6=182.16;执行步骤E3.3:计算t6分配给vm3处理后的开始时间s6=max{ν3,rt″6}=max{182.16,182.16}=182.16,完成时间f6=s6+et6=182.16+269.16=451.32,更新t6子任务的就绪时间rt″7=max{rt″7,f6}=max{333.04,451.32}=451.32;执行步骤E3.4:在虚拟机可得时间段列表vatl″3={[182.16,M]}中删除[182.16,M],插入区间长度大于0的[451.32,M],则vatl″3={[451.32,M]};
执行步骤E4:k=6+1=7,由于k=7≤I=15,则转到步骤E2;
执行步骤E2:选取编号为gI+k=g22的任务,其为g22=7;
执行步骤E3:基于插入模式把任务7分配给虚拟机g7=2;即:执行步骤E3.1:计算任务7的执行时间
Figure BDA0002311737280000251
执行步骤E3.2:在vatl″2中从早到晚找出一个空闲时段[0,M]满足M-0≥36.96和M-36.96≥451.32;执行步骤E3.3:计算t7分配给vm2处理后的开始时间s7=max{ν2,rt″7}=max{0,451.32}=451.32,完成时间f7=s7+et7=451.32+36.96=488.28,更新t7子任务的就绪时间rt″8=max{rt″8,f7}=max{0,488.28}=488.28;执行步骤E3.4:在虚拟机可得时间段列表vatl″2中删除[0,M],插入区间长度大于0的[0,451.32]和[488.28,M],则vatl″2={[0,451.32],[488.28,M]};
执行步骤E4:k=7+1=8,由于k=8≤I=15,则转到步骤E2;
……
这样不断重复执行步骤E2至步骤E4,直至k=16>I=15,获得所有任务的开始时间和完成时间,则转到步骤E5;
执行步骤E5:获得所有任务的开始时间和完成时间:s1=0,s2=0,s3=0,s4=133.12,s5=133.12,s6=182.16,s7=451.32,s8=488.28,s9=493.64,s10=925.40,s11=493.64,s12=1372.76,s13=2201.72,s14=2210.36,s15=2220.36;f1=129.12,f2=133.12,f3=182.16,f4=326.24,f5=333.04,f6=451.32,f7=488.28,f8=493.64,f9=925.40,f10=1372.76,f11=753.08,f12=2201.72,f13=2210.36,f14=2220.36,f15=2290.56,计算适应度值即工作流响应时间rs1′:由于
Figure BDA0002311737280000261
而SFL15={f15-1},故
Figure BDA0002311737280000262
操作结束;
同理,新种群中的其它个体经基于插入模式的串行个体解码后可获得其工作流响应时间为:rs′2=1976.36,rs′3=1799.60,rs′4=1875.60,rs′5=2030.52,rs′6=4619.96,rs′7=1750.00,rs′8=4643.48,rs′9=1853.92,rs′10=2029.92;
对种群中的所有个体采用LDI方法改进,例如对新种群中的ch′4={6,5,3,5,6,3,2,5,1,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15}采用LDI方法进行改进的具体实施过程如下:
执行步骤F1:计算各虚拟机负载:
Figure BDA0002311737280000263
同理,ld2=122.40,ld3=123.00,ld4=54,ld5=87.6,ld6=94.00;
执行步骤F2:找出负载最小的虚拟机,其为vm4,由于ld4>0,故转到步骤F3;
执行步骤F3:
Figure BDA0002311737280000271
转到步骤F5;
执行步骤F5:由于DT4={t8,t12}不为空,则从DT4中按顺序取出一个其所在虚拟机负载是最高的任务,其为t8,则DT4={t12},转到步骤F6;
执行步骤F6:令g8=4,形成新的个体
Figure BDA0002311737280000272
采用基于插入模式的串行个体解码方法对
Figure BDA0002311737280000273
进行解码,工作流响应时间
Figure BDA0002311737280000274
即改进的个体
Figure BDA0002311737280000275
相对于原个体ch′4没有改进,放弃改进的个体
Figure BDA0002311737280000276
转到步骤F5;
执行步骤F5:由于DT4={t12}不为空,则从DT4中按顺序取出一个其所在虚拟机负载是最高的任务,其为t12,转到步骤F6;
执行步骤F6:令g12=4,形成新的个体
Figure BDA0002311737280000277
采用基于插入模式的串行个体解码方法对
Figure BDA0002311737280000278
进行解码,工作流响应时间
Figure BDA0002311737280000279
即改进的个体
Figure BDA00023117372800002710
相对于原个体ch′4有改进,因此用改进的个体
Figure BDA00023117372800002711
替换原个体ch′4,则
Figure BDA00023117372800002712
Figure BDA00023117372800002713
转到步骤F7;
执行步骤F7:LDI操作结束;
同理,种群中的其它个体经LDI方法改进后变为:
ch′1={6,5,3,5,6,3,2,5,2,2,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′2={6,5,3,5,6,4,4,5,1,4,2,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′3={6,5,3,5,6,4,5,5,1,4,6,5,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′5={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′6={6,5,3,5,6,3,5,4,4,2,6,5,1,2,1;2,1,3,5,4,6,7,8,10,9,11,12,13,14,15};
ch′7={6,5,3,5,6,3,4,5,1,2,6,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch′8={6,5,3,5,6,3,5,5,4,4,6,3,6,2,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch′9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch′10={6,5,3,5,6,3,2,4,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间:rs′1=2307.36,rs′2=1957.04,rs′3=1799.60,rs′5=2030.52,rs′6=4619.96,rs′7=1736.48,rs′8=4643.48,rs′9=1853.92,rs′10=2029.92;
这样最终生成的新种群为NP={ch′1,ch′2,ch′3,ch′4,ch′5,ch′6,ch′7,ch′8,ch′9,ch′10}。
执行步骤5.4:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
根据适应度值,选择当代种群的ch2、ch8、ch9和新种群的ch′2、ch′3、ch′4、ch′5、ch′7、ch′9、ch′10形成下一代种群,即GP={ch2,ch8,ch9,ch′2,ch′3,ch′4,ch′5,ch′7,ch′9,ch′10};
执行步骤5.5:令下一代种群为当代种群;判断是否满足进化终止条件,如满足,则转到步骤6,否则,转到步骤5.2;
令CP=GP,则当代种群的所有个体为:
ch1={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch2={6,5,3,5,6,4,5,5,2,4,4,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch3={6,5,3,5,6,3,2,5,1,2,6,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch4={6,5,3,5,6,4,4,5,1,4,2,5,6,6,6;2,1,3,5,4,6,7,8,11,9,10,12,13,14,15};
ch5={6,5,3,5,6,4,5,5,1,4,6,5,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch6={6,5,3,5,6,3,2,5,1,2,4,4,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch7={6,5,3,5,6,3,2,5,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch8={6,5,3,5,6,3,4,5,1,2,6,5,6,6,6;2,1,3,5,4,6,7,8,9,11,10,12,13,14,15};
ch9={6,5,3,5,6,3,2,5,1,4,4,5,6,6,1;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch10={6,5,3,5,6,3,2,4,4,4,4,3,6,6,1;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1=2030.52,rs2=1955.12,rs3=1826.00,rs4=1957.04,rs5=1799.60,rs6=1680.96,rs7=2030.52,rs8=1736.48,rs9=1853.92,rs10=2029.92;
所述终止条件为运行到第一阶段与第二阶段的临界点ξ,即程序运行时间为ξ=150,没有满足进化终止条件,转到步骤5.2;
……
这样不断重复执行步骤5.2至步骤5.5,直到程序运行时间为150,当代种群变为:
ch1={6,5,3,5,6,3,5,4,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch2={6,5,3,5,6,3,5,5,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
ch3={6,5,3,5,6,3,2,5,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch4={6,5,3,5,6,3,5,5,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch5={6,5,3,5,6,3,4,4,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch6={6,5,3,5,6,3,4,5,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch7={6,5,3,5,6,3,2,4,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch8={6,5,3,5,6,3,5,6,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,9,10,11,12,13,14,15};
ch9={6,5,3,5,6,3,5,6,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
ch10={6,5,3,5,6,3,4,4,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15};
其适应度值即工作流响应时间分别为:rs1=1056.40,rs2=1053.48,rs3=1081.08,rs4=1053.48,rs5=1067.28,rs6=1067.56,rs7=1082.40,rs8=1054.68,rs9=1054.68,rs10=1067.28;
执行步骤6:输出当代种群中的最优个体,其对应的调度方案即为优化方案;
当代种群中的最优个体为ch2={6,5,3,5,6,3,5,5,3,4,3,3,6,6,6;2,1,3,5,4,6,7,8,10,11,9,12,13,14,15},其适应度值即工作流响应时间rs=1053.48,其调度方案如表8所示。
Figure BDA0002311737280000291
Figure BDA0002311737280000301
表8
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保护范围内。

Claims (3)

1.一种融合启发式和智能计算的云工作流分段在线调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,...,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;
Figure FDA0002311737270000011
获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
Figure FDA0002311737270000012
获取云计算环境下的虚拟机集VM={vm1,vm2,…,vmJ},其中J是虚拟机的数量,vmj表示虚拟机j,即编号为j的虚拟机;
获取虚拟机相关参数:虚拟机j的计算能力vmj.ps,虚拟机j的带宽vmj.bw,其中j=1,2…,J;
获取任务与虚拟机之间的支持关系:虚拟机j可以处理的任务集Tj,其中j=1,2…,J;可以处理任务i的虚拟机集VMi,其中i=1,2…,I;
步骤2:计算任务的排序值rank;
先计算ti执行时的平均处理时间
Figure FDA0002311737270000013
需要从共享数据库获得输入文件的平均传输时间
Figure FDA0002311737270000014
需要从其它虚拟机获得输入文件的平均传输时间
Figure FDA0002311737270000015
ti执行时的平均处理时间计算如下:
Figure FDA0002311737270000016
ti执行时需要从共享数据库获得输入文件的平均传输时间为:
Figure FDA0002311737270000021
ti执行时需要从其它虚拟机获得输入文件的平均传输时间为:
Figure FDA0002311737270000022
其中
Figure FDA0002311737270000023
Figure FDA0002311737270000024
和ti间的文件平均传输时间,其计算如下:
Figure FDA0002311737270000025
然后自下而上计算任务的排序值rank,其计算过程如下:
对于没有子任务的结束任务i:
Figure FDA0002311737270000026
其它任务的排序值rank采用如下递归公式进行计算:
Figure FDA0002311737270000027
步骤3:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
leveli=1 (7)
其它任务的层次值采用如下递归公式进行计算:
Figure FDA0002311737270000028
步骤4:基于动态关键任务优先调度的启发式方法生成第一阶段的任务调度方案;
所述基于动态关键任务优先调度的启发式方法生成第一阶段的任务调度方案包括如下步骤:
步骤A1:系统状态初始化:令虚拟机可得时间段列表vatl′j={[0,M]},j=1,2,…,J,其中M为一个接近无穷大的数;令任务的就绪时间rt′i=0、任务集P(ti)=PRi,i=1,…,I;令变量k=1;令任务集
Figure FDA0002311737270000031
UT=T;把UT中
Figure FDA0002311737270000032
的ti移到RT中;
步骤A2:从RT中取出优先级
Figure FDA0002311737270000033
最大的ti;如果ti的就绪时间rt′i小于ξ,那么转到步骤A3,否则转到步骤A7;
步骤A3:令ti的可得虚拟机集AVMi=VMi,计算把ti分别分配给AVMi中的每个虚拟机后ti的完成时间:
步骤A3.1:从AVMi中取出一个虚拟机,不妨设为vmj
步骤A3.2:计算ti分配给vmj处理后的执行时间
Figure FDA0002311737270000034
步骤A3.3:在vatl′j中从早到晚找出一个空闲时段[νjj],满足υjj≥eti,j和υj-eti,j≥rt′i
步骤A3.4:计算ti分配给vmj处理后的开始时间si,j=max{νj,rt′i},完成时间fi,j=si,j+eti,j
步骤A3.5:若AVMi不为空,则转到步骤A3.1,否则转到步骤A4;
步骤A4:若对于任意vmj∈VMi,si,j≥ξ,那么转到步骤A7;否则在满足si,j<ξ的虚拟机中按顺序找出能最早完成ti的虚拟机,不妨设为vmj,转到步骤A5;
步骤A5:把ti分配给vmj
步骤A5.1:令ST=ST∪ti,g′I+k=i,g′i=j,k=k+1;ti的开始时间si=si,j,ti的完成时间fi=fi,j
步骤A5.2:在虚拟机可得时间段列表vatl′j中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤A5.3:更新ti的子任务的就绪时间
Figure FDA0002311737270000035
步骤A6:在所有
Figure FDA0002311737270000036
中删除ti;把UT中
Figure FDA0002311737270000037
Figure FDA0002311737270000038
移到RT中;
步骤A7:如果RT不为空,则转到步骤A2,否则转到步骤A8;
步骤A8:完成第一阶段的调度,获得已调度的任务集ST,已调度任务的虚拟机分配g′i、完成时间fi,ti∈ST,已调度任务的调度顺序g′I+k,1≤k≤|ST|,及完成第一阶段任务调度后虚拟机的可得时间段列表vatl′j和所有任务的就绪时间rt′i
其中:
Figure FDA0002311737270000041
是当ti的父任务的虚拟机分配已确定的情况下ti执行时需要从虚拟机获得输入文件的平均传输时间,
Figure FDA0002311737270000042
Figure FDA0002311737270000043
是处理
Figure FDA0002311737270000044
的虚拟机;
ξ:是第一阶段与第二阶段的临界点,即遗传算法获得一个优化调度方案所需的时间;
ωi,j:是vmj处理ti的时间,
Figure FDA0002311737270000045
Figure FDA0002311737270000046
是把ti分配给vmj处理时需要从其它的虚拟机获得输入文件的文件传输时间,
Figure FDA0002311737270000047
Figure FDA0002311737270000048
是处理
Figure FDA0002311737270000049
的虚拟机;
τi,j:是把ti分配给vmj处理时需要从共享数据库获得输入文件的文件传输时间,
Figure FDA00023117372700000410
步骤5:基于遗传算法获得第二阶段任务的调度方案;
步骤5.1:采用基于层次的个体随机生成方法生成N个不同的个体形成当代种群;
所述个体采用2I位整数编码,I为任务数量,其方法如下:ch={g1,…,gI,gI+1,…,g2I},基因gi是一个非负整数,其中,{g1,…,gI}是虚拟机分配列表,gi表示给任务i分配的虚拟机编号,即把任务i分配给虚拟机gi,gi∈VMi,i=1,…,I;{gI+1,…,g2I}是任务调度顺序列表,是1,…,I的一个排列,且满足任务的时序约束,即任何任务都不能排在其父任务的前面,gI+i表示第i个被调度的任务的编号,即任务gI+i是第i个被调度的;由于ti∈ST在第一阶段已调度,因此对于任何一个个体始终有:
Figure FDA00023117372700000411
gi=g′i
Figure FDA00023117372700000412
gI+k=g′I+k
所述采用基于层次的个体随机生成方法包括如下步骤:
步骤B1:令任务集UT=T-ST;令所有任务的就绪时间rt″i=rt′i,i=1,…,I;初始化虚拟机的可得时间段列表vatl″j=vatl′j,j=1,2,…,J;令基因gi=g′i,ti∈ST;令基因gI+k=g′I+k,1≤k≤|ST|;令变量δ=|ST|+1;
步骤B2:从UT中随机取出一个层次值最小的任务,不妨设为ti
步骤B3:从VMi中随机选择一个虚拟机,不妨设为vmj,把ti分配给vmj
步骤B3.1:令gI+δ=i,gi=j,δ=δ+1;
步骤B3.2:计算ti分配给vmj处理后的执行时间
Figure FDA0002311737270000051
步骤B3.3:在vatl″j中从早到晚找出一个可得时间段[νjj],满足υjj≥eti和υj-eti≥rt″i
步骤B3.4:计算ti分配给vmj处理后的开始时间si=max{νj,rt″i},完成时间fi=si+eti
步骤B3.5:在虚拟机可得时间段列表vatl″j中删除[νjj],插入区间长度大于0的[νj,si]和[fij];
步骤B3.6:更新ti的子任务的就绪时间
Figure FDA0002311737270000052
步骤B4:如果UT不为空,则转到步骤B2,否则转到步骤B5;
步骤B5:输出一个个体ch={g1,…,gI,gI+1,…,g2I},计算其适应度值,操作结束;
步骤5.2:对当代种群进行N次基于偏好的参数化均匀交叉操作生成新种群,对新种群中的每个个体采用单点变异操作;
所述基于偏好的参数化均匀交叉操作包括如下步骤:
步骤C1:采用锦标赛法从当代种群中随机选择两个不同的个体作为父体,不妨设为chp1、chp2,且chp1优于chp2;令变量δ=1、子体
Figure FDA0002311737270000053
步骤C2:如果δ≤I+|ST|,则转到步骤C3;如果I+|ST|<δ≤2I,则转到步骤C4;如果δ>2I则转到步骤C5;
步骤C3:生成一个随机数λ∈[0,1),如果λ<pb,那么从chp1中取出首元素放到chc的尾部,并从chp2中删除首元素,否则从chp2中取出首元素放到chc的尾部,并从chp1中删除首元素;δ=δ+1,转到步骤C2;
步骤C4:生成一个随机数λ∈[0,1),如果λ<pb,那么从chp1中取出首元素放到chc的尾部,并从chp2中删除该元素,否则从chp2中取出首元素放到chc的尾部,并从chp1中删除该元素;δ=δ+1,转到步骤C2;
步骤C5:输出子体
Figure FDA0002311737270000061
操作结束;
其中,pb∈(0.5,1)为偏好概率;
所述单点变异操作包括如下步骤:
步骤D1:产生一个随机数λ1∈[0,1),如果λ1<pm,则转步骤D2,否则转步骤D5;
步骤D2:产生一个随机数λ2∈[0,1),如果λ2<0.5,则从i≤I且
Figure FDA0002311737270000062
中随机选择一个基因gi转到步骤D3,否则从i>I+|ST|中随机选择一个基因gi转到步骤D4;
步骤D3:从可以处理任务i的VMi中重新随机选择一个虚拟机vmj,gi=j,转到步骤D5;
步骤D4:如果在T-ST中存在任务gi的父任务,那么从gi开始向前找到任务gi的第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+|ST|+1;如果在T-ST中存在任务gi的子任务,从gi开始向后找到任务gi的第一个子任务gi″,令位置值pos2=i″-1,否则令pos2=2I,在[pos1,pos2]之间重新随机选择一个位置插入gi
步骤D5:变异操作结束;
其中:pm∈[0,1)是变异率;
步骤5.3:对新种群中的每个个体采用基于插入模式的串行个体解码和LDI方法改进;
所述基于插入模式的串行个体解码包括如下步骤:
步骤E1:令所有任务的就绪时间rt″i=rt′i,i=1,…,I;初始化虚拟机的可得时间段列表vatl″j=vatl′j,j=1,2,…,J;令变量k=|ST|+1;
步骤E2:选取编号为gI+k的任务,不妨设i=gI+k
步骤E3:基于插入模式把任务i分配给虚拟机gi
步骤E3.1:计算任务i的执行时间
Figure FDA0002311737270000063
步骤E3.2:在
Figure FDA0002311737270000064
中从早到晚找出一个空闲时段
Figure FDA0002311737270000065
满足
Figure FDA0002311737270000066
Figure FDA0002311737270000071
步骤E3.3:
Figure FDA0002311737270000072
fi=si+eti
Figure FDA0002311737270000073
步骤E3.4:在虚拟机可得时间段列表vatl″j中删除
Figure FDA0002311737270000074
插入区间长度大于0的
Figure FDA0002311737270000075
Figure FDA0002311737270000076
步骤E4:令k=k+1,如果k≤I则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的开始时间和完成时间:si、fi,i=1,…,I,计算适应度值;操作结束;
所述LDI方法包括如下步骤:
步骤F1:计算各虚拟机负载
Figure FDA0002311737270000077
步骤F2:找出负载最小的虚拟机j′;如果ldj′>0,转到步骤F3,否则转到步骤F4;
步骤F3:令任务集
Figure FDA0002311737270000078
转到步骤F5;
步骤F4:令任务集DTj′=Tj′-ST,转到步骤F5;
步骤F5:如果DTj′不为空,则从DTj′中按顺序取出一个其所在虚拟机j″的负载是最高的任务i′,转到步骤F6;否则转到步骤F7;
步骤F6:令gi′=j′,形成新的个体
Figure FDA0002311737270000079
采用基于插入模式的串行个体解码方法对
Figure FDA00023117372700000710
进行解码,如果有改进则用此改进的个体替换原个体,转到步骤F7;否则转到步骤F5;
步骤F7:LDI操作结束;
步骤5.4:从当代种群和新种群中从优到劣选出N个不同的个体形成下一代种群;
步骤5.5:令下一代种群为当代种群;判断是否满足进化终止条件,如满足,则转到步骤6,否则,转到步骤5.2;
所述终止条件为运行到第一阶段与第二阶段的临界点ξ;
步骤6:输出当代种群中的最优个体,其对应的调度方案即为优化方案。
2.根据权利要求1所述的一种融合启发式和智能计算的云工作流分段在线调度优化方法,其特征在于:所述适应度值为工作流响应时间rs,其计算方法如下:
Figure FDA00023117372700000711
其中:rfi是任务i的响应时间,
Figure FDA0002311737270000081
SFLi是任务i输出给共享数据库的输出文件集,即
Figure FDA0002311737270000082
适应度值越小,个体越优。
3.根据权利要求1所述的一种融合启发式和智能计算的云工作流分段在线调度优化方法,其特征在于:所述步骤C1中采用锦标赛法从当代种群中随机选择一个个体的具体步骤如下:首先从当代种群中随机选择2个不同的个体,然后根据适应度值比较这两个个体的优劣,返回优的个体。
CN201911261580.9A 2019-12-10 2019-12-10 融合启发式和智能计算的云工作流分段在线调度优化方法 Active CN110928648B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911261580.9A CN110928648B (zh) 2019-12-10 2019-12-10 融合启发式和智能计算的云工作流分段在线调度优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911261580.9A CN110928648B (zh) 2019-12-10 2019-12-10 融合启发式和智能计算的云工作流分段在线调度优化方法

Publications (2)

Publication Number Publication Date
CN110928648A true CN110928648A (zh) 2020-03-27
CN110928648B CN110928648B (zh) 2022-05-20

Family

ID=69858806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911261580.9A Active CN110928648B (zh) 2019-12-10 2019-12-10 融合启发式和智能计算的云工作流分段在线调度优化方法

Country Status (1)

Country Link
CN (1) CN110928648B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831454A (zh) * 2020-09-17 2020-10-27 北京汇智恒安科技有限责任公司 云计算服务器集群资源调配控制系统及方法
CN113065310A (zh) * 2021-03-30 2021-07-02 福州大学 基于粒子群算法的连续微流体生物芯片高级综合设计方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765640A (zh) * 2014-01-02 2015-07-08 中国科学院声学研究所 一种智能服务调度方法
US20160217387A1 (en) * 2015-01-22 2016-07-28 Preferred Networks, Inc. Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
CN107133095A (zh) * 2017-04-07 2017-09-05 北京科技大学 一种云环境下的任务调度方法
CN108628667A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于多属性决策的启发式动态任务调度系统及其实现方法
KR101984460B1 (ko) * 2019-04-08 2019-05-30 부산대학교 산학협력단 머신러닝 기반 자동 공작기계 작업 스케줄링 방법 및 장치
CN110413389A (zh) * 2019-07-24 2019-11-05 浙江工业大学 一种资源不均衡Spark环境下的任务调度优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104765640A (zh) * 2014-01-02 2015-07-08 中国科学院声学研究所 一种智能服务调度方法
US20160217387A1 (en) * 2015-01-22 2016-07-28 Preferred Networks, Inc. Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
CN108628667A (zh) * 2017-03-16 2018-10-09 哈尔滨英赛克信息技术有限公司 一种基于多属性决策的启发式动态任务调度系统及其实现方法
CN107133095A (zh) * 2017-04-07 2017-09-05 北京科技大学 一种云环境下的任务调度方法
KR101984460B1 (ko) * 2019-04-08 2019-05-30 부산대학교 산학협력단 머신러닝 기반 자동 공작기계 작업 스케줄링 방법 및 장치
CN110413389A (zh) * 2019-07-24 2019-11-05 浙江工业大学 一种资源不均衡Spark环境下的任务调度优化方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
SAIMA GULZAR AHMAD, CHEE SUN LIEW,EHSAN ULLAH MUNIR: "A hybrid genetic algorithm for optimization of scheduling workflow applications in heterogeneous computing systems", 《ACM》 *
徐文忠,彭志平,左敬龙: "云计算下基于启发式混合算法的工作流调度研究", 《微电子学与计算机》 *
王玲: "云计算下任务调度算法的研究与实现", 《硕士学位论文电子期刊》 *
肖志娇,常会友,衣杨: "启发式规则与GA结合的优化方法求解工作流动态调度优化问题", 《计算机科学》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111831454A (zh) * 2020-09-17 2020-10-27 北京汇智恒安科技有限责任公司 云计算服务器集群资源调配控制系统及方法
CN111831454B (zh) * 2020-09-17 2021-02-19 北京汇智恒安科技有限责任公司 云计算服务器集群资源调配控制系统及方法
CN113065310A (zh) * 2021-03-30 2021-07-02 福州大学 基于粒子群算法的连续微流体生物芯片高级综合设计方法
CN113065310B (zh) * 2021-03-30 2022-06-14 福州大学 基于粒子群算法的连续微流体生物芯片高级综合设计方法

Also Published As

Publication number Publication date
CN110928648B (zh) 2022-05-20

Similar Documents

Publication Publication Date Title
CN109561148B (zh) 边缘计算网络中基于有向无环图的分布式任务调度方法
CN110489229B (zh) 一种多目标任务调度方法及系统
CN108829501B (zh) 一种基于改进遗传算法的批处理科学工作流任务调度算法
CN110928648B (zh) 融合启发式和智能计算的云工作流分段在线调度优化方法
CN113821318A (zh) 一种物联网跨域子任务组合协同计算方法及系统
CN111694664A (zh) 一种边缘服务器的计算卸载分配方法
CN110780985A (zh) 一种有限时间的并行任务调度方法与装置
CN112379996A (zh) 基于动态目标策略的云计算资源调度优化方法及应用
CN111008745A (zh) 混合启发式与智能算法的多模资源受限项目调度优化方法
CN110008023B (zh) 基于遗传算法的云计算系统预算约束随机任务调度方法
CN111090510A (zh) 混合启发式和遗传算法的两阶段云工作流调度优化方法
CN111026534B (zh) 云计算环境下基于多种群遗传算法的工作流执行优化方法
CN115421885B (zh) 一种分布式多目标云任务的调度方法、装置及云服务系统
CN111078361A (zh) 基于分布式估计算法的云工作流调度优化方法
CN114980216B (zh) 基于移动边缘计算的依赖型任务卸载系统及方法
CN110928670B (zh) 云计算环境下基于偏序自适应遗传算法的工作流优化方法
CN111047183A (zh) 基于分层自适应智能计算算法的云工作流调度优化方法
CN113162965B (zh) 面向异构MapReduce集群的低时延Map和Reduce联合调度方法
CN110928669B (zh) 基于多种群遗传算法的能耗感知云工作流调度优化方法
CN112506644B (zh) 基于云边端混合计算模式系统的任务调度方法和系统
CN110928671B (zh) 基于层次与负载均衡遗传算法的云工作流调度优化方法
CN110941487B (zh) 云计算环境下基于多阶段遗传算法的工作流调度优化方法
Li et al. An improved differential evolution task scheduling algorithm based on cloud computing
CN110968428A (zh) 云工作流虚拟机配置和任务调度协同优化方法
CN111061563A (zh) 云计算环境下基于多解码遗传算法的工作流调度优化方法

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

Effective date of registration: 20221213

Address after: Room 1011, 4 / F, building 5, No. 299, Hangfu Road, Chongfu Town, Tongxiang City, Jiaxing City, Zhejiang Province

Patentee after: Tongxiang Beite Technology Co.,Ltd.

Address before: 310012 149 Xihu District teachers' road, Hangzhou, Zhejiang

Patentee before: ZHEJIANG GONGSHANG University

Effective date of registration: 20221213

Address after: 310000 Room 201-2, Building B, No. 525, Xixi Road, Xihu District, Hangzhou, Zhejiang

Patentee after: Tanxun Intelligent Technology (Hangzhou) Co.,Ltd.

Address before: Room 1011, 4 / F, building 5, No. 299, Hangfu Road, Chongfu Town, Tongxiang City, Jiaxing City, Zhejiang Province

Patentee before: Tongxiang Beite Technology Co.,Ltd.

TR01 Transfer of patent right