CN109522104B - 利用差分进化算法优化Iaas两目标任务调度的方法 - Google Patents

利用差分进化算法优化Iaas两目标任务调度的方法 Download PDF

Info

Publication number
CN109522104B
CN109522104B CN201811194822.2A CN201811194822A CN109522104B CN 109522104 B CN109522104 B CN 109522104B CN 201811194822 A CN201811194822 A CN 201811194822A CN 109522104 B CN109522104 B CN 109522104B
Authority
CN
China
Prior art keywords
optimization
solution
subtask
task
dimension
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201811194822.2A
Other languages
English (en)
Other versions
CN109522104A (zh
Inventor
张军
龚月姣
詹志辉
林盈
周淑姿
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201811194822.2A priority Critical patent/CN109522104B/zh
Publication of CN109522104A publication Critical patent/CN109522104A/zh
Application granted granted Critical
Publication of CN109522104B publication Critical patent/CN109522104B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/12Computing arrangements based on biological models using genetic models
    • G06N3/126Evolutionary algorithms, e.g. genetic algorithms or genetic programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Software Systems (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Physics & Mathematics (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Physiology (AREA)
  • Computing Systems (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Genetics & Genomics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种利用差分进化算法优化Iaas两目标任务调度的方法,该方法结合一种可应用于离散问题的差分进化算法和改进的多目标优化框架,来对云环境下两个目标任务调度问题进行优化,即最小化任务完工时间和最小化云服务成本。该方法同时结合了多目标整体优化和子问题优化。整体优化的两目标问题和子问题优化的多个单目标问题各自用一个集合保存进化过程中的解。通过设计一种自繁殖、交叉繁殖等机制,整体优化和子问题优化协同产生更好的优化结果。最后经过多次迭代后,整体优化的解集为优化最终得到的解。该方法在对IaaS任务调度优化时,展现出良好的收敛性,优化得到的解也具有很好的多样性。

Description

利用差分进化算法优化Iaas两目标任务调度的方法
技术领域
本发明涉及云计算以及智能计算技术领域,具体涉及一种利用差分进化算法优化Iaas两目标任务调度的方法。
背景技术
云计算已经在商业上得到应用,并已经取得了巨大的成功,正越来越多地在社会生活中得到应用。
然而,如何提高云计算的服务质量(QoS)依然是目前面临的巨大挑战。其中,调度对QoS起着至关重要的作用。在IaaS(Infrastructure as aService)模式下,存在海量异构的计算与存储资源,来服务于大量用户提交的任务。相比于传统的调度问题,云计算环境下的任务调度问题规模更加庞大,实时性要求也更高,所以在实际中面临着巨大的挑战,是学术上和工程上研究的热点问题。
云计算的调度模型通常分为三个层次:服务层,任务层以及虚拟机(VM)层。任务层调度主要是针对用户提交的任务集合和云上的可用资源集合,将第一个集合中的任务映射到第二个集合中的资源上,来实现单个或者多个调度目标。现有的任务调度模型通常将任务用有向无环图(Directed Acyclic Graph,DAG)来表示。在DAG上,任务之间的优先约束以及数据依赖用边来表示。
云环境下,QoS通常由多个指标来衡量,如完工时间(makespan),负载均衡,资源利用率等。现有的部分优化算法只针对单个目标,如最大化资源利用率。目前虽然也有算法引入了多个优化目标,但用归一化的权重系数乘以目标函数,从而用单目标的算法来优化。然而,在实际应用中,权重系数难以指定。在实际应用中,调度优化算法应该同时对多个目标进行优化。这样,云计算环境下的任务调度是个多目标优化问题(MultiobjectiveOptimization Problem,MOP)。
多目标优化是计算机学科研究的热点问题。进化算法(evolutionaryalgorithms,EAs)在该领域取得了很大的成就。进化算法受到生物进化的启发,将问题的一个解看作个体,解的集合作为种群。一个个体的适应值用目标函数来量化,适应值是种群进化时优胜劣汰的评估标准。典型的多目标优化框架包括NSGA,NSGA-II,MOEA-D等。NSGA-II采纳了经济学帕累托(Pareto)改进的概念来对多目标下的解评估。如果一个解A在一个目标上相比另一个解B更好,同时在另一个目标上相比B至少一样好,那么就说A对B支配。NSGA-II在种群的进化过程中,利用这种支配的概念来评价种群中个体的适应值。MOEA-D是将一个多目标问题划分为多个单目标子问题。每个单目标问题用一定数量的个体来进化求解。MOEA-D在优化时对某些问题收敛很快,然而,有实验表明解的多样性不好。另外,MOEA-D中子问题的定义影响着最后的优化结果。尤其对于复杂的问题,MOEA-D的性能受到问题分解策略的很大影响。最近,一个新的多目标优化框架MOEA-DLA被提出来,得到广泛关注。MOEA-DLA同时吸取了NSGA-II多目标整体优化的思想和MOEA-D问题划分的思想。在MOEA-DLA中,Global Archive和Sub-archive分别保存整体优化和子问题优化的解。在优化过程中,整体优化和子问题优化通过交叉产生新的解和更新操作来协同。
发明内容
本发明的目的是为了解决现有技术中的上述缺陷,提供一种利用差分进化算法优化Iaas两目标任务调度的方法。
本发明的目的可以通过采取如下技术方案达到:
一种利用差分进化算法优化Iaas两目标任务调度的方法,该方法包括以下步骤:
S1、设定参数,输入提交到云服务器上的任务信息和计算资源的属性,设定的参数包括种群的大小N、集合G的大小gmax、每个集合Si的大小smax、交叉常数CR、最大迭代次数,其中,集合G用于保存两个目标整体优化的解,集合Si用于保存第i个子任务的解,任务信息包括若干个相互独立的任务、用于组成每个独立任务的若干个子任务、每个子任务的执行顺序以及每个子任务的数据量,计算资源的属性包括资源的处理能力、资源的计算服务价格以及连接到资源的数据传输速度;
S2、对模型进行优化,其中,优化目标是找到一组任务资源调度方式x使得云服务的完工时间max{Time1,Time2,…,TimeK}以及云服务的成本
Figure GDA0003146199680000031
两个目标最小化,其中Timej表示第j个资源执行完分配的所有子任务所需的时间,j=1,2,…,K,i=1,2,…,D,D表示子任务的总数,K表示计算资源的总数,当第i个子任务被分配给了第j个资源则αij=1,否则αij=0,
Figure GDA0003146199680000032
是资源实际执行完任务的用时,
Figure GDA0003146199680000033
是任务的数据传输到计算节点所需的时间,Cj是使用第j个资源的单位时间费用。
进一步地,所述的步骤S2中对模型进行优化的过程如下:
S201、随机产生N个合法解作为进化算法中的第一代种群,种群中每个个体的编码方式为解向量的每一个维度用元组表示某个子任务分配给了某个资源,一个合法的解必须将所有的子任务分配给可用的计算资源,并允许有资源不用执行任务;
S202、集合G保存针对目标函数云服务的完工时间和云服务的成本的帕累托最优的解,集合Si保存针对第i个子任务优化的解,初始时为每个集合Si随机分配一个解;
S203、集合G中的成员通过自繁殖产生后代;
S204、集合Si的后代通过交叉繁殖产生;
S205、评价后代的适应值;
S206、整体优化下的集合G和子任务优化下的集合Si分别采用不同的更新策略进行更新;
S207、如果当前迭代次数超出算法设定的最大迭代次数则结束优化,否则返回步骤203继续执行。
进一步地,所述的步骤S203过程如下:
针对集合G中的成员xi,从集合G中用基于拥挤距离的轮盘赌方法选择三个成员
Figure GDA0003146199680000041
Figure GDA0003146199680000042
按照变异公式
Figure GDA0003146199680000043
产生xi的变异个体vi,将xi和vi用变异公式定义的交叉操作得到xi的后代ui,对集合G中的每个成员都生成一个后代,其中,Θ为算子。
进一步地,所述的变异公式中Θ算子的操作过程如下:
①将任务集中的所有任务序号随机分到两个集合I1和I2中;
②初始化当前处理的维度d为0;
③首先检查解
Figure GDA0003146199680000044
第d维元组上对应的子任务索引记为t1在集合I1中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t1,并且更新d=d+1;
④继续检查解
Figure GDA0003146199680000045
第d维元组上对应的子任务索引记为t2在集合I2中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t2,并且更新d=d+1;
⑤若d达到D继续步骤⑥,否则返回步骤③;
⑥将解
Figure GDA0003146199680000046
中的所有维度元组对应的资源索引按顺序复制到变异向量v相对应的位置上。
进一步地,所述的交叉操作的过程如下:
①初始化当前处理的维度d为0;
②随机生成一个在[0,1]内均匀分布的随机数r,若r≤CR则将交叉向量u第d维元组对应的资源索引设置为变异向量v第d维元组对应的资源索引,否则设置为父本向量x第d维元组对应的资源索引;
③更新当前处理的维度d=d+1;
④若d达到D,则交叉操作结束,否则返回步骤②。
进一步地,所述的步骤S204过程如下:
首先在Si中按照基于单个适应值的轮盘赌方法选择一个个体
Figure GDA0003146199680000051
然后在G中按照之前的基于拥挤距离的轮盘赌方法选择三个成员xi
Figure GDA0003146199680000052
Figure GDA0003146199680000053
按照变异公式
Figure GDA0003146199680000054
产生变异个体vi,将xi和vi用上述的交叉操作产生后代ui,按照同样的方法,为每个Si生成一个后代,其中,Θ为算子。
进一步地,所述的步骤S205过程如下:
对于子任务优化,要分别将两个目标函数云服务的完工时间f1和云服务的成本f2按照如下归一化:
Figure GDA0003146199680000055
其中
Figure GDA0003146199680000056
是进化到某一代时,该目标函数的最大值,
Figure GDA0003146199680000057
是目前在所有S集合中最小的目标函数值;
问题的分解采用加权和的方法,如以下公式所示:
Figure GDA0003146199680000058
其中,λ1的值从集合
Figure GDA0003146199680000061
中分别选取,λ2=1-λ1,Si保存对应于第i个子任务的解,Si中成员适应值用其对应的子任务函数来评估。
进一步地,所述的步骤S206过程如下:
对于保存整体优化最优解的集合G,所有的后代都参与更新集合G,既包括集合G自繁殖产生的后代,也包括每个集合Si交叉繁殖产生的后代,从这些后代和集合G中的成员中筛选出帕累托最优的解,来更新集合G,如果帕累托最优解的数目超过集合G的限定大小gmax,就将这些解按照拥挤距离从大到小排列,保留gmax个拥挤距离最大的解;
对于子任务优化,集合Si参与交叉繁殖产生的后代只用来更新集合Si,如果集合Si中成员数目未超过smax,则直接将集合Si参与交叉繁殖产生的后代保存到集合Si中,否则,比较参与交叉繁殖产生的与集合Si中成员的单目标适应值,只有参与交叉繁殖产生的后代的适应值优于集合Si中的所有成员时,才将参与交叉繁殖产生的后代放进集合Si中,并随机删除一个较差的解,从而保持集合Si成员数目不超过smax。
本发明相对于现有技术具有如下的优点及效果:
本发明基于对MOEA-DLA框架的改进,提出一种用差分进化算法来优化IaaS两目标任务调度问题的方法,将最小化任务完工时间以及最小化云服务成本作为调度的目标。该方法能够取得较快的收敛速度,优化得到的解的多样性也较好。
附图说明
图1是本发明提出的利用差分进化算法优化Iaas两目标任务调度的方法的基本结构框架图;
图2是本发明提出的利用差分进化算法优化Iaas两目标任务调度的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例
如附图1和图2所示,本实施例提出一种利用差分进化算法优化Iaas两目标任务调度的方法,该方法致力于优化Iaas下的两目标任务调度问题。两个优化目标为最小化完工时间
Figure GDA0003146199680000071
和最小化云服务成本
Figure GDA0003146199680000072
本实施例提出的调度优化算法,将问题分解为多个子问题,同时利用整体优化和子问题优化。优化时,用一个解集合(记为集合G)保存两个目标整体优化的解,用另一个解集合(记为集合Si)保存第i个子问题的的解。子问题分解采用类似于MOEA/D的加权和(Weighted Sum)分解方法。
在这里一个合法解的编码是一个向量,其中每个维度上用元组(子任务索引和资源索引成对形式)来表示某个子任务被分配给某个资源来执行。
初始时,随机产生N个合法解作为进化算法中的种群,将帕累托最优(Pareto-optimal)的解放到集合G中。将两个目标的优化问题分解为N个单目标子问题。第i个子问题的精英解集合记为集合Si,为每个集合Si随机分配一个解,集合S则为所有子问题的精英解集合Si的并集。
传统差分进化算法中变异(mutation)、交叉(crossover)产生后代的操作不适用于离散的优化问题。对于变异操作,本文用到一个Θ算子来得到变异向量
Figure GDA0003146199680000081
其中Θ算子不更改解向量每个维度上的资源索引。
Θ算子操作的对象为两个解分别记为
Figure GDA0003146199680000082
Figure GDA0003146199680000083
可得到的变异向量记为v,调度问题中的子任务总数为D,变异操作中的Θ算子按照如下步骤执行:
1)将任务集中的所有任务序号随机分到两个集合I1和I2中;
2)初始化当前处理的维度d为0;
3)首先检查解
Figure GDA0003146199680000084
第d维元组上对应的子任务索引记为t1在集合I1中是否存在,若存在则将解v中第d维元组所对应的子任务索引设为t1,并且更新d=d+1;
4)继续检查解
Figure GDA0003146199680000085
第d维元组上对应的子任务索引记为t2在集合I2中是否存在,若存在则将解v中第d维元组所对应的子任务索引设为t2,并且更新d=d+1;
5)若d达到D继续步骤6),否则返回步骤3);
6)将解
Figure GDA0003146199680000086
中的所有维度元组对应的资源索引按顺序复制到变异向量v相对应的位置上。
对于交叉操作,本文设计的交叉方法只会对解向量的元组中资源索引进行更改,而任务索引不发生更改。记交叉操作的对象为父本x和其所生成的变异向量v,得到的交叉向量记为u,设调度问题的子任务总数为D,交叉概率为CR,交叉操作按如下步骤执行:
1)初始化当前处理的维度d为0;
2)随机生成一个在[0,1]内均匀分布的随机数r,若r≤CR则将交叉向量u第d维元组对应的资源索引设置为变异向量v第d维元组对应的资源索引,否则设置为父本向量x第d维元组对应的资源索引;
3)更新当前处理的维度d=d+1;
4)若d达到D,则交叉操作结束,否则返回步骤2)。
本文提出的优化技术,同时采用整体优化和子任务优化。
对于整体优化的突变操作,从集合G中用基于拥挤距离的轮盘赌方法(RouletteWheel Approach)选择三个个体
Figure GDA0003146199680000091
Figure GDA0003146199680000092
拥挤距离表征一个解在适应值坐标系(二维)中与相邻两个解的拥挤程度,该定义的计算出自论文《AFast and ElitistMultiobjective Genetic Algorithm:NSGA-II》。而轮盘赌方法是遗传算法中基于适应值比例的经典选择方法,源自论文《An Overview of Standard and Parallel GeneticAlgorithms》。这里的轮盘赌方法是基于拥挤距离,即适应值表示的为拥挤距离。这三个个体用Θ算子按照如下的方式产生xi的变异个体vi
Figure GDA0003146199680000093
然后,xi和vi按照上面交叉操作产生后代ui
对于子问题优化,集合Si保存第i个子问题的解。集合Si中解的优劣直接用子问题评估得到的单个适应值来评价。针对于第i个子问题优化时,首先在集合Si中用基于单个适应值的轮盘赌方法选择一个个体
Figure GDA0003146199680000094
然后在集合G中按照之前的基于拥挤距离的轮盘赌方法选择三个个体xi
Figure GDA0003146199680000095
Figure GDA0003146199680000096
同样,按照公式(1)产生变异个体,按照交叉操作产生一个后代。按照同样的方法,为每个子任务产生一个后代。
整体优化和子任务优化采用不同的种群更新策略。包括整体优化和子任务优化产生的所有后代都用于对集合G的更新。把这些后代与集合G中的成员放在一起,筛选出帕累托最优的解,来更新集合G。集合G中保存整体优化解的数目不超过gmax,如果帕累托最优解的数目超过了gmax,那么就用拥挤距离来评价这些解,将前gmax个拥挤距离最大的解放入集合G中。对于子问题优化,集合Si参与产生的一个后代只用来更新集合Si。集合Si中成员的数目限制为smax,如果当前成员数目未超过smax,则直接将后代放在集合Si中。否则,用子问题的单目标函数来评估后代和集合Si中成员的适应值,如果这个后代比所有集合Si中成员更优,那么就将后代放在集合Si中,并随机去除一个较差的成员来保持成员的数目不超过smax。
种群进化多代后,集合G中的成员就是最后优化得到的解。
在本实施例的调度模型中,调度是基于子任务的,是一种更细粒度的调度。在调度时间窗口内,有多个任务提交到云服务器上,每个任务由多个存在优先约束的子任务组成。优先约束意味着一个任务的所有子任务按照给定的次序来执行。在调度时间窗口内,存在一定数量的可用计算资源。调度是将所有用户提交的任务中的子任务映射到计算资源上。
假设提交的所有任务共包含D个子任务。
对于第j个资源,执行完分配的所有子任务所需的时间为:
Figure GDA0003146199680000101
其中,αij=1,如果第i个子任务被分配给了第j个资源,否则αij=0。
Figure GDA0003146199680000102
是任务的数据传输到计算节点所需的时间,
Figure GDA0003146199680000103
是资源实际执行完任务的用时,Ti wait是由于优先约束导致的等待时间。当一个资源执行某个子任务时,如果该子任务之前的子任务尚没有执行完,那么需要等待一定的时间再执行。
云服务的完工时间(makespan)是从提交的任务被调度完毕后开始云服务到所有的任务执行完毕的时间长度,定义如下:
makespan=max{Time1,Time2,…,Timej,…,TimeK}. (3)
云服务的成本定义如下:
Figure GDA0003146199680000111
其中,αij=1,如果第i个子任务被分配给了第j个资源,否则αij=0;Cj是使用第j个资源的单位时间费用。
调度优化的目标就是最小化公式(3)中的makespan和公式(4)中的cost。在算法中,每个解用个体来表示,进化过程是采用精英策略,用更优的解取代较差的解的过程。个体的优劣用适应值(fitness)来表示,对两个调度目标整体优化时,每个个体有两个适应值,分别对应于两个目标函数值;对于子问题优化,个体的适应值对应于某个子问题的单个目标函数值。
这里,调度优化问题的解用向量来编码,解向量的每一个维度用元组表示某个子任务分配给了某个资源。一个合法的解必须将所有的子任务分配给可用的计算资源,并允许有资源不用执行任务。下面举例说明算法的编码方式。
假设用户提交如下的任务集合为
{{J11,J12,J13},{J21},{J31,J32},{J41,J42,J43,J44}}
表示一共有四个相互之间独立的任务,这四个任务分别含有3个、1个、2个和4个子任务。在表示一个解时,一个任务下的子任务用任务的编号来表示。在解向量中,用任务编号出现的次数来表示是第几个子任务。假如可利用的计算资源集合为{R1,R2,R3,R4},针对上面用户提交的任务一个合法的解如下所示:
{(2,R2),(1,R1),(3,R3),(4,R1),(1,R4),(4,R2),(4,R4),(1,R3),(4,R2),(3,R2)}
针对第一个任务,子任务的分配方案按照解向量中的顺序依次为(1,R1),(1,R4),(1,R3),表示存在优先约束关系的三个子任务依次被分配给了R1、R4和R3
初始时,随机产生N个合法解作为进化算法中的种群,集合G保存针对目标函数(3)(4)的帕累托最优的解。集合S保存针对某个子问题优化的解,初始时为每个集合S随机分配一个解。
对于子问题优化,要分别将函数(3)(4)按照如下归一化:
Figure GDA0003146199680000121
其中
Figure GDA0003146199680000122
是进化到某一代时,该目标函数的最大值,
Figure GDA0003146199680000123
是目前在所有集合Si中,最小的目标函数值。问题的分解采用加权和的方法,
Figure GDA0003146199680000124
其中,λ1的值从集合
Figure GDA0003146199680000125
中选取,λ2=1-λ1。集合Si保存对应于第i个子问题(由公式(6)得到)的解,集合Si中成员适应值用其对应的子问题函数来评估。
集合G中的成员通过自繁殖产生后代。针对集合G中的成员xi,从集合G中用基于拥挤距离的轮盘赌方法(Roulette Wheel Approach)选择三个成员
Figure GDA0003146199680000126
Figure GDA0003146199680000127
按照公式(1)产生xi的变异个体vi,将xi和vi用交叉操作得到xi的后代ui。对集合G中的每个成员都生成一个后代。
集合Si的后代通过交叉繁殖产生。首先在集合Si中按照基于单个适应值的轮盘赌方法选择一个成员
Figure GDA0003146199680000128
然后在集合G中按照之前的基于拥挤距离的轮盘赌方法选择三个成员xi
Figure GDA0003146199680000129
Figure GDA00031461996800001210
同样地,按照公式(1)产生变异个体vi,将xi和vi用交叉操作产生后代ui。按照同样的方法,为每个S生成一个后代。
整体优化和子问题优化下的种群采用不同的更新策略。对于保存整体优化最优解的集合G,所有的后代都参与更新该集合,既包括集合G自繁殖产生的后代,也包括每个集合Si交叉繁殖产生的后代。从这些后代和集合G中的成员中筛选出帕累托最优的解,来更新集合G。如果帕累托最优解的数目超过了集合G的限定大小gmax,就将这些解按照拥挤距离从大到小排列,保留gmax个拥挤距离最大的解。对于子任务优化,集合Si参与交叉繁殖产生的后代只用来更新集合Si。如果集合Si中成员数目未超过smax,则直接将该后代放到集合Si中,否则,比较该后代与集合Si中成员的单目标适应值,只有当该后代的适应值好于集合Si中的所有成员时,才将其放进集合Si中,并随机删除一个较差的解,从而保持集合Si成员数目不超过smax。
本文提出的任务调度优化方法的基本框架见图1。图1中整体优化的解集合G通过自繁殖产生后代。一个子任务优化的解集合Si通过和集合G中的成员交叉繁殖产生后代。集合Si的后代只用来更新集合Si,而整体优化和子任务优化产生的所有后代都用来更新集合G。
按照上面的变异、交叉和更新操作,经过一定代的进化,集合G中的解就是最后优化得到的解。
本文提出的调度优化方法按照如下步骤执行:
1)设定参数,输入提交到云上的任务信息和计算资源的属性。设定的参数包括种群的大小(N),集合G的大小(gmax),每个集合Si的大小(smax),交叉常数(CR),最大迭代次数。任务信息包括一共有多少个相互独立的任务,每个任务有多少个子任务,子任务按照怎样的顺序执行以及每个子任务的数据量(GB)。资源的属性包括,资源的处理能力(GB/hour),资源的计算服务价格(USD/hour)以及连接到资源的数据传输速度(GB/hour)。
2)初始化。随机产生N个初始解,用目标函数(3)(4)评估这些解,将帕累托最优的解放到集合G中。将两个目标函数按照公式(6)分解为N个子任务。为每个集合Si随机分配一个解,集合Si对应于第i个子任务的优化。
3)迭代次数iter=0。
4)集合G自繁殖产生后代(数目和集合G的成员数目相同)。
5)对每个集合Si,通过交叉繁殖产生一个后代。
6)更新集合G和每个集合Si
7)迭代次数iter=iter+1。如果iter不大于最大迭代次数,跳回到第4步。否则执行下一步。
8)输出集合G中的成员作为最后调度优化得到的解。
本文提出的调度优化方法流程图见图2。
本文提出的调度优化方法通过两个实验来证明其有效性。第一个实验设定7个相互独立的任务,一共包括50个子任务,有5个可用计算资源。第二个实验设定10个相互独立的任务,共包括100个子任务,有10个可用计算资源。实验采用的对比算法均是基于改进的差分进化算法(Improved Differential Evolution Algorithm,简称IDEA),不同的是所使用的多目标优化框架,分别为第二代非支配排序遗传算法(Nondominated SortingGenetic Algorithm II,简称NSGA-II)和基于分解的多目标进化算法(AMultiobjectiveEvolutionary Algorithm Based on Decomposition,简称MOEA/D)。因此,我们将实验采用的对比算法记为IDEA-NSGA-II和IDEA-MOEA/D。算法的比较采用两个常用的多目标优化性能指标maximum spread和hyperarea来衡量。30次的实验结果表明,本实施例提出的方法要好于IDEA-NSGA-II和IDEA-MOEA/D,从而证明了本文提出的方法的有效性。
表1.50维问题的不同算法实验结果比较表
Figure GDA0003146199680000151
表2.100维问题的不同算法实验结果比较表
Figure GDA0003146199680000152
综上所述,该方法结合一种可应用于离散问题的差分进化算法和改进的多目标优化框架,来对云环境下两个目标任务调度问题进行优化,即最小化任务完工时间和最小化云服务成本。该方法同时结合了多目标整体优化和子任务优化。整体优化的两目标问题和子任务优化的多个单目标问题各自用一个集合保存进化过程中的解。通过设计一种自繁殖、交叉繁殖等机制,整体优化和子任务优化协同产生更好的优化结果。最后经过多次迭代后,整体优化的解集为优化最终得到的解。该方法在对IaaS任务调度优化时,展现出良好的收敛性,优化得到的解也具有很好的多样性。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (2)

