一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于多目标粒子群算法的工作流调度方法、系统及存储介质与流程

2021-11-09 22:20:00 来源:中国专利 TAG:


1.本发明具体涉及一种基于改进粒子群算法的工作流调度算法,属于云计算技术领域。


背景技术:

2.云计算是基于互联网所提供的一种资源共享的方法,采用虚拟化技术,并且基于即用即付的消费模式将资源模拟成虚拟机来向用户终端提供接近无限的资源,例如:cpu、gpu、内存、存储等资源。
3.在当前在云计算系统中,资源管理由资源配置和资源调度两个阶段组成。资源配置是为最终用户提交的工作负载识别足够的资源,资源调度则是将工作负载映射到配置的资源的过程,并且是云计算技术的核心模块。
4.近年来,研究人员致力于引入元启发式调度算法,大多数主要关注任务的负载均衡供应,以产生高效的资源利用,然而,这种关注会提高大规模任务的执行时间,从而导致大规模任务的调度效率过低。除此之外,目前市面上的大多数调度算法只针对单一性问题进行调度,忽略了综合考量,并且市面上现有的粒子群算法种群单一且容易陷入局部最优解,无法得到最终的优化部署方案。


技术实现要素:

5.本发明所要解决的技术问题是:在云计算系统中,如何降低调度算法陷入局部最优解的概率并提高任务部署的精确性。
6.为解决上述技术问题,本发明采用如下技术方案:
7.一种基于多目标粒子群算法的工作流调度方法,包括以下步骤:
8.1)构建工作流执行开销评估方程;
9.2)构建工作流执行时间评估方程;
10.3)构建集群负载评估方程;
11.4)构建包含上述三种评估方程中的指标的综合评估方程,针对工作流执行开销评估方程、工作流执行时间评估方程、集群负载评估方程和综合评估方程,采用粒子群改进算法进行工作流的调度,所述粒子群改进算法(pso)是将粒子群平均分成四部分,每部分粒子假设均进行c次迭代,每部分粒子的前c*a%次迭代分别寻找上述四种评估方程的最优解,后c*(1

a%)次迭代均寻找综合评估方程的最优解,系数a的取值范围为0≦a≦100。
12.一种基于多目标粒子群算法的工作流调度系统,包括以下程序模块:
13.开销评估模块:用于构建工作流执行开销评估方程;
14.执行时间评估模块:用于构建工作流执行时间评估方程;
15.集群负载评估模块:用于构建集群负载评估方程;
16.求解模块:构建包含上述三种评估方程中的指标的综合评估方程,针对工作流执
行开销评估方程、工作流执行时间评估方程、集群负载评估方程和综合评估方程,采用粒子群改进算法进行工作流的调度,所述粒子群改进算法(pso)是将粒子群平均分成四部分,每部分粒子假设均进行c次迭代,每部分粒子的前c*a%次迭代分别寻找上述四种评估方程的最优解,后c*(1

a%)次迭代均寻找综合评估方程的最优解。
17.一种计算机可读存储介质,用于存储上述基于多目标粒子群算法的工作流调度方法。
18.与现有技术相比,本发明所达到的有益效果是:
19.本发明提出了一个多目标综合评估模型,该模型在传统模型的基础上额外考虑了服务器的降频特性和服务器执行时间的差异化特性,旨在降低工作流的执行时间和执行开销并优化虚拟机的负载均衡,提高集群的资源利用率。其次,本发明还提出了一种基于改进粒子群算法的工作流调度算法,该算法区别于传统粒子群算法中的单目标粒子群,采用了新型多目标粒子群,旨在提高粒子群种群多样性、扩大粒子群搜索法范围,降低调度算法陷入局部最优解的概率并提高任务部署的精确性。除此之外,该算法还区别于传统粒子群算法中的粒子更新策略,采用退火算法中的metropolis准则来更新粒子,旨在提高粒子群的全局搜索能力和局部搜索能力。该算法采用交替更新策略减弱多目标粒子群所带来的复杂度上升的负面效果,使该算法的复杂度在略微高于传统粒子群算法的前提下,充分发挥其性能。
20.1)本发明充分考虑了集群机器的执行能力、降频特性等诸多因素更加科学构造了评估方程并对工作流部署方案进行精准的评估,有效的降低了工作流在集群服务器上的执行开销,执行时间,并且进一步平衡集群服务器的负载
21.2)本发明缓解了原始粒子群算法的过早收敛,物种多样性低的缺陷,保证了算法在求解时,得出的工作流的部署方案更加精确,更加合理。除此之外,调度时间极大的缩短,节约了总的工作流的调度与执行时间。
附图说明
22.图1为本发明举例的工作流模型;
23.图2为本发明改进粒子群调度算法工作流程图。
具体实施方式
24.下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
25.实施例1
26.本发明的一种基于多目标粒子群算法的工作流调度方法,包括以下步骤:
27.1)构建工作流执行开销评估方程;
28.2)构建工作流执行时间评估方程;
29.3)构建集群负载评估方程;
30.4)构建包含上述三种评估方程中的指标的综合评估方程,针对工作流执行开销评估方程、工作流执行时间评估方程、集群负载评估方程和综合评估方程,采用粒子群改进算法进行工作流的调度,所述粒子群改进算法(pso)是将粒子群平均分成四部分,每部分粒子
假设均进行c次迭代,每部分粒子的前c*a%次迭代分别寻找上述四个评估方程的最优解,后c*(1

a%)次迭代均寻找综合评估方程的最优解,在寻找最优解的过程中采用退火概率公式更新每个粒子的状态信息。
31.构建优化目标函数:
32.如图1所示的工作流模拟图,每个小球t代表一个任务,工作流是若干任务t1、t2…
t
n
的组合,对于工作流来说大部分任务都是相互依赖的,工作流用加权有向无环图g=(t,e)来表示,t={t1、t2…
t
n
}代表工作流的n个任务,e={e
ij
|i,j=1,

n}代表任务的依赖情况,如:e
12
代表任务t1执行完毕,并把数据传输给任务t2之后才能执行任务t2,假设虚拟机用vm
i
表示,i=1,2

