本文将介绍文章“随机任务在云计算平台中能耗的优化管理方法”。
原文链接:http://pan.baidu.com/s/1jGp5mBG
参考文献:Min-Min算法和Max-Min算法
针对云计算系统在运行过程中由于计算节点空闲而产生大量空闲能耗,以及由于不匹配任务调度而产生大量“奢侈”能耗的能耗浪费问题,本文提出一种通过任务调度方式的能耗优化管理方法。
大量实验表明,本文提出的能耗优化管理方法在保证其性能的前提下,大幅度降低了云计算系统的能耗
将研究在给定和真实的云计算系统体系结构下,如何根据任务到达率的大小和分布规律,决策系统中应该处于运行状态的计算机个数,结合关闭/休眠技术和电压动态调整技术,进一步对云计算系统的能耗进行优化控制,并且将研究的理论成果在实际云平台上进行评测,以验证其正确性
云计算系统任务调度的过程可描述为:不同类型任务以不同的速率随机到达系统,调度器则根据任务类型、任务到达时机、系统中所有计算机当前的执行状态等信息对任务进行合理映射,最后调度执行 目的是降低系统运行过程中产生的空闲能耗和执行能耗 本文暂不考虑云计算系统中与通信相关的能耗和时间开销
根据2.1节和2.2节的分析,并结合能耗的计算公式E=P*T,则任意一个任务从进入云计算系统到执行完成离开所产生的期望能耗可表示为
在给定任务类型、确定云计算系统体系结构的条件下,只有调度概率P ij 的值是根据调度策略的不同而动态变化的,云计算系统的期望能耗与任务和计算机之间的调度策略有关
根据任务的到达时间和类型、不同计算机的功率和性能、计算机实时的负载情况,对任务进行合理调度,使系统在满足一定性能的条件下,降低云计算系统运行过程中产生的空闲和执行能耗
调度器针对不同的情况,采用不同的调度策略,详情请参考第3章
定理满足性能约束的最小执行能耗调度算法ME3PC的最坏时间复杂度为O(3mn),其中,m为任务的类型数,n为云计算系统中计算机的个数。
为了验证ME3PC算法的有效性,本文使用Matlab 的离散事件模拟工具进行模拟实验。实验环境涉及的相关参数以及取值或取值范围见下表。
实验中任务分为4 类。第i类任务的到达间隔时间服从参数为1/λi的负指数分布。该间隔时间可通过负指数分布函数exprnd(1/λi)来生成,其中,λi的值在[10,15]区间随机生成。根据任务的到达间隔,利用函数cumsum(⋅)可得到第i 类每个随机任务到达系统的时刻。最终可确定所有6000个任务到达系统的时刻。计算机cj对ti类任务的服务时间服从参数为1/μij的负指数分布,同样,服务时间也通过函数exprnd(1/μij)来生成,参数μij的值在[1,5]区间随机生成 为了让模拟系统的运行存在平衡状态,需要满足条件
为了进一步说明ME3PC算法的有效性,本文又设计了最小执行功率调度算法(minimum execution power,简称MEP),并将ME3PC与MEP、经典MIN-MIN 算法进行比较。其中,MEP的算法思想是:在任务调度时,将任务调度到执行功率最小的机器上,而不考虑该计算机当前的负载情况以及执行该任务的服务时间。MIN-MIN是针对独立任务的动态调度算法,广泛应用于同构或异构分布式并行计算环境,有良好的调度性能。本文分别从系统执行任务的平均能耗、任务的平均响应时间、系统的平均功率、负载平衡和可扩展性这5个方面对3种算法进行对比分析
从图2可以看出,采用MEP算法时系统的平均功率最小,ME3PC略大于MEP,MIN-MIN的功率最大,且远大于ME3PC和MEP。分析原因是,MEP算法专注于系统执行功率的优化,任务调度时只将任务调度到执行功率最小的机器上,因此系统平均功率最小,但没有考虑调度的机器性能,因此总体性能最差。MIN-MIN算法则相反,只专注于任务的完成时间,而不考虑能耗、负载平衡等其他因素,因此响应时间最小,但是系统平均功率最大。ME3PC算法则同时考虑了功率和性能因素,虽然系统功率较MEP算法平均增加了6.4%,响应时间比MIN-MIN算法平均增加了5.7%,但是任务在系统中的所产生的能耗却最小,如图4所示。究其原因是:(1)由于ME3PC算法针对空闲或轻载计算机采用了大服务强度优先的调度策略,大大降低了系统中计算机出现空闲的概率,使系统的利用率高于MEP和MIN-MIN。其中,采用ME3PC算法时,系统产生的空闲能耗平均是MEP和MIN-MIN算法的81%和73%,如图5所示。(2)由于优先对空闲和轻载计算机进行调度,最大限度地避免了负载不平衡的发生。因此,ME3PC算法保证了系统的负载平衡,如图6(a)、图6(b)所示。可见,只有同时考虑功率和性能因素才能真正降低云计算系统的能耗。
从实验结果中,我们发现了一个有趣的现象:当计算机个数为1时,3种算法下的系统平均功率、任务平均响应时间和任务平均能耗自然都相等。但是随着计算机个数的增加,系统执行任务的平均能耗却呈线性下降。当计算机个数为8时,系统执行任务的平均能耗最小。随着计算机个数的继续增加,系统执行任务的平均能耗开始增大,且呈指数级增长。究其原因是:(1)当计算机个数从1增加到8的过程中,任务平均响应时间呈指数级减少(如图3所示),但是系统的平均功率的增势却基本趋于平稳(如图2所示),这导致系统执行任务的平均能耗在该过程中是逐渐降低的,并且由于此时系统平均功率的绝对值较小,因此降低的趋势呈线性。(2)当计算机个数从8增加到128的过程中,任务平均响应时间下降的趋势趋于平缓(如图3所示),但是系统的平均功率的增势却呈指数级增加(如图2所示),这导致系统执行任务的平均能耗在该过程中是逐渐增加的,并且由于此时系统平均功率的绝对值较大,因此增长的趋势呈指数级。由此可见,在等能耗的条件下,计算机个数为8时系统有最好的扩展性。对于实际的云计算系统,如何根据系统的体系结构、任务到达的规律确定系统中应该开启或关闭的机器个数,以及开启或关闭哪些机器进行能耗的优化控制,将作为下一步的研究内容。