1.一种利用差分进化算法优化Iaas两目标任务调度的方法,其特征在于,该方法包括以下步骤:
S1、设定参数,输入提交到云服务器上的任务信息和计算资源的属性,设定的参数包括种群的大小N、集合G的大小gmax、每个集合Si的大小smax、交叉常数CR、最大迭代次数,其中,集合G用于保存两个目标整体优化的解,集合Si用于保存第i个子任务的解,任务信息包括若干个相互独立的任务、用于组成每个独立任务的若干个子任务、每个子任务的执行顺序以及每个子任务的数据量,计算资源的属性包括资源的处理能力、资源的计算服务价格以及连接到资源的数据传输速度;
S2、对模型进行优化,其中,优化目标是找到一组任务资源调度方式x使得云服务的完工时间max{Time1,Time2,…,Timej,…,TimeK}以及云服务的成本
Figure FDA0003146199670000011
两个目标最小化,其中Timej表示第j个资源执行完分配的所有子任务所需的时间,j=1,2,…,K,i=1,2,…,D,D表示子任务的总数,K表示计算资源的总数,当第i个子任务被分配给了第j个资源则αij=1,否则αij=0,
Figure FDA0003146199670000012
是资源实际执行完任务的用时,
Figure FDA0003146199670000013
是任务的数据传输到计算节点所需的时间,Cj是使用第j个资源的单位时间费用;其中,所述的步骤S2中对模型进行优化的过程如下:
S201、随机产生N个合法解作为进化算法中的第一代种群,种群中每个个体的编码方式为解向量的每一个维度用元组表示某个子任务分配给了某个资源,一个合法的解必须将所有的子任务分配给可用的计算资源,并允许有资源不用执行任务;
S202、集合G保存针对目标函数云服务的完工时间和云服务的成本的帕累托最优的解,集合Si保存针对第i个子任务优化的解,初始时为每个集合Si随机分配一个解;
S203、集合G中的成员通过自繁殖产生后代;所述的步骤S203过程如下:
针对集合G中的成员xi,从集合G中用基于拥挤距离的轮盘赌方法选择三个成员
Figure FDA0003146199670000021
Figure FDA0003146199670000022
按照变异公式
Figure FDA0003146199670000023
产生成员xi的变异个体vi,将xi和vi用交叉操作得到xi的后代ui,对集合G中的每个成员都生成一个后代,其中,Θ为算子;
S204、集合Si的后代通过交叉繁殖产生;所述的步骤S204过程如下:
首先在集合Si中按照基于单个适应值的轮盘赌方法选择一个成员
Figure FDA0003146199670000024
然后在集合G中按照基于拥挤距离的轮盘赌方法选择三个成员xi
Figure FDA0003146199670000025
Figure FDA0003146199670000026
按照变异公式
Figure FDA0003146199670000027
产生变异个体vi,将成员xi和变异个体vi用交叉操作产生后代ui,按照同样的方法,为每个集合Si生成一个后代;
S205、评价后代的适应值;
S206、整体优化下的集合G和子任务优化下的集合Si分别采用不同的更新策略进行更新;
S207、如果当前迭代次数超出算法设定的最大迭代次数则结束优化,否则返回步骤203继续执行;
其中,所述的变异公式中Θ算子的操作过程如下:
①将任务集中的所有任务序号随机分到两个集合I1和I2中;
②初始化当前处理的维度d为0;
③首先检查解
Figure FDA0003146199670000028
第d维元组上对应的子任务索引记为t1在集合I1中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t1,并且更新d=d+1;
④继续检查解
Figure FDA0003146199670000031
第d维元组上对应的子任务索引记为t2在集合I2中是否存在,若存在则将变异向量v中第d维元组所对应的子任务索引设为t2,并且更新d=d+1;
⑤若d达到D继续步骤⑥,否则返回步骤③;
⑥将解
Figure FDA0003146199670000032
中的所有维度元组对应的资源索引按顺序复制到变异向量v相对应的位置上;
其中,所述的步骤S205过程如下:
对于子任务优化,要分别将第1目标函数云服务的完工时间
Figure FDA0003146199670000033
和第2目标函数云服务的成本
Figure FDA0003146199670000034
按照如下归一化:
Figure FDA0003146199670000035
其中
Figure FDA0003146199670000036
是进化到某一代时,第i′目标函数的最大值,
Figure FDA0003146199670000037
是目前在所有集合Si中最小的目标函数值,i′=1或2;
问题的分解采用加权和的方法,如以下公式所示:
Figure FDA0003146199670000038
其中,λ1的值从集合
Figure FDA0003146199670000039
中分别选取,λ2=1-λ1,集合Si中成员适应值用成员对应的子任务函数来评估;
其中,所述的步骤S206过程如下:
对于保存整体优化最优解的集合G,所有的后代都参与更新集合G,既包括集合G自繁殖产生的后代,也包括每个集合Si交叉繁殖产生的后代,从这些后代和集合G中的成员中筛选出帕累托最优的解,来更新集合G,如果帕累托最优解的数目超过集合G的限定大小gmax,就将这些解按照拥挤距离从大到小排列,保留gmax个拥挤距离最大的解;
对于子任务优化,集合Si参与交叉繁殖产生的后代只用来更新集合Si,如果集合Si中成员数目未超过smax,则直接将集合Si参与交叉繁殖产生的后代保存到集合Si中,否则,比较参与交叉繁殖产生的与集合Si中成员的单目标适应值,只有参与交叉繁殖产生的后代的适应值优于集合Si中的所有成员时,才将参与交叉繁殖产生的后代放进集合Si中,并随机删除一个较差的解,从而保持集合Si成员数目不超过smax。
2.根据权利要求1所述的利用差分进化算法优化Iaas两目标任务调度的方法,其特征在于,所述的交叉操作的过程如下:
①初始化当前处理的维度d为0;
②随机生成一个在[0,1]内均匀分布的随机数r,若r≤CR则将交叉向量u第d维元组对应的资源索引设置为变异向量v第d维元组对应的资源索引,否则设置为父本向量x第d维元组对应的资源索引;
③更新当前处理的维度d=d+1;
④若d达到D,则交叉操作结束,否则返回步骤②。
CN201811194822.2A 2018-10-15 2018-10-15 利用差分进化算法优化Iaas两目标任务调度的方法 Active CN109522104B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811194822.2A CN109522104B (zh) 2018-10-15 2018-10-15 利用差分进化算法优化Iaas两目标任务调度的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811194822.2A CN109522104B (zh) 2018-10-15 2018-10-15 利用差分进化算法优化Iaas两目标任务调度的方法