m,m是虚拟机的数量,
33.每个任务的执行时间公式如下:
[0034][0035][0036]
式中,代表任务t
i
的指令长度,c
vj
代表虚拟机vm
i
的执行能力(mips),代表虚拟机vm
i
的衰减系数(服务器不可能长期工作在最大工作负载),代表任务t
i
在虚拟机vm
j
的执行时间,每个任务的执行时间不能超过各自任务t
i
的截止时间
[0037]
前置任务与后置任务的数据传输时间公式如下:
[0038][0039]
式中,bw代表云服务器的网络带宽,代表任务t
i
向任务t
j
传输的数据的大小,代表任务t
i
向任务t
j
传输数据完毕所花费的时间。
[0040]
在步骤1)中,工作流执行开销评估方程包含工作流的执行开销和前置任务与后置任务的数据传输开销,表达式为:
[0041][0042][0043]
cost≤revenue
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(6)
[0044]
式中,工作流中的任务数是n,虚拟机数是m,是二维变量,代表任务t
i
在虚拟机vm
j
的执行时间,代表任务在虚拟机v
i
的执行代价系数,用于表示服务器执行任务的单位时间开销,代表任务t
i
向任务t
j
传输数据完毕所花费的时间,price
ie
代表
两任务在云服务器网络的数据传输代价,用于表示数据传输的单位时间网络开销,pr(t
i
)代表任务t
i
的所有前置任务,工作流的总开销cost不能超过用户的开销限制revenue。
[0045]
在步骤2)中,任务t
i
的完成时间用表示,工作流的执行时间用其子任务的最大完成时间来表示其中,任务t
i
的完成时间目标方程包含了任务t
i
的执行时间和等待时间,任务t
i
的等待时间包含所有前置任务的最大执行时间和所有前置任务向后置任务t
i
传输的数据时间,公式如下:
[0046][0047]
式中,代表任务t
i
的等待执行时间,pr(t
i
)代表任务t
i
的所有前置任务,代表任务t1向任务t2传输数据完毕所花费的时间,代表t
i
在vm
j
的执行时间;代表着任务t
i
的所有前置任务在vm
i
上的执行时间(这是个集合),从这个集合中选取最大值;
[0048]
任务t
i
的完成时间用公式如下:
[0049][0050]
式中,代表任务t
i
的等待执行时间,代表t
i
在vm
j
的执行时间。
[0051]
工作流的执行时间评估方程如下:
[0052][0053]
式中,工作流任务数是n,代表任务t
i
的最大完成时间。
[0054]
在步骤3)中,负载均衡评估方程是根据服务器的执行时间的差异性建立的,即由单个虚拟机的任务执行时间与虚拟机集群的平均任务执行时间的方差来表示,方差越小则表明服务器负载越均衡,其中单个虚拟机执行任务的总时间方程如下:
[0055][0056][0057]
式中,工作流总任务数是n,是二维变量,代表t
j
在vm
i
的执行时间。
[0058]
虚拟机的平均执行任务时间ave
et

