云环境下调度算法综述云环境下调度算法综述
对任务调度在云计算中的地位作了分析,并由任务调度出发,对云计算任务调度算法的研究现状进行分类、梳
理和总结。根据调度目标的不同,介绍了多目标的任务调度算法:人工蜂群算法,帝国竞争算法,蝙蝠算法,
猫群算法等。对每类方法的代表性算法进行了分析介绍,并详细总结了每类方法的基本思想、优缺点做了分
析、对比和改进方式的归纳, 对相关实验平台进行了分析对比。
0 引言引言
云计算是一种依托于虚拟化技术,通过异构技术将分布于不同地域的各类计算机资源聚合到云端进行统一管理,再利用多
样化的部署方式,以网络为载体向用户提供基础设施、平台、应用程序等服务的计算模式。在云计算中,用户可以不用购买任
何硬件和软件,只需要支付一定的服务费用,就可以随时通过任何连接至网络的终端设备获取到需要的计算、存储、处理、网
络等资源。
而随着云技术的发展和云平台的广泛部署,云中的工作流调度问题成为一个重要的研究课题
[1]
,在云计算服务交付的过程
中,由于用户直接面对的是虚拟机资源,而真正解决问题的是虚拟机映射的实际的物理资源,因此如何将任务合理分配到资源
执行是研究者所重点关注的。
1 多目标优化多目标优化任务调度任务调度算法算法
在对未知的探索过程中,问题没有解决时,人们首先总会想尽一切办法将问题解决,得到一个准确可行的解决方案,然后
会对该解决方案进行优化直到“最好”。当不惜一切代价将该目标优化到极限时,往往发现得到的解决方案虽然能达到预期的效
果,但是过程中可能会付出比较大的代价。随着科学的进步,方法的增加,人们开始考虑解决方案的合理性、实时性、成本等
问题。
随着科技水平的不断进步,想要使得解决方案的适应人群更加广泛,需要面临的问题就会更加复杂,往往需要同时进行多
个目标的优化。这种在优化设计中,要求多个目标达到最优的问题被称为多目标优化或者多约束问题。在这种情况下,局限于
于单目标优化的传统算法就难以很好地解决问题。基于启发式思想的智能化算法应运而生。
启发式思想的智能化算法,通常是人们根据直观感受、社会经验或者生物启发,然后总结创新所构造出的算法。其思想在
于:解决多约束问题时,在可以接受的花费的前提下得到一个解决方案,给出尽量满足多个目标优化的一个可行解。其核心点
在于“多目标优化”,即对于每一个实例来说,也许当下解并不是它的最优解,但却是多个实例在尽量满足需求条件下的极优
解。
常用的启发式思想的智能化算法包括两类
[2]
:
第一类是基于生物启发(Biological Inspiration,BI)的算法,包括遗传算法(Genetic Algorithm,GA)、模因算法(Memetic
Algorithm,MA)、狮子算法(Lion Algorithm,LA)、帝国竞争算法(Imperialist Competitive Algorithm,ICA),是在云计算中与
任务调度相关的少数生物启发算法。
第二类是基于群体智能(Swarm Intelligence,SI)的算法,包括蚁群算法(Ant Colony Optimization algorithms,ACO)、粒子
群优化(Particle Swarm Optimization,PSO)、模拟退火算法(Simulated Annealing Algorithm,SA)、人工蜂群(Artificial Bee
Colony Algorithm,ABC)、猫群优化(Cat Swarm Optimization Algorithm,CSO)、蝙蝠算法(Bat Algorithm,BA)、风驱动优
化算法(Wind Driven Optimization Algorithm,WDO)等。
其中如LA、WDO、BA、ICA已被用于各种优化问题,但是在云环境中,这些算法无法单独地完成任务调度。另外,由于目
前最新提出的方法缺乏考虑负载平衡、VM迁移、可靠性、执行成本和云中工作流调度的安全目标,相比较于ACO、GA、
PSO、SA算法,由于提出时间比较早,在后续被广大的学者们不断地进行优化改进,各方面的性能已经比较完善了。所以在
云计算中,任务调度的大部分工作是使用GA、ACO、PSO和SA算法完成的
[2]
。
要想达到更好的效果,除了对原有的算法进行改进、融合,也可以重新发明创造出新的算法,当然难度是有的,但是在有
了之前学者们创造算法的经验,一个新算法的诞生相比之前还是比较容易的。相比较于ACO、GA、PSO、SA这些经典的算
法,在后续不断有新的算法被创造出来。
1.1 人工蜂群算法人工蜂群算法
ABC是受到蜂群采集蜂蜜的行为过程所启发,由KARABOGA D
[3]
提出的一种组合优化算法。
ABC对于给定问题的任何解决方案都由蜜蜂进行觅食的蜜源代表,即每一个蜜源代表一个解决方案。算法终止后,蜜量最
丰厚(被采集次数最多)的蜜源就是给定问题的最优解。
算法模拟蜂群的觅食行为,主要有三个概念:蜜源(food sources)、雇佣蜂(Employed foragers)、失业蜂(Unemployed
foragers),失业蜂分为观察蜂和侦察蜂。其中,侦察蜂的主要任务是寻找蜜源,蜂群采集的蜜源都是侦察蜂发现的,侦察产生
多样性
[4]
;雇佣蜂的主要任务是招募蜜蜂对蜜源进行采集;观察蜂的主要任务是有选择性地响应雇佣蜂的招募采蜜。
ABC主要可以分成三个阶段进行。
寻找蜜源:侦察蜂在搜索空间寻找蜜源,找到后变为雇佣蜂,并根据蜜源的位置到巢穴的距离、蜜量等信息对其进行适应