Publications (2)

Publication Number Publication Date
CN109522104A CN109522104A (zh) 2019-03-26
CN109522104B true CN109522104B (zh) 2021-09-21

Family

ID=65771892

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811194822.2A Active CN109522104B (zh) 2018-10-15 2018-10-15 利用差分进化算法优化Iaas两目标任务调度的方法

Country Status (1)

Country Link
CN (1) CN109522104B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110489229B (zh) * 2019-07-17 2020-06-30 长沙学院 一种多目标任务调度方法及系统
CN111324429B (zh) * 2019-10-09 2023-03-24 中国人民解放军国防科技大学 一种基于多代血统参考距离的微服务组合调度方法
CN112579280B (zh) * 2020-12-30 2022-11-29 奇瑞汽车股份有限公司 云资源的调度方法、装置及计算机存储介质
CN112736953B (zh) * 2020-12-31 2022-12-02 中国能源建设集团安徽省电力设计院有限公司 一种带有多目标优化的风储系统储能容量配置设计方法
CN113010288B (zh) * 2021-03-16 2023-01-03 奇瑞汽车股份有限公司 云资源的调度方法、装置及计算机存储介质
CN113419854B (zh) * 2021-06-23 2023-09-22 东北大学 一种面向不平衡多目标优化的云资源调度方法
CN114357251B (zh) * 2021-12-10 2024-05-14 华南理工大学 一种基于分治进化算法的大型图数据库查询方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163864A1 (en) * 2014-04-23 2015-10-29 Hewlett-Packard Development Company, L.P. Selecting a platform configuration for a workload
CN105843197A (zh) * 2016-05-26 2016-08-10 江南大学 基于教与学算法的离散制造车间静态调度优化系统
CN106610651A (zh) * 2015-12-16 2017-05-03 四川用联信息技术有限公司 一种混合遗传算法求解多目标柔性作业车间调度问题

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015163864A1 (en) * 2014-04-23 2015-10-29 Hewlett-Packard Development Company, L.P. Selecting a platform configuration for a workload
CN106610651A (zh) * 2015-12-16 2017-05-03 四川用联信息技术有限公司 一种混合遗传算法求解多目标柔性作业车间调度问题
CN105843197A (zh) * 2016-05-26 2016-08-10 江南大学 基于教与学算法的离散制造车间静态调度优化系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Optimized task scheduling and resource allocation on cloud computing environment using improved differential evolution algorithm";Jinn-TsongTsai etc.;《Computers & Operations Research》;20131231;第40卷(第12期);第3045-3055页 *

