一种基于免疫退火算法的云任务调度方法及装置

文档序号:30489892发布日期:2022-06-22 01:26阅读:116来源:国知局
一种基于免疫退火算法的云任务调度方法及装置

1.本发明涉及一种基于免疫退火算法的云任务调度方法及装置,属于技术领域。


背景技术:

2.云计算是最近几十年兴起的一项技术,它利用互联网以及位于中心的远程服务器来存储和处理数据和应用程序,是未来向数据中心交付it需求的一种实用方法。虚拟化是云计算模型背后的主要关键技术,它支持云数据中心中的物理资源数量之间的动态共享。虚拟化是以一个或多个虚拟机的cpu、网络带宽和内存为基础对物理资源进行划分,打破实体结构间的无法切割的障碍,使用户可以使用比原来更好的组合方式应用资源。
3.云计算通常采用mapreduce模型,如图1所示。首先将用户的请求拆分为多个子任务,然后数据中心将子任务分配到各个虚拟机,再把虚拟机分配到各物理主机上进行运算,分配过程中,数据中心根据子任务的计算资源需求如网络带宽、存储的大小选择合适的虚拟机对子任务提供相应的资源,最后将任务返回给用户。将任务拆分为多个子任务映射到各个虚拟机虽然可以高效的响应用户请求,但如何将子任务映射到虚拟机并将虚拟机映射到物理机是一个np-hard难题,需要用合适的调度算法来解决。然而目前云平台已有的调度算法都存在一些问题,比如fifo算法,此调度算法资源的利用率较低;公平调度算法,此调度算法未考虑资源的负载均衡度,导致各从节点资源负载不平衡;sjf算法,此算法会优先调度短作业任务,但可能会导致长作业任务等待时间过长久久不能被执行。


技术实现要素:

