基于蝙蝠算法的云计算资源分配

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在云任务调度环境中,采用蝙蝠算法进行任务调度时,具体的步骤可以划分为如下七步:
a)接收用户提交的任务,并把每个任务划分为多个子任务,每个子任务的规模大致相等,为每个子任务生成蝙蝠种群。
b)初始化蝙蝠种群中每个蝙蝠的脉冲频率 fi 和位置 xi, 搜索脉冲频率范围[ fmin, fmax],音强衰减系数 α,频度增加系数 γ,最大迭代次数。
接纳这个全新的解。 增大R(i),并减小A(i),
排列当前蝙蝠粒子并找到当前最佳 x* ,
整理结果并且可视化。
图1 蝙蝠算法模块化示意图
1
假设搜索空间为 d 维,第 i 只蝙蝠在 t 时刻的位置为 ,速 度为 ,则在t+1 时刻的位置 和速度 更新式为
= +( - ห้องสมุดไป่ตู้ ⑴
= +( - ) ⑵
= + ⑶
4
4.1
在当前的云计算环境中,谷歌公司提出的 MapReduce 调度机制被广泛地应用在各个平台中,用以处理大规模并行任务,其中 Map 的过程就是把一个大作业分解成多个子任务进 行处理,而任务划分的主要目标是尽可能地消除处理机之间的通信开销,一般要求尽可能使并行化最大,而任务之间的关联最小。
4.2
c)计算当前所有任务的优先权,并将任务按照优先权降序排列,对任务进行编码,根据式(2) 计算蝙蝠的飞行速度 vi,根据式(3) 更新蝙蝠的空间位置 xi。
d)产生随机数 β,如果 β >R( i) ,则从当前最佳解集中选 取一个解,在选择的最佳解附近形成一个局部解,通过随机飞行产生一个新解。
e)如果 β <R(i) 并且 f( xi) < f( x* ) ,则接受这个新解,然 后增大R(i) ,缩小A(i) ,排列蝙蝠并找到当前最佳解 x* 。
关键词云计算;资源调度;蝙蝠算法; CloudSim平台
Study on Bat Algorithm in Cloud Computing Resources Allocation
Zhu Ying1)
1)Computer and Communication Engineering of Northeastern University at Qinhuangdao 066004 China
对于整个任务执行调度,兼顾其运行时间和成本最小的约束函数为
min { ω × time +( 1 - ω) ×cost}⑾
其中: ω∈[ 0, 1]是权重因子,用来衡量用户和资源提供者的偏 好,即对执行时间和成本消耗的偏重比例。当 ω = 0 或 ω = 1 时,问题退化为单纯的以任务完成时间最短或资源花费最少的 单目标约束问题。
通过计算优先权可以得到整个图的关键路径,即整个资源分配调度关键任务的调度顺序。
对云计算服务提供者来说,计算资源如虚拟机等,拥有不 同的计算能力和付费模式,而成本消耗主要取决于 CPU 的计算能力、内存的大小和带宽等因素。这里以 CPU 处理能力作为指标,选取线性模型来衡量成本消耗。任务 vi 在虚拟机 mj 上执行花费的成本: ⑽
>R( i) 的真假来判定,其中 ∈[ 0, 1]是一个随 机变量,R( i) 是蝙蝠个体 i 当前的搜索脉冲频度,其计算方式 由式( 6) 可得。如果 >R( i) 成立,则第 i只蝙蝠当前的空间状态由当前空间中最优解的附近产生; 如果 >R( i) 不成立, 则第 i 只蝙蝠当前的空间状态由式(5) 计算得到。
Abstract:Because cloud computing faces the characteristics such as massive resource allocation and dynamic,it no longer meets the demand of weighing the pros and cons from single aspect.From two aspects of users and resource providers to solve the above problems,this paper proposed a scheduling model with constraint conditions of shorter task-completion time and lower cost.It brought the bat algorithm into resource allocation policy and modified its code design to improve the capacity of global optimization.Finally,the simulation results depending on CloudSim platform show that the resource allocation algorithm can effectively take account of completion time and cost.It improves resource utilization by shortening the time to complete the task while ensuring minimum cost,compared with particle swarm optimization algorithm.
3) 响度的变化方式有很多,这里假设它是从最 大的值( 正) A0 变化到固定的最小值 Amin。
新型仿生智能算法-蝙蝠算法( BA) 的步骤用伪代码概括如下。
目标函数为 f( x) , x =( x1,…, xd) T;
初始化随机数rand;
初始蝙蝠种群粒子 xi( i =1, 2,…, n) 和 vi;
这个成本是多方面的,比如内存大小和带宽损 耗等。通常处理时间是针对用户,而处理成本则是针对资源提 供方,寻求二者的一个均衡是处理任务调度的一个重要方向。
表1 任务在虚拟机上的处理时间和处理成本
任务
虚拟机
处理时间
处理成本
time ( , )
cost( , )
time ( , )
cost( , )



定义的脉冲的频率为 fi at xi;
脉冲的频度----R(i)响度----Ai 初始化。
While( t < T 最大迭代次数) ,
调整频率产生新解并更新位置和速度。
if ( rand >R(i))
从最佳解的集合中选一个最佳解,
从最佳解附近形成一个局部的最优解,
else( rand <R(i)&&f( xi) < f( x* ) )

