混合启发式和遗传算法的两阶段云工作流调度优化方法技术

技术编号:24010248 阅读:27 留言:0更新日期:2020-05-02 01:30
本发明专利技术公开了一种混合启发式和遗传算法的两阶段云工作流调度优化方法,包括以下步骤:获取调度所需信息;基于负载均衡关键任务优先的方法初始化种群;分两阶段进行进化:阶段1结合关键任务优先调度的启发式方法通过虚拟机分配列表交叉变异操作使算法快速收敛于最优解附近,阶段2通过虚拟机分配列表和任务调度顺序列表的交叉变异操作进行邻域的拓展搜索以找到最优解;输出调度优化方案;在进化中采用了基于拓扑排序的整数编码方法和基于插入模式的串行个体解码方法,使用FBI&D和LDI方法改进种群;相对于方法本发明专利技术提高了搜索效率和寻优能力。

Hybrid heuristic and genetic algorithm for two-stage cloud workflow scheduling optimization

【技术实现步骤摘要】
混合启发式和遗传算法的两阶段云工作流调度优化方法
本专利技术涉及计算机技术、信息技术和系统工程领域,具体涉及一种云工作流调度优化方法,更具体的说,尤其涉及一种混合启发式和遗传算法的两阶段云工作流调度优化方法。
技术介绍
云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,在需要高效计算性能和大规模存储支撑的跨组织业务协作、科学计算等领域具有广泛的应用前景。在云工作流中,任务与任务之间存在着时序约束,执行时通常以虚拟机作为计算资源的最小分配单位负责接收并处理这些任务。云工作流调度是指在满足任务时序和用户需要约束下如何把云工作流中的任务分配到合适的虚拟机上,以及如何安排被分配到虚拟机上的任务的执行顺序,即要解决两个方面的问题:任务分配和任务执行顺序。云工作流调度直接决定了整个云工作流系统的性能,已成为云工作流系统的一个重要研究内容。当前云工作流调度优化方法可以分为三类:1)启发式方法,是指工作流任务分配和执行顺序都用启发式方法生成,如:HeterogeneousEarliestFinishTime即HEFT、CriticalPathOnaProcessors即CPOP、LevelizedMinTime即LMT、DynamicLevelScheduling即DLS、DynamicCriticalPath即DCP、LongestDynamicCriticalPath即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;获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:获取云计算环境下的虚拟机集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:初始化当代种群;采用基于负载均衡关键任务优先的个体随机生成方法生成N个不同的个体,形成初始当代种群,其中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号任务;所述基于负载均衡关键任务优先的个体随机生成方法包括如下步骤:步骤A1:基于负载均衡的方法生成虚拟机分配列表;步骤A2:计算任务的处理时间:步骤A3:计算处理任务时需要从共享数据库获得输入文件的传输时间:步骤A4:计算处理任务时需要从其它虚拟机获得输入文件的传输时间:是处理的虚拟机;i=1,…,I;步骤A5:计算任务的排序值rank;步骤A6:基于关键任务优先调度的方法生成任务调度顺序列表;步骤A7:输出一个个体{g1,…,gI,gI+1,…,g2I},及其适应度值,操作结束;所述适应度值为工作流执行时间ms=max{f1,…,fI},个体适应度值越小,则个体越优;步骤3:对当代种群进行N次虚拟机分配列表的参数化均匀交叉操作生成新种群,对新种群中的每个个体采用虚拟机分配列表的单点变异操作;所述虚拟机分配列表的参数化均匀交叉操作包括如下步骤:步骤B1:基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2,不妨设:步骤B2:由chp1和chp2生成一个子体chc,chc中的前I个基因以ξ∈[0,1)的概率来自父体chp1即以1-ξ的概率来自父体chp2即把chc中的后I个基因置为空即操作结束;所述虚拟机分配列表的单点变异操作包括如下步骤:步骤C1:生成一个[0,1)之间的随机数λ,如果λ<pm那么转到步骤C2,否则转到步骤C3;步骤C2:在个体的虚拟机分配列表{g1,…,gI}中随机选择一个基因gi;从VMi中重新随机选择一个虚拟机,不妨设为vmj,gi=j;步骤C3:虚拟机分配列表的单点变异操作结束;其中:pm∈(0,1]是变异率;步骤4:对新种群的每个个体采用基于关键任务优先调度的方法生成个体的任务调度顺序列表,本文档来自技高网
...