[0059][0060]
上述公式中,工作流任务数是n,虚拟机数是m,代表t
i
在vm
j
的执行时间,是二维变量,代表虚拟机v
i
执行任务的总时间。
[0061]
服务器集群最大负载目标方程用每个虚拟机工作流的执行时间与总虚拟机工作流的平均执行时间的方差表示,方程表达式如下:
[0062][0063]
式中,虚拟机数量是m,代表虚拟机vm
i
执行任务的总时间,ave
et
代表虚拟机的平均执行任务时间,ld代表虚拟机集群的工作负载,ld越小,虚拟机负载约均衡。
[0064]
在步骤4)中,工作流综合评估方程由工作流执行开销评估方程、工作流执行时间评估方程和集群负载评估方程构成,其方程表达式如下:
[0065]
fitness=x1*cost x2*makespan x3*ld
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0066]
cost≤revenue
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0067]
makespan≤d
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(16)
[0068]
式中,x1、x2、x3分别为开销权重系数、时间权重系数和集群负载权重系数,权重系数随任务的特点变化而变化;cost代表工作流的执行开销;d代表工作流的截止日期;makespan代表工作流执行时间,ld代表虚拟机集群的工作负载。
[0069]
在步骤4)中,构建改进粒子群算法:
[0070]
粒子群算法是用多个粒子来模拟鸟类群体搜索食物行为的一种元启发式算法。每个粒子可视为n维搜索空间中的一个搜索个体,粒子的当前位置即为对应优化问题的一个候选解,粒子的飞行过程即为该个体的搜索过程.粒子的飞行速度可根据粒子历史最优位置和种群历史最优位置进行动态调整.粒子仅具有两个属性:速度v和位置x。每个粒子单独搜寻的最优解叫做个体最优解,粒子群中最优的个体极值作为当前全局最优解。不断迭代,更新速度和位置。最终得到满足终止条件的最优解。
[0071]
传统粒子群算法公式如下:
[0072][0073]
式中,d代表粒子的维度,v
ti,d
代表第t次迭代第i个粒子的第d维的速度,x
ti,d
代表第t次迭代第i个粒子的第s维的位置;c1和c2分别为加速常数一和加速常数二,前者为每个粒子的个体学习因子,后者为每个粒子的社会学习因子,一般取c1、c2为(0,4)区间的常数;r1,r2分别为(0,1)区间的随机数一和随机数二,表示第t次迭代的第i个粒子的第d维的评估方程的个体极值,表示第t次迭代的第d维的评估方程的全局极值,ω称为惯性因子,值为非负,惯性因子越大,全局寻优能力强但局部寻优能力弱,惯性因子越小,全局寻优能力弱但局部寻优能力强:
[0074]
ω
t
=(ω
start

ω
end
)(c

t)/c ω
end
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(18)
[0075]
式中,ω
t
代表第t次迭代的惯性因子ω的值,ω
start
=0.9,为惯性因子ω的初始的值,ω
end
=0.4为惯性因子ω的最终值,c代表迭代总次数,t代表当前的迭代次数。
[0076]
传统模拟退火算法概率公式:
[0077][0078]
式中,p(xt

x
t 1
)代表x
t
转移到x
t 1
的概率,若目标函数f(x
t 1
)<f(x
t
),则转移概率是1,若f(x
t 1
)≥f(x
t
),则转移概率是t
t
代表第t次迭代的退火温度,它随着迭代次数变化而变化,变化公式如下:
[0079][0080]
式中的温度t
t
的变化本发明采用水从100摄氏度到0摄氏度的自然降温方程,其中t代表当前迭代的次数,n代表粒子群数。
[0081]
本发明的改进粒子群调度算法的具体执行流程如图2所示:
[0082]
步骤1)粒子群初始化总迭代次数c、惯性因子ω、加速常数一c1和加速常数二c2、随机数一r1和随机数二r2、t=1、粒子分组系数k=0、i=1、初始化粒子群的数量n、随机产生n个粒子、使用执行开销评估方程的粒子的的个体极值p
best1
和使用执行开销评估方程的粒子的全局极值g
best1
用执行开销评估方程cost来表示、使用执行时间评估方程的粒子的的个体极值p
best2
和使用执行时间评估方程的粒子的的全局极值g
best2
用执行时间评估方程makespan来表示、使用集群负载评估方程的粒子的的个体极值p
best3
和使用集群负载评估方程的粒子的的全局极值g
best3
用集群负载评估方程ld来表示、使用工作流综合评估方程的粒子的的个体极值p
best4
和使用工作流综合评估方程的粒子的的全局极值g
best4
用工作流综合评估方程fitness来表示,粒子的各维度代表各工作流;
[0083]
步骤2)判断迭代次数是否小于等于c*a%,否则跳到步骤三;开始利用for循环i=1:n对n粒子群速度v和位置x进行更新,为了减弱多目标粒子群所带来的复杂度上升的负面效果,采用交替更新方法:
[0084]
当i=4k 1:
[0085]
粒子i采用如下评估方程:
[0086][0087]
式中,工作流中的任务数是n,虚拟机数是m,是二维变量,代表任务t
i
在虚拟机vm
j
的执行时间,代表任务在虚拟机v
i
的执行代价系数,用于表示服务器执行任务的单位时间开销,代表任务t
i
向任务t
j
传输数据完毕所花费的时间,price
ie
代表两任务在云服务器网络的数据传输代价,用于表示数据传输的单位时间网络开销,pr(t
i
)代表任务t
i
的所有前置任务。
[0088]
采用如下粒子群公式更新速度v和位置x:
[0089]
[0090]
概率更新速度v和位置x公式如下:
[0091][0092]
若则更新是记录所找到的最优的粒子的个体信息,如果找到更优的,则把新找到的粒子信息替换原有存储的旧的粒子信息,若粒子在搜索过程中发现过程中发现则更新对应的
[0093]
当i=4k 2:
[0094]
粒子i采用如下评估函数:
[0095][0096]
采用如下粒子群公式更新速度v和位置x:
[0097][0098]
概率更新速度v和位置x公式如下:
[0099][0100]
若则更新若粒子发现若粒子发现则更新对应的
[0101]
当i=4k 3:
[0102]
粒子i采用如下评估函数:
[0103][0104]
采用如下粒子群公式更新速度v和位置x:
[0105][0106]
概率更新速度v和位置x公式如下:
[0107][0108]
若则更新若粒子发现
则更新对应的
[0109]
当i=4k 4:
[0110]
粒子i采用如下综合评估函数:
[0111]
fitness=x1*cost x2*makespan x3*ld
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(30)
[0112]
采用如下粒子群公式更新速度v和位置x:
[0113][0114]
概率更新速度v和位置x公式如下:
[0115][0116]
若则更新若粒子发现若粒子发现则更新对应的
[0117]
经过以上执行过程之后,更新k:k=k 1,更新c:c=c 1,跳回步骤2);
[0118]
步骤3)判断迭代次数是否小于等于d,否则跳到步骤4);开始利用for循环对n个粒子速度v和位置x进行更新:
[0119]
n个粒子均采用如下综合评估函数:
[0120]
fitness=x1*cost x2*makespan x3*ld
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(33)
[0121]
采用如下粒子群公式更新速度v和位置x:
[0122][0123]
更新速度v和位置x判断公式如下:
[0124][0125]
若则更新若则更新对应的
[0126]
步骤4)输出最终结果,利用调度器(负责将任务调度到对应虚拟机的模块)将工作流调度到相应的虚拟机上的;检查是否有新的工作流到来,若有,则开启新一轮循环,若没有,则流程结束。
[0127]
一种基于多目标粒子群算法的工作流调度系统,包括以下程序模块:
[0128]
开销评估模块:用于构建工作流执行开销评估方程;
[0129]
执行时间评估模块:用于构建工作流执行时间评估方程;
[0130]
集群负载评估模块:用于构建集群负载评估方程;
[0131]
求解模块:构建包含上述三种评估方程中的指标的综合评估方程,针对工作流执行开销评估方程、工作流执行时间评估方程、集群负载评估方程和综合评估方程,采用粒子群改进算法进行工作流的调度,所述粒子群改进算法(pso)是将粒子群平均分成四部分,每
部分粒子假设均进行c次迭代,每部分粒子的前c*a%次迭代分别寻找上述四种评估方程的最优解,后c*(1

a%)次迭代均寻找综合评估方程的最优解。
[0132]
一种计算机可读存储介质,用于存储上述基于多目标粒子群算法的工作流调度方法。
[0133]
以上实施例仅用以说明发明的技术方案而非对其限制,所属领域的研发人员参照上述实施例依然可以对本发明的具体实施方式进行修改或者等同替换,这些没有脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围以内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献