time ( , )
cost( , )
3
设图 G =( V,E) 是一个有向完全图(directed acyclic graph,DAG) ,其中 V 是计算任务 v 的集合, E 是表示任务之间优先约束关系的边e的集合。
节点 的权值表示任务 的计算量。假设云计算资源中有 m 个不同的虚拟机,,且虚拟机 的计算能力不同。每个任务可以在不同的虚拟机上执行,记 t( , ) 表示任务 在虚拟机 上的执行时间。
2
云环境下的资源调度简单说来是通过择优选择,建立用户 请求列表到资源列表的映射。
资源调度算法通常由优化目标 函数、选择和搜索过程组成,优化目标函数通常包括时间跨度、 经济代价和资源利用情况等;选择和搜索过程是指在众多的可 选服务、资源映射方案中选择能使目标函数最优的那组值。
这里重点关注任务调度和调度策略的实现。传统的任务调度往往只考虑任务的响应时间或者是资源的利用率。这些调度算法在某些方面的表现优异,但系统运行时效率并不高。如何有效地利用云计算中的资源,使用户的需求在最大限度得到满足的情况下,让系统的性能保持最佳 成为一个亟待解决的关键问题。虚拟化技术的广泛使用使得云 计算中的资源呈现出动态多变、结构复杂等特点,在此分析基础 上,将云计算环境下用户提交的任务作下列两条假设:
1) 所有蝙蝠粒子利用自身回声定位感知与目 标之间的距离,同时以一种神秘的方式辨别目标和背景障碍物的不同。
2) 蝙蝠的位置为 xi,以速度 vi 任意地飞行,以 固定的频率 fmin、可变的波长 和响度 A0 搜寻目标。 它们可以判断自己与猎物之间的距离并自动地调整脉冲的波长( 亦或频率) ,同时在接近目标时调整脉冲的频度 r∈[ 0, 1]。
1.2
蝙蝠粒子发射的脉冲频度R(i)和响度A(i)的更新要随着迭代的进行而进行。通常,在不断靠近最优解时,响度会逐渐降低,脉冲发射的速率会逐渐提高,A(i) = 0 时表明蝙蝠 i 正好搜索到一个最优解,不再发出探测信号。式( 5) ( 6) 为脉冲响度和发射速率的更新方程。


其中:0 < <1, >0,均为常量。 蝙蝠算法中,脉冲频度增加系数 、脉冲音强衰减系数 对算法性能有重要影响。蝙蝠个体当前空间状态的改变方式 按照表达式
Key words:cloud computing; resource scheduling; bat algorithm; CloudSim platform
云计算是继分布式计算、网格计算、对等计算之后的一种新型计算模式,作为一种新型商业计算模式,是分布式并行处理和 网格计算等多种技术的拓展和延伸,代表了当前并行计算技术发展的新阶段。作为新兴产物,云计算涉及到的很多问题 并没有真正解决,资源调度便是其中的一个难题。资源调度作为云计算技术的一个重要组成部分,其效率直接影响整个云计算环境的工作性能。由于云计算环境下的任务调度是一个 NP 完全问题,启发式智能算法在该领域研究是一个重要的方向之一。本文根据云环境对于资源分配的要求出发,通过深入地研究蝙蝠算法,结合云环境下任务调度的实际特点,首先建立了以时间和成本为双约束条件的资源调度模型,然后将蝙蝠算法应用在调度模型中,结果表明蝙蝠算法能够更有效地解决云计算中的资源调度问题。
1
蝙蝠算法(Bat Algorithm,BA) 是由剑桥大学的Yang于2010 年提出的一种模拟蝙蝠捕食过程中所采用的回声定位原理的启发式智能算法。与现在诸多优化算法类似,蝙蝠算法也是一种基于种群的随机优化算法,蝙蝠个体是蝙蝠算法的基本单元,在具体问题中赋以具体意义。
Yang 在阐述蝙蝠算法基本思想的同时,提出了 蝙蝠算法基本假设条件。
a) 用户提交的任务在虚拟机上处理时需要被分解为多个子任务,每个子任务大致相等。
b) 子任务的处理远多于虚拟机的个数,即任务需要按照 一定的调度顺序逐个处理。
表1 表示的是虚拟机上的处理时间和处理成本。其中:
是用户提交任务的编号; 是任务处理虚拟机的编号;
time ( , ) 是第 i 个用户任务在第j个虚拟机上进行计算处理所花费的时间;cost( , )是第 i 个任务在第 j 个虚拟机上处理所花费的成本。

若任务执行方式是非抢占式的,则任务 的平均执行时间为:

记有向边〈 , 〉的权重为 ,表示任务 和任务 的通信时间。如果 和 在同一个虚拟机执行,则 = 0。任务 的调度优先权的计算依赖 DAG 的逆向递推,即从最后一个节点开始, 是任务 的后继集合,有

从公式可以看出: 是任务 的后继集合; 的平均执行时间越长,且与 后继节点中最大通信时间越久,优先权越低。
蝙蝠算法在云计算资源分配中的研究
朱莹1)
1)东北大学秦皇岛分校计算机与通信工程学院,河北秦皇岛066004
摘 要目前云计算面临着庞大的资源分配且具有动态性等特点,如果只从权衡资源分配策略的优劣出发已经不能满足需求。针对这一问题,从用户和资源提供者两个方面出发,将蝙蝠算法引入资源分配策略中,提出了以任务完成时间较短且成本最低为约束条件的调度模型。通过 CloudSim 平台进行模拟仿真表明,该资源分配算法能有效地兼顾完成时间和成本,在缩短任务完成时间的同时保证成本最小,提高了资源利用率。
其中: 、 和 分别表示第 i 只蝙蝠在当前时刻发出的声波的频率、声波频率的最大值和最小值; β∈[ 0,1]是随机产生的数; 表示当前全局最优解。
一旦从现有最优解集中选择一个解( 蝙蝠) ,这个解所在的新位置可通过式( 4)产生:

这可以被理解成局部搜索,即在选择的解临近区域产生一个新解。其中, 表示从当前最优解集中随机选择的一个解, 表示当前代蝙蝠种群响度的平均值 为属于[-1,1]的 d 维随机向量。
相关文档
最新文档