【技术保护点】
1.一种混合启发式和遗传算法的两阶段云工作流调度优化方法,其特征在于:包括以下步骤:/n步骤1:形式化调度问题,获取调度优化所需的信息;/n获取任务集T={t

【技术特征摘要】
1.一种混合启发式和遗传算法的两阶段云工作流调度优化方法,其特征在于:包括以下步骤:
步骤1:形式化调度问题,获取调度优化所需的信息;
获取任务集T={t1,t2,…,tI},其中I是任务的数量,ti表示任务i,即编号为i的任务;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,2…,I;



获取任务相关参数:任务i的长度ti.length,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表ti.IFL,任务i被处理后产生的输出文件列表ti.OFL,及文件列表中文件file的大小file.size,其中i=1,2…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:



获取云计算环境下的虚拟机集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:初始化当代种群;
采用基于负载均衡关键任务优先的个体随机生成方法生成N个不同的个体,形成初始当代种群,其中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个被调度的;
所述基于负载均衡关键任务优先的个体随机生成方法包括如下步骤:
步骤A1:基于负载均衡的方法生成虚拟机分配列表;
步骤A2:计算任务的处理时间:
步骤A3:计算处理任务时需要从共享数据库获得输入文件的传输时间:



步骤A4:计算处理任务时需要从其它虚拟机获得输入文件的传输时间:


是处理的虚拟机;i=1,…,I;
步骤A5:计算任务的排序值rank;
步骤A6:基于关键任务优先调度的方法生成任务调度顺序列表;
步骤A7:输出一个个体{g1,…,gI,gI+1,…,g2I},及其适应度值,操作结束;
所述适应度值为工作流执行时间ms=max{f1,…,fI},个体适应度值越小,则个体越优;
步骤3:对当代种群进行N次虚拟机分配列表的参数化均匀交叉操作生成新种群,对新种群中的每个个体采用虚拟机分配列表的单点变异操作;
所述虚拟机分配列表的参数化均匀交叉操作包括如下步骤:
步骤B1:基于排序的轮赌法从当代种群中随机选择两个不同个体作为父体1和父体2,不妨设:
步骤B2:由chp1和chp2生成一个子体chc,chc中的前I个基因以ξ∈[0,1)的概率来自父体chp1即以1-ξ的概率来自父体chp2即把chc中的后I个基因置为空即操作结束;
所述虚拟机分配列表的单点变异操作包括如下步骤:
步骤C1:生成一个[0,1)之间的随机数λ,如果λ<pm那么转到步骤C2,否则转到步骤C3;
步骤C2:在个体的虚拟机分配列表{g1,…,gI}中随机选择一个基因gi;从VMi中重新随机选择一个虚拟机,不妨设为vmj,gi=j;
步骤C3:虚拟机分配列表的单点变异操作结束;
其中:pm∈(0,1]是变异率;
步骤4:对新种群的每个个体采用基于关键任务优先调度的方法生成个体的任务调度顺序列表,获得其适应度值;
步骤5:根据适应度值从小到大从当代种群和新种群中选出N个不同的个体形成新的当代种群;
步骤6:判断是否满足第一阶段迭代终止条件,如满足,则第一阶段进化结束,转到步骤7,否则转到步骤3;
所述第一阶段终止条件为迭代到指定的代数TG1或连续迭代GG1代最优个体没有改进;
步骤7:对当代种群进行N/2次虚拟机分配列表和任务调度顺序列表交叉操作生成新种群,对新种群中的每个个体进行虚拟机分配列表和任务调度顺序列表变异操作;
所述虚拟机分配列表和任务调度顺序列表交叉操作包括如下步骤:
步骤D1:基于排序的轮赌法从当代种群中随机选择两个不同的个体作为父体1和父体2,不妨设为:不妨设生成的子体1和子体2为:
步骤D2:如果与不同,那么转到步骤D3,否则转到步骤D8;
步骤D3:从前向后找出与的第1个不同基因的位置δ1,从后向前找出与的第1个不同基因的位置δ2;如果δ1≠δ2,则转到步骤D4,否则转到步骤D7;
步骤D4:随机产生一个δ1到δ2-1的正整数α;
步骤D5:chc1的虚拟机分配列表部分的前α个基因来自于chp1的虚拟机分配列表部分的前α个基因,即虚拟机分配列表部分的后I-α个基因来自于chp2的虚拟机分配列表部分的后I-α个基因,即
步骤D6:chc2的虚拟机分配列表部分的前α个基因来自于chp2的虚拟机分配列表部分的前α个基因,即虚拟机分配列表部分的后I-α个基因来自于chp1的虚拟机分配列表部分的后I-α个基因,即
步骤D7:如果和不同,则转到步骤D8;否则转到步骤D12;
步骤D8:从前向后找出和的第1个不同基因的位置δ3,从后开始向前找出和的第1个不同基因的位置δ4;
步骤D9:随机产生一个δ3到δ4-1的正整数β;
步骤D10:chc1的调度顺序列表部分的前β个基因来自于chp1的调度顺序列表的前β个基因,即后I-β个基因来自于chp2的调度顺序列表中删除chp1的调度顺序列表的前β个基因值后的基因列表;
步骤D11:chc2的调度顺序列表部分的前β个基因来自于chp2的调度顺序列表的前β个基因,即后I-β个基因来自于chp1的调度顺序列表中删除chp2的调度顺序列表的前β个基因值后的基因列表;
步骤D12:输出操作结束;
所述虚拟机分配列表和调度顺序列表变异操作包括如下步骤:
步骤E1:生成一个[0,1)之间的随机数λ,如果λ<pm,则转到步骤E2,否则转到步骤E6;
步骤E2:从虚拟机分配列表{g1,…,gI}中随机选择一个基因gi,从VMi中重新随机选择一个虚拟机,不妨设为vmj,gi=j;
步骤E3:从任务调度顺序列表{gI+1,…,g2I}中随机选择一个任务gi;
步骤E4:如果任务gi存在父任务则向前找到第一个父任务gi′,令位置值pos1=i′+1,否则令pos1=I+1;如果任务gi存在子任务则向...

【专利技术属性】
技术研发人员:李研彪纪仁全单晓杭叶必卿张利计时鸣谢毅
申请(专利权)人:浙江工业大学
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1