欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2017104916078
申请人: 浙江工业大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2023-12-11
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:包括以下步骤:第一步:形式化描述云计算环境下的负载均衡任务调度问题,并给出对于云计算环境下各元素相关定义,包括:云任务T、虚拟机资源VM、执行时间矩阵CT、云任务到虚拟机的分配矩阵P、任务最早完成时间makespan、总任务最优完成时间VL和负载均衡度LBp;

第二步:基于贪心算法思想求得任务调度初始解,使用对时间贪心的算法,对任务调度初始解进行求解,过程为:先通过计算获得每个任务在相应虚拟机资源上的最小完成时间列表,然后在这些最小完成时间中,选取出其中的最大值与最小值进行组合,如果该任务组合对相对于其他任务组合对分配时间最优,就完成任务资源分配;如果不是最优,即将任务对分配给其他虚拟机资源;若任务对分配存在多种方案,挑选任务运行数最少的虚拟机资源分配;

第三步:针对不同任务分配方案,根据虚拟机处理能力MIPS、指令的执行成本以及延迟成本,定义虚拟机利用效益函数,用于衡量虚拟机的使用效益;根据虚拟机总利用效益,以及虚拟机的总负载平衡度,定义任务调度方案P下的优值(benefit)函数Bp,用于衡量该任务调度方案的任务优值,过程如下:

3.1、在任务分配方案P下,定义虚拟机vmj当前状态下VMUj为虚拟机vmj的利用效益,函数如下:VMUj=vmu(α,DP,MIPS)

其中α为虚拟机处理指令的执行成本,DP为处理指令的延迟成本;

3.2、定义n个不同任务调度到m个不同虚拟机上的平均负载,即总任务最优完成时间为即 假设,在任务调度方案P下,虚拟机总的负载均衡度定义该任务调度方案P下的优值函数Bp,用于衡量任务调度方

案P的任务优值,主要函数如下:

其中w1,w2为权重值。VMU为虚拟机利用效益和,LBp为该任务调度方案下的负载均衡度;

第四步、结合贪心算法获得的任务调度初始解,通过衡量包含效益值以及负载均衡度的优值函数,得出基于Tabu搜索算法优化后的任务调度分配策略。

2.如权利要求1所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第四步中,使用禁忌算法获取任务调度最优解的过程包括以下步骤:

4.1、假设在某个云任务环境下,其中不可再分的云任务的总数为n,初始化禁忌数组tabuList[1,2,…,n],其中数组的初始值均为1,用于标识该任务可以被交换;

4.2、虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即通过计算,获取任务负载VL最大以及最小的虚拟机VMmax,VMmin;

4.3、若分配至VMmax的任务在tabuList中的值均为0,即均被置为禁止交换状态,则跳转到步骤4.8,否则跳转到4.4步;

4.4、选择虚拟机VMmax上可被用于交换的任务tk,并设置其禁忌值tabuList[k]=0;

4.5、若分配至虚拟机VMmin的任务均被禁止交换,则跳转到4.8;

4.6、分别选择虚拟机VMmin上可交换任务tl,根据3.2,计算各任务交换状态下的调度方案的优值函数值Bp,选择使优值函数值最高的任务对(k,l)进行交换;

4.7、若交换后的优值函数Bp的值大于原优值函数的值,则完成任务交换,更新禁忌表tabuList[l]=0,并且同时更新负载最大以及最小的虚拟机VMmax,VMmin的负载VL,跳转到步骤4.2;

4.8、结束算法,获得任务调度的最优分配方案。

3.如权利要求2所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第四步中,对修改禁忌表tabuList中禁忌对象的次数进行记录。其记录次数用pt表示,初始值为0,当禁忌对象进入禁忌表时,pt将被加1;当连续k次tabuList集没有更新时,即pt=k时,将会启动惩罚策略,定义虚拟机随机分量函数P*(k):P*(k)=P(k)+w*pt

其中P(k)为当前最小虚拟机的索引量,w为随机惩罚常量,k为记录次数阈值,虚拟机分量函数的增加会对最小任务负载VL虚拟机VMmin的选择产生影响,最小虚拟机的索引量P(k)会偏移,根据最新的P(k)选择相邻的虚拟机代替VMmin,从而引导搜索跳出局部最优。