Also Published As

Publication number Publication date
CN109522104A (zh) 2019-03-26

Similar Documents

Publication Publication Date Title
CN109522104B (zh) 利用差分进化算法优化Iaas两目标任务调度的方法
CN107273209B (zh) 基于最小生成树聚类改进遗传算法的Hadoop任务调度方法
WO2018036282A1 (zh) 一种任务调度方法、装置及计算机存储介质
Younis et al. Hybrid meta-heuristic algorithms for independent job scheduling in grid computing
CN112346839A (zh) 一种基于进化算法的关联任务调度方法
CN112685138B (zh) 云环境下基于多种群混合智能优化的多工作流调度方法
CN113821318B (zh) 一种物联网跨域子任务组合协同计算方法及系统
CN105550033A (zh) 私有云环境下基于遗传禁忌混合算法的资源调度策略方法
CN108427602B (zh) 一种分布式计算任务的协同调度方法及装置
Li et al. An effective scheduling strategy based on hypergraph partition in geographically distributed datacenters
CN105843666A (zh) 云计算中基于多目标优化的虚拟机放置方法
CN113722112B (zh) 一种服务资源负载均衡处理方法及系统
CN114741955A (zh) 一种基于安全云的多目标优化任务调度方法
CN109636709B (zh) 一种适用于异构平台的图计算方法
CN115016889A (zh) 一种用于云计算的虚拟机优化调度方法
Garg et al. Enhancing the discrete particle swarm optimization based workflow grid scheduling using hierarchical structure
CN112884368B (zh) 高端装备交货时间与延迟最小的多目标调度方法及系统
CN108108242B (zh) 基于大数据的存储层智能分发控制方法
CN110175172B (zh) 基于稀疏二分图的极大二分团并行枚举方法
CN112836794A (zh) 一种图像神经架构的确定方法、装置、设备及存储介质
Yu [Retracted] Research on Optimization Strategy of Task Scheduling Software Based on Genetic Algorithm in Cloud Computing Environment
CN116050235A (zh) 一种云边环境下工作流数据布局的方法及存储介质
CN108256694A (zh) 基于重复遗传算法的模糊时间序列预测系统、方法及装置
CN101378406A (zh) 一种数据网格副本的选择方法
CN111813525A (zh) 一种异构系统工作流调度方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant