[发明专利]云计算环境下基于分布式估计算法的工作流执行优化方法在审
申请号: | 201911259945.4 | 申请日: | 2019-12-10 |
公开(公告)号: | CN111026533A | 公开(公告)日: | 2020-04-17 |
发明(设计)人: | 谢毅;桂奉献;孙鹤 | 申请(专利权)人: | 浙江工商大学 |
主分类号: | G06F9/48 | 分类号: | G06F9/48;G06F9/455 |
代理公司: | 杭州浙科专利事务所(普通合伙) 33213 | 代理人: | 吴秉中 |
地址: | 310012 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 计算 环境 基于 分布式 估计 算法 工作流 执行 优化 方法 | ||
1.一种云计算环境下基于分布式估计算法的工作流执行优化方法,其特征在于:包括以下步骤:
步骤1:获取云工作流执行优化所需的信息;
获取任务集T={t1,...,tI},ti表示任务i,即编号为i的任务;其中I是需要调度的任务数量;
获取任务间的时序关系:任务i的父任务集PRi,任务i的子任务集SCi,其中i=1,…,I;
获取任务相关参数:任务i的长度leni,即任务i被虚拟机处理时需要耗费的指令数量,处理任务i时需要的输入文件列表IFLi、任务i被处理后产生的输出文件列表OFLi、及文件列表中文件file的大小file.size,其中:i=1,…,I;任务i是任务i+的父任务的充要条件为:存在一个文件file,file是任务i的输出文件同时又是任务i+的输入文件,即:
获取云计算环境下的虚拟机类型集VM={vm1,vm2,…,vmJ},其中J是虚拟机的类型数量,vmj表示j类虚拟机;
获取虚拟机相关参数:j类虚拟机的计算能力psj,j类虚拟机的带宽bwj,j类虚拟机的单位时间成本vcj,j类虚拟机的固定起租成本fcj,j类虚拟机的最小计费时间单位utj,j类虚拟机的最小起租时间ftj;租用j类虚拟机的成本计算如下:其中:lt为租用时间,j=1,2…,J;
获取云计算环境下工作流执行的成本约束Budget与时间约束Deadline;若没有成本约束则设置Budget=MBV,若没有时间约束则设置Deadline=MDV;其中:MBV为成本上限,MDV为时间上限;
步骤2:计算任务的层次值;
对于没有父任务的开始任务i,其层次值为:
lvli=1 (1)
其它任务的层次值采用如下递归公式进行计算:
步骤3:初始化当代种群,令BtCh=Null;
基于层次和效益比生成1个个体,对初始概率模型进行N-1次采样生成N-1个个体,形成初始当代种群;其中N是种群规模;
所述个体编码方法如下:ch={gr1,…,grI;gs1,…,gsI;gt1,…,gtI},其中{gr1,…,grI}是任务调度顺序列表,为任务编号的一个拓扑排序;{gs1,…,gsI}是虚拟机分配列表,gsi表示给第i个调度的任务分配的虚拟机实例编号,其中:gs1=1,gsi≤max{gs1,…,gsi-1}+1;{gt1,…,gtI}是虚拟机类型列表,gti表示编号为i的虚拟机实例的类型,gt1,…,gtI的取值为1到J之间的整数值;
所述基于层次和效益比生成1个个体包括如下步骤:
步骤A1:根据任务层次值从小到大随机排列任务,即层次值小的排在大的前面,具有相同层次值的则随机排列,形成个体的任务调度顺序列表{gr1,…,grI};
步骤A2:基于效益比生成个体的虚拟机分配列表{gs1,…,gsI}和虚拟机类型列表{gt1,…,gtI};获得所有任务的执行时间和完成时间:eti、fi,i=1,…,I;
步骤A3:输出一个个体ch1={gr1,…,grI;gs1,…,gsI;gt1,…,gtI},及其所有任务的执行时间和完成时间:eti、fi,i=1,2…,I,并计算其工作流响应时间rs1,操作结束;
所述概率模型包括任务调度顺序概率模型PMS(g)、虚拟机分配概率模型PMA(g)和虚拟机类型概率模型PMT(g);
其中βi,i′(g)表示在第g代第i′个调度的任务是ti的概率,
其中αi,k(g)表示在第g代给第i个调度的任务分配编号为k的虚拟机实例的概率,
其中δk,j(g)表示在第g代编号为k的虚拟机实例其类型是j的概率;
初始任务调度顺序概率模型为:
其中:STSρ={ti|ξi<ρ≤I-ζi}是可以安排在第ρ个调度的任务集,ζi是任务i的子孙任务的数量,ξi是任务i的祖先任务的数量;
标记值
所述子孙任务和祖先任务的定义描述如下:如果存在一个任务序列满足是的父任务,其中1≤k<n,那么是的祖先任务,是的子孙任务;
初始虚拟机分配概率模型为:
初始虚拟机类型概率模型为:
J是虚拟机的类型数量;
对概率模型PMS(g)、PMA(g)和PMT(g)进行1次采样生成1个个体包括如下步骤:
步骤B1:虚拟机类型的采样:
步骤B1.1:令变量k=1;
步骤B1.2:获取编号为k的虚拟机实例的类型是j的概率Ak,j=δk,j(g),j=1,…,J;计算累计概率:
步骤B1.3:产生1个随机数λ∈[0,1),如果那么选择类型j,令gtk=j;
步骤B1.4:令k=k+1;如果k≤I,转到步骤B1.2,否则已获得虚拟机类型列表,转到步骤B2;
步骤B2:系统状态初始化:
步骤B2.1:令所有虚拟机可得时间段列表vatlk={[0,∞]},k=1,…,I;
步骤B2.2:令任务的就绪时间rti=0、任务集P(ti)=PRi,i=1,…,I;令任务集任务集UT=T;
步骤B2.3:把UT中的ti移到RT中;令变量q=1、变量MI=1;
步骤B3:根据[β1,q(g)…βI,q(g)]T采用轮盘赌法从RT中随机选择一个任务,不妨设为ti;令grq=i;
步骤B4:根据[αq,1(g)…αq,I(g)]采用轮盘赌法在[1,MI]之间随机选择一个虚拟机实例编号,不妨设为k,令gsq=k;如果k=MI,则MI=MI+1;
步骤B5:把ti分配给编号为k的虚拟机实例:
步骤B5.1:计算ti的执行时间
步骤B5.2:在vatlk中从早到晚找出一个空闲时段[νk,υk],满足υk-νk≥eti和υk-eti≥rti;
步骤B5.3:ti的开始时间si=max{νk,rti},ti的结束时间fi=si+eti;
步骤B5.4:更新ti的子任务的就绪时间
步骤B5.5:在虚拟机可得时间段列表vatlk中删除[νk,υk],插入区间长度大于0的[νk,si]和[fi,υk];
步骤B5.6:在所有中删除ti,在RT中删除ti;
步骤B5.7:把UT中的ti移到RT中;
步骤B6:如果RT不为空,则q=q+1,转到步骤B3,否则转到步骤B7;
步骤B7:获得一个个体chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI}及其所有任务的执行时间和完成时间:eti、fi,i=1,2…,I,计算其工作流响应时间rsn,n∈{2,…,N},操作结束;步骤4:对当代种群中的每个个体采用FBI&D进行解码与改进,获得每个个体的工作流执行成本和响应时间,然后计算所有不可行个体的相对适应度值和可行个体的绝对适应度值;如果BtCh=Null或当代种群中的最优个体优于BtCh中保存的个体,则用最优个体替换保存在BtCh中的内容;
对于种群中的每个个体chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI},n=1,…,N;所述FBI&D包括如下步骤:
步骤C1:形成反向个体
步骤C1.1:根据任务完成时间fi从大到小重新排列任务调度顺序列表{gr1,…,grI},即把任务调度顺序列表中的第i个基因值设置为倒数第i个完成的任务编号,i=1,…,I;形成
步骤C1.2:为维持原资源配置方案和编码的合法性,调整虚拟机实例列表{gs1,…,gsI}和虚拟机类型列表{gt1,…,gtI},形成
步骤C1.2.1:令变量ε=1、变量δ=1;令标记值flg1=…=flgI=0;令k=max{gs1,…,gsI}+1,…,I;
步骤C1.2.2:如果flgε=0,那么转到步骤C1.2.3;否则转到步骤C1.2.5:
步骤C1.2.3:找出任务在{gr1,…,grI}中的调度顺序,不妨设为在chn中找出使用编号为的虚拟机实例的任务编号集在中找出ST中对应任务的调度顺序集
步骤C1.2.4:对于所有的i∈SI,令flgi=1;令令δ=δ+1;
步骤C1.2.5:令ε=ε+1;如果ε≤I,则转到步骤C1.2.2,否则转到步骤C2;
步骤C2:采用基于插入模式的串行反向个体解码方法对反向个体进行解码,获得所有任务反向完成时间及其工作流反向响应时间若小于rsn,则转到步骤C3,否则,转到步骤C5;
步骤C3:形成正向个体chn={gr1,…,grI;gs1,…,gsI;gt1,…,gtI}:
步骤C3.1:根据任务反向完成时间从大到小重新排列任务调度顺序列表即把任务调度顺序列表中的第i个基因值设置为倒数第i个完成的任务编号,i=1,…,I;形成{gr1,…,grI};
步骤C3.2:为维持原资源配置方案和编码的合法性,调整虚拟机实例列表和虚拟机类型列表形成{gs1,…,gsI}、{gt1,…,gtI}:
步骤C3.2.1:令变量ε=1、变量δ=1;令标记值flg1=...=flgI=0;令
步骤C3.2.2:如果flgε=0,那么转到步骤C3.2.3;否则转到步骤C3.2.5:
步骤C3.2.3:找出任务grε在中的调度顺序,不妨设为在中找出使用编号为的虚拟机实例的任务编号集在{gr1,…,grI}中找出ST中对应任务的调度顺序集SI={i|gri∈ST};
步骤C3.2.4:对于所有的i∈SI,令gsi=δ、flgi=1;令令δ=δ+1;
步骤C3.2.5:令ε=ε+1;如果ε≤I,则转到步骤C3.2.2,否则转到步骤C4;
步骤C4:采用基于插入模式的串行正向个体解码方法对正向个体chn进行解码,获得所有任务的完成时间f1,…,fI及其工作流响应时间rsn;如果rsn小于则转到步骤C1,否则,转到步骤C5;
步骤C5:输出正向个体chn及其工作流响应时间rsn,计算其工作流执行成本ctn,操作结束;
所述基于插入模式的串行反向个体解码方法对反向个体进行解码包括如下步骤:
步骤D1:令所有任务的反向就绪时间是任务输出给共享数据库的输出文件集,即令虚拟机可得时间段列表令变量ε=1;
步骤D2:选取编号为的任务;
步骤D3:基于插入模式把任务i分配给编号为的虚拟机实例:
步骤D3.1:在vatlk中从早到晚找出一个空闲时段[νk,υk],满足υk-νk≥eti和
步骤D3.2:计算任务i的反向开始时间反向完成时间
步骤D3.3:更新任务i的父任务的反向就绪时间
步骤D3.4:在虚拟机可得时间段列表vatlk中删除[νk,υk],插入区间长度大于0的和
步骤D4:令ε=ε+1,如果ε≤I,则转到步骤D2,否则步骤D5;
步骤D5:获得所有任务的反向完成时间及其工作流反向响应时间操作结束;
所述基于插入模式的串行正向个体解码方法对正向个体chn进行解码包括如下步骤:
步骤E1:令所有任务的就绪时间rti=0,i=1,…,I;令变量ε=1;令所有虚拟机实例的可得时间段列表vatlk={[0,∞]},k=1,…,max{gs1,…,gsI};
步骤E2:选取编号为i=grε的任务;
步骤E3:基于插入模式把任务i分配给编号为k=gsε的虚拟机实例;
步骤E3.1:在vatlk中从早到晚找出一个空闲时段[νk,υk],满足υk-νk≥eti和υk-eti≥rti;
步骤E3.2:计算任务i的开始时间si=max{νk,rti},完成时间fi=si+eti;
步骤E3.3:更新任务i的子任务的就绪时间
步骤E3.4:在虚拟机可得时间段列表vatlk中删除[νk,υk],插入区间长度大于0的[νk,si]和[fi,υk];
步骤E4:令ε=ε+1,如果ε≤I,则转到步骤E2,否则步骤E5;
步骤E5:获得所有任务的结束时间fi,i=1,…,I,计算其工作流响应时间rsn,操作结束;
步骤5:如果终止条件不满足,转到步骤6;否则转到步骤8;
所述终止条件为迭代到指定的代数TG或连续迭代GG代保存在BtCh中的最优个体没有改进;
步骤6:构建精英种群,更新概率模型;
从当代种群从优到劣选出个个体作为当代精英种群POPe,其中:Ne为精英种群规模,re∈(0,1)为精英率;
更新概率模型方法如下:
标记值
标记值
标记值
分别为虚拟机分配概率模型、任务调度顺序概率模型、虚拟机类型概率模型的更新速率;
步骤7:对当前概率模型PMS(g)、PMA(g)和PMT(g)进行N次采样生成N个个体,形成的新种群,令新种群为当代种群;转到步骤4;
步骤8:如果BtCh中保存的是可行个体,则输出其对应的执行方案作为优化方案;否则无可行执行方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工商大学,未经浙江工商大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911259945.4/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种元件对位方法及装置
- 下一篇:一种井下可控式单向阀及控制方法