4.本发明的目的在于克服现有技术中的不足,提供一种基于免疫机制的改进模拟退火算法,在缩短任务调度时间的同时保证算法避免陷入局部最优,提高任务部署的效率。
5.为达到上述目的,本发明是采用下述技术方案实现的:
6.第一方面,本发明提供了一种基于免疫退火算法的云任务调度方法,包括如下步骤:
7.步骤a:获取退火表参数,并对所述退火表参数进行初始化,所述退火表参数包括初始温度t0,冷却参数α,最大迭代次数l
max
,终止温度te;
8.步骤b:将每一种虚拟机对任务的可行分配方案视为一个抗体,多个抗体组成一个抗体群,适应度函数视为抗原,将抗体和抗原的结合程度视为亲和度,亲和度越大表示抗体与抗原的结合程度越好;所述分配方案为随机生成的可行虚拟机对任务的映射方案;
9.建立虚拟机对各个任务的映射关系,初始化抗体群,计算初始化后的抗体群中每一个抗体与抗原的亲和度;
10.步骤c:根据各抗体的亲和度是否高于阈值更新抗体种群;
11.步骤d:对初始温度进行降温操作,根据以下迭代公式对温度以及迭代次数进行更新;
12.t
k+1
=α*tkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
13.l=l+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
14.其中,t
k+1
是初始温度进行降温k次后的温度值,即当前温度,α是冷却参数,用于控制温度下降速率,l为当前迭代次数;
15.步骤e:计算新种群的亲和度并按照由大到小排列,判断l是否达到最大迭代次数或者当前温度是否达到目标温度,若达到最大迭代次数或者终止温度,则终止算法得出最优解;若未达到最大迭代次数或者目标温度,则继续循环进入步骤c。
16.作为本发明的进一步改进方案,根据分配方案建立虚拟机对各个任务的映射关系,将分配方案的每一个解视为一个抗体,组成抗体群,初始化抗体群的方法包括以下步骤:
17.按照任务的资源需求大小形成一个先进先出队列,然后将任务逐个分配到满足其资源需求的当前最小工作负载的虚拟机上,形成一个初始解;
18.将当前所有任务分配完成后的虚拟机按照工作负载大小进行降序排序,把当前最大工作负载的虚拟机上的预期完成时间最小的任务分配到当前工作负载最小的虚拟机上,形成当前解的一个邻域解;
19.循环操作,生成多个邻域解,将每个初始解或邻域解视为一个抗体,将所有抗体设置为一个初始抗体群。
20.作为本发明的进一步改进方案,所述适应度函数包括完工时间,各虚拟机的负载均衡度以及公平性,计算初始化后的抗体群中每一个抗体与抗原的亲和度的方法包括以下步骤:
21.步骤2.1)对各个任务部署到相应的虚拟机进行二进制编码,有n个任务,m个虚拟机,定义x
ij
为第i个任务分配到第j个虚拟机上执行,若第i个任务在第j个虚拟机上执行,则x
ij
=1,否则x
ij
=0;
22.步骤2.2)用户发出任务请求,每个虚拟机完成各项任务需要的时间为tj,其中比较各虚拟机的完工时间,以下式得出系统最大完工时间
23.makespan=times+max(tj);
24.其中,times是任务调度时间,time
ij
是每个任务执行完成时间,taski是第i个任务的任务长度,mipsj是运行第i个任务的第j个虚拟机的计算能力。
25.步骤2.3)完成第i个任务的虚拟机的工作负载为vi:
[0026][0027]
式中,c
cpuj
和c
memj
分别是第j个虚拟机上当前剩余cpu和内存资源,r
cpui
和r
memi
分别是第i个任务所需的cpu和内存资源;则系统的负载均衡度为b:
[0028][0029]
式中,rj为第j个虚拟机上的总工作负载,为第j个虚拟机上的总工作负载,为当前所有虚拟机
的平均工作负载,
[0030]
步骤2.4)第i个任务的公平性函数可表示为β为一个常数,β∈(0,1];则整个系统的公平性函数表示为
[0031]
式中,e
cpui
和e
memi
为第i个任务期望分配到的cpu和内存资源,a
cpui
和a
memi
为第i个任务实际分配到的cpu和内存资源;
[0032]
记总适应度函数为c(s)=μ1*makespan+μ2*b+μ3*f,则记亲和度函数为
[0033][0034]
式中,aff(s)表示当前抗体的亲和度,makespan表示系统完工时间,b表示系统负载均衡度,f表示系统的全局公平性,μ1,μ2,μ3分别是上述三个指标的权重,μ1+μ2+μ3=1。
[0035]
作为本发明的进一步改进方案,根据各抗体的亲和度是否高于阈值更新抗体种群的方法包括:
[0036]
将亲和度高于特定阈值的优质抗体加入新种群,
[0037]
对抗体进行变异操作,获得新抗体:
[0038]
child=parent1+γ*(parent
2-parent1)
[0039]
其中,child为经变异产生的新抗体,parent1是待变异的克隆优质抗体或劣质抗体,parent2是上述随机选取的一个优质抗体,γ是由[0,1]上均匀分布的随机数生成的比例因子;
[0040]
新抗体群接受解变异概率p为
[0041][0042]
式中,aff(s)和分别表示当前抗体的亲和度和所有抗体平均亲和度,η是自定义的阈值,适应度函数值应越小,抗体与抗原的亲和度越大,得到的解越优;p是新抗体群接受新解的概率,当抗体的亲和度小于阈值时,则产生一个随机数ρ(0<ρ<1),若p>ρ,则对差解进行变异操作。
[0043]
作为本发明的进一步改进方案,所述冷却参数α满足以下公式:
[0044][0045]
式中,c是振荡周期,i是迭代次数,λ是振荡幅度,ω是调节因子,在不同振荡周期
内λ和ω的值不同。
[0046]
第二方面,本发明提供一种基于免疫退火算法的云任务调度装置,包括:
[0047]
获取模块:用于获取退火表参数,并对所述退火表参数进行初始化,所述退火表参数包括初始温度t0,冷却参数α,最大迭代次数l
max
,终止温度te;
[0048]
计算模块:用于将每一种虚拟机对任务的可行分配方案视为一个抗体,多个抗体组成一个抗体群,适应度函数视为抗原,将抗体和抗原的结合程度视为亲和度,亲和度越大表示抗体与抗原的结合程度越好;所述分配方案为随机生成的可行虚拟机对任务的映射方案;
[0049]
建立虚拟机对各个任务的映射关系,初始化抗体群,计算初始化后的抗体群中每一个抗体与抗原的亲和度;
[0050]
更新模块:用于根据各抗体的亲和度是否高于阈值更新抗体种群;
[0051]
降温模块:用于对初始温度进行降温操作,根据以下迭代公式对温度以及迭代次数进行更新;
[0052]
t
k+1
=α*tk[0053]
l=l+1
[0054]
其中,t
k+1
是初始温度进行降温k次后的温度值,即当前温度,α是冷却参数,用于控制温度下降速率,l为当前迭代次数;
[0055]
输出模块:用于计算新种群的亲和度并按照由大到小排列,判断l是否达到最大迭代次数或者当前温度是否达到目标温度,若达到最大迭代次数或者终止温度,则终止算法输出最优解。
[0056]
第三方面,本发明提供了一种基于免疫退火算法的云任务调度装置,包括处理器及存储介质;
[0057]
所述存储介质用于存储指令;
[0058]
所述处理器用于根据所述指令进行操作以执行第一方面所述方法的步骤。
[0059]
与现有技术相比,本发明所达到的有益效果:
[0060]
1、本发明采用了一种基于免疫机制的改进模拟退火调度算法,将模拟退火算法接受坏解的思想加入到免疫算法中,防止算法陷入局部最优;
[0061]
2、本发明采用振荡式冷却参数,提升了算法收敛速度的同时也避免丢失目标函数的最优值,通过不断地迭代建立任务到虚拟机的映射关系,并且根据虚拟机资源使用情况,提供了一种较好的可行初始解群,使系统达到较好的负载均衡以及公平性要求。
附图说明
[0062]
图1为当前已有的云计算资源调度模型。
[0063]
图2为本发明基于免疫机制的改进模拟退火调度算法流程图。
[0064]
图3为本发明基于免疫机制的改进模拟退火调度算法中冷却参数α示意图。
具体实施方式
[0065]
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0066]
实施例一:
[0067]
本实施例提供一种基于免疫退火算法的云任务调度方法,包括如下步骤:
[0068]
步骤1)如图1所示,在本发明中首先确定任务和虚拟机的映射关系。对各个任务部署到相应的虚拟机进行二进制编码,假设有n个任务,m个虚拟机,定义x
ij
为第i个任务分配到第j个虚拟机上执行,若第i个任务在第j个虚拟机上执行,则x
ij
=1,否则x
ij
=0。
[0069]
步骤2)用户发出任务请求,每个虚拟机完成各项任务需要的时间为tj,其中比较各虚拟机的完工时间,得出系统最大完工时间makespan=times+max(tj)。
[0070]
其中,times是任务调度时间,time
ij
是每个任务执行完成时间,taski是第i个任务的任务长度,mipsj是运行第i个任务的第j个虚拟机的计算能力。
[0071]
步骤3)记完成第i个任务的虚拟机的工作负载为vi,c
cpuj
和c
memj
分别是第j个虚拟机上当前剩余cpu和内存资源,r
cpui
和r
memi
分别是第i个任务所需的cpu和内存资源,rj为第j个虚拟机上的总工作负载,为第j个虚拟机上的总工作负载,为当前所有虚拟机的平均工作负载,则系统的负载均衡度为
[0072]
步骤4)记e
cpui
和e
memi
为第i个任务期望分配到的cpu和内存资源,a
cpui
和a
memi
为第i个任务实际分配到的cpu和内存资源,第i个任务的公平性函数可表示为β为一个常数,β∈(0,1]。则整个系统的公平性函数表示为
[0073]
记总适应度函数为c(s)=μ1*makespan+μ2*b+μ3*f,则亲和度函数为其中,makespan表示系统完工时间,b表示系统负载均衡度,f表示系统的全局公平性,μ1,μ2,μ3分别是上述三个指标的权重,μ1+μ2+μ3=1。
[0074]
步骤5)确定好适应度函数及亲和度后,如图2所示,根据图中的流程,首先对退火表的各项参数初始化,退火表参数包括初始温度t0,冷却参数α,最大迭代次数l
max
,终止温度te;
[0075]
步骤6)为系统生成一个初始种群,首先按照任务的资源需求形成一个先进先出队列,然后将任务逐个分配到满足其资源需求的当前最小工作负载的虚拟机上,形成一个初始解。然后将当前所有任务分配完成后的虚拟机按照工作负载大小进行降序排序,把当前最大工作负载的虚拟机上的预期完成时间最小的任务分配到当前工作负载最小的虚拟机上,形成当前解的一个邻域解。循环操作,生成多个邻域解,将初始解和多个邻域解设置为一个初始抗体群,并计算初始种群各抗体的亲和度。
[0076]
步骤7)判断每个抗体的亲和度是否高于阈值,将亲和度高于特定阈值的优质抗体
加入新种群,然后对优质抗体进行克隆再变异后的新抗体也加入新种群;将亲和度低于特定阈值的劣质抗体以一定概率p进行变异操作加入新种群,并更新抗体种群。
[0077]
child=parent1+γ*(parent
2-parent1)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(1)
[0078][0079]
在上述公式(1)中,child为经变异产生的新抗体,parent1是待变异的克隆优质抗体或劣质抗体,parent2是上述随机选取的一个优质抗体,γ是由[0,1]上均匀分布的随机数生成的比例因子;
[0080]
在上述公式(2)中,aff(s)和分别表示当前抗体的亲和度和所有抗体平均亲和度,在本发明中,适应度函数值应越小,抗体与抗原的亲和度越大,得到的解越优。p是接受新解的概率,当抗体的亲和度小于阈值时,则产生一个随机数ρ(0<ρ<1),若p>ρ,依然有一定的概率对差解进行变异操作,当温度t越来越低时,接受较差解的概率也越来越低。η是自定义的阈值,可以根据自己想要的亲和度标准确定。
[0081]
步骤8)对当前温度进行降温操作,根据以下公式对温度以及迭代次数进行更新;
[0082]
t
k+1
=α*tkꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0083]
l=l+1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0084]
其中,t
k+1
是初始温度进行降温k次后的温度值,α是冷却参数,用于控制温度下降速率。冷却参数α满足以下公式:
[0085][0086]
其中c是振荡周期,i是迭代次数,λ是振荡幅度,ω是调节因子,在不同振荡周期内λ和ω的值应略有不同。α一般取值范围为(0.5,0.99),当α取值较大时,可以得到较好的解,但是算法的收敛速度会大大降低,当α取值较小时,算法的收敛速度很快,但有可能会错过最优解。λ为振荡幅度,ω为调节因子,两个参数的作用都是将α的范围控制在(0.5,0.99)以内,防止算法跑出问题域。
[0087]
如图3所示,为本发明的改进冷却参数示意图,公式(5)是本发明提出的改进冷却参数,在降温过程中较小的冷却参数值保证了算法的收敛速度,较大的冷却参数值保证了算法不会错过最优解,然后振荡周期减小,便于全局搜索和找到局部最优解。
[0088]
步骤9)计算新种群的亲和度并按照由大到小排列,判断是否达到最大迭代次数或者达到目标温度,若达到最大迭代次数或者终止温度,则终止算法得出最优解;若未达到最大迭代次数或者目标温度,则继续循环进入步骤7。
[0089]
本发明采用一种基于免疫机制的改进模拟退火调度算法是一种应用广泛的启发式随机智能优化算法,免疫算法具有人体免疫系统的特征,采用群体搜索策略,通过迭代计算,选择待求问题中的一些特征信息或知识抑制优化过程中的退化现象以获取最优解。模
拟退火算法模拟热力学系统中的退火过程,将目标函数作为能量函数,使变温物体缓慢降温从而达到分子之间能量最低的状态。在模拟退火算法中,有离散的多个状态,每个状态有着与之对应的状态能量,经过一段时间的降温后达到热平衡。模拟退火算法也是贪心算法,但是在其过程中引入了随机因素,以一定的概率接受一个比当前解要差的解,就使得模拟退火算法可以跳出局部最优解,并且这个概率会随着温度下降而降低。
[0090]
综上所述,本发明提供了一种基于免疫退火算法的云任务调度方法,考虑系统资源使用情况以及任务执行时间,构建了一种包括任务执行时间,系统负载均衡,系统公平性的多目标评估模型。求解过程将模拟退火算法接受坏解的思想加入到免疫算法中,防止算法陷入局部最优。采用振荡式冷却参数,在求解过程中加快了算法收敛速度,又避免了跳过最优值,并且在求解过程中考虑了资源使用情况,通过提供一个较好的可行初始解群,不仅保证了系统的负载均衡以及公平性,而且能够进一步缩短任务完工时间。
[0091]
实施例二:
[0092]
本实施例提供一种基于免疫退火算法的云任务调度装置,所述装置包括:
[0093]
获取模块:用于获取退火表参数,并对所述退火表参数进行初始化,所述退火表参数包括初始温度t0,冷却参数α,最大迭代次数l
max
,终止温度te;
[0094]
计算模块:用于将每一种虚拟机对任务的可行分配方案视为一个抗体,多个抗体组成一个抗体群,适应度函数视为抗原,将抗体和抗原的结合程度视为亲和度,亲和度越大表示抗体与抗原的结合程度越好;所述分配方案为随机生成的可行虚拟机对任务的映射方案;
[0095]
建立虚拟机对各个任务的映射关系,初始化抗体群,计算初始化后的抗体群中每一个抗体与抗原的亲和度;
[0096]
更新模块:用于根据各抗体的亲和度是否高于阈值更新抗体种群;
[0097]
降温模块:用于对初始温度进行降温操作,根据以下迭代公式对温度以及迭代次数进行更新;
[0098]
t
k+1
=α*tk[0099]
l=l+1
[0100]
其中,t
k+1
是初始温度进行降温k次后的温度值,即当前温度,α是冷却参数,用于控制温度下降速率,l为当前迭代次数;
[0101]
输出模块:用于计算新种群的亲和度并按照由大到小排列,判断l是否达到最大迭代次数或者当前温度是否达到目标温度,若达到最大迭代次数或者终止温度,则终止算法输出最优解。
[0102]
本实施例的装置可以执行实施例一所述方法。
[0103]
实施例三:
[0104]
本发明实施例还提供了一种基于免疫退火算法的云任务调度装置,包括处理器及存储介质;
[0105]
所述存储介质用于存储指令;
[0106]
所述处理器用于根据所述指令进行操作以执行实施例一所述方法的步骤。
[0107]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实
施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0108]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0109]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0110]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0111]
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1