4.如权利要求3所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述步骤4.1中,增加虚拟机随机分量函数,初始化记录次数pt=0,即随机分量函数阈*值k;所述步骤4.2中,增加对于阈值k判断,若pt>=k,则使用随机分量函数P (k)对VMmin的选择使用惩罚策略,若pt<=k,则跳过进入下一步;所述步骤4.7中,增加对于记录次数pt的操作,若交换后的优值函数Bp的值小于原优值函数的值,则记录次数pt加1,否则,pt不变,进入下一步。

5.如权利要求1~4之一所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第一步中,云计算环境下各元素相关定义如下:

1.1、假设云环境下,任务作业已经分解为n个无法再分割的子任务的集合,定义任务集合T={t1,…,ti,…,tn},其中ti为分解成的任务集合中的第i个任务(i=1,2,…,n),n为任务数量,且定义MIi为任务ti的总指令长度;

1.2、假设有m个虚拟资源参与任务的处理,且虚拟资源以虚拟机的方式提供。定义虚拟机集合VM={vm1,…,vmj,…,vmm},其中vmj为第j个虚拟机资源,j=1,2,…,m,m为虚拟机数量,且定义MIPSj为虚拟机vmj的指令执行速度,单位:每秒执行指令条数;

1.3、定义n个不同任务T调度到m个不同虚拟机VM上所有可能的任务调度方案集η,定义P代表任务分配方案集η中的一种任务调度方案,即一个n×m的矩阵,其中pij表示任务ti与虚拟机vmj的分配关系,且p∈{0,1}, i∈{1,2,…,n},j∈{1,2,…,m},即如果任务ti分配在虚拟机vmj上执行,则pij=1,否则pij=0;

1.4、云环境下,假定每个任务只能分配到单台虚拟机上执行,且在某个时间段,一个虚拟机只能执行一个任务,定义n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT,其中CT[i][j]用于表示任务ti在虚拟机资源vmj上的任务完成时间,即CT[i][j]=MIi/MIPSj,下文用ctij表示;

1.5、对于某任务分配方案P,假设虚拟机vmj上已经分配了前k-1个任务,定义虚拟机vmj的当前负载vlj为分配给虚拟机vmj的所有任务所需执行时间,即 定义makespankj为任务tk在虚拟机vmj上的时间跨度,即任务tk在vmj上执行的最早完成时间,makespankj=vlj+ctkj,定义虚拟机的负载VLj为分配给第j个虚拟机vmj所有任务的预期完成时间,即

6.如权利要求5所述的一种基于BP-Tabu搜索的云任务负载均衡调度方法,其特征在于:所述第二步中,使用对时间贪心的算法对任务调度初始解进行求解,包括以下步骤:

2.1、初始化任务集合T以及虚拟机集合VM,由1.1,1.2已知MIi表示任务ti的指令长度,MIPSj表示虚拟机vmj的每秒处理指令数,由1.4已知n个不同的任务调度到m个不同台虚拟机上的预期完成时间矩阵CT;

2.2、将任务集合根据MI的大小进行降序排列,虚拟机集合根据MIPS进行升序排列;然后,初始化CT矩阵、行号h=0,由1.5已经定义makespanij为当前任务ti分配给虚拟机vmj的时间跨度,即任务ti在vmj上执行的最早完成时间;

2.3、判断所有任务是否已经被分配完成,若完成分配,则结束算法跳转到2.7获得任务调度初始解,否则进入2.4;

2.4、从CT矩阵行号为h开始,每次都尝试将任务分配给最后一列对应的虚拟机资源;

2.5、如果当前虚拟机未分配任务,则比较当前任务调度给该虚拟机是否最优,若已经分配任务,则比较makespanij是否为最优值,若是,那么完成任务分配,跳到2.6;否则它将分配给使makespanij结果最优的虚拟机资源vmj,并且跳转2.6;

2.6、更新行号h=h+1,跳转到2.3;

2.7、若任务对调度存在多种方案,挑选任务运行数最少的虚拟机资源分配,实现初始解的负载均衡。