李水泉,邓 泓
(1.深圳大学 计算机与软件学院,广东 深圳 518060;2.江西农业大学 软件学院,江西 南昌 330045;3.江西省高等学校农业信息技术重点实验室,江西 南昌 330045)
云计算是近年来新兴的一种商业计算模型[1],它将用户提交的任务分布到由大量计算资源构成的资源池中,在计算完成后将结果返回给用户。由于云计算具有计算能力强、价格低廉、使用简单等特点,使得云计算用户的数量迅速增加,同时也使计算任务数量与日剧增。如果对数量庞大的任务调度不合理,将导致完成任务的时间长以及计算资源的浪费。针对任务调度属于NP难[2]的问题,且任务数量庞大时不能通过暴力求解得到最早的任务最早完成时间和负载最均衡[3]策略,研究如何合理调度云计算任务,以达到较好的最早完成时间和负载均衡,是具有重要意义的。目前,针对最早完成时间或负载均衡提出的云计算任务调度算法主要有以下几种:传统网格计算中的调度算法,如min-min算法[4]和max-min算法[5]。这两种算法都采用贪心策略,将最小或最大的任务分配到可以最早完成它们的机器上,实现局部最小完成时间,但它们的最早完成时间一般不是最好的,同时min-min算法没有考虑负载均衡;现有成熟的云计算平台的调度算法,如Hadoop中的默认任务调度算法[6]。该算法使用FIFO队列策略,采用较公平的原则,将先提交的且优先级高的任务分配到空闲的机器上,使得在最后一个任务分配前所有机器都处于工作状态,但它没有考虑最早完成时间问题;启发式智能算法,如遗传算法、粒子群算法、蚁群算法及对它们的混合算法等[7-13]。这些算法虽然在选取了合适参数和迭代次数的基础上能获得较优的解,但是算法复杂,在实际的实现过程中参数和迭代次数的选取困难,并且它们对于大量任务的处理时间较长,因此算法的稳定性不高。
针对上述算法的不足之处,考虑如何调度任务以达到较早的最早完成时间和较好的负载均衡,文中提出相对最小执行时间方差的云计算任务调度算法min-variance。该算法在max-min算法分配任务的基础上,利用任务位置的转移能够改变各计算资源的执行时间方差,增加了有限次数的任务在计算资源上的位置转移,从而达到相对最小的执行时间方差,实现最早完成时间较早和负载较均衡。
目前,云计算的任务调度问题在云计算系统中具有重要的研究意义。在云计算系统中,存在一个若干不同性能的计算资源构成的资源池,云计算的任务调度即是从资源池中选择合适的计算资源处理不同长度的计算任务。随着云计算技术的成熟与发展,云计算任务数量大量增加,因此将云计算任务合理分配给各计算资源对提高处理效率、节省电力等具有重要作用。
文中研究的目的是实现负载较均衡和达到较早的最早完成时间,在现有的计算任务调度算法中,无论是传统的贪心算法,如min-min和max-min算法,还是智能型启发式算法,如遗传算法和蚁群算法等,其计算结果往往不是最优。这是因为贪心策略的思想是从局部最优解得到全局最优解,这样的解并不是最优的;而智能启发式算法大多是从全局最优出发,进而得到调度的解,这种方法理论上能得到最优解,但是收敛速度却不能控制,因此其解也不是最优。所以在得到其任务调度结果后,往往很容易找到一个任务,转移这个任务到另一个计算资源后将得到更早的最早完成时间,或者使各计算资源的任务完成时间更加接近,即得到一个更优的解,文中即根据这一事实提出min-variance算法,通过一定次数变换任务在计算资源的位置从而得到完成时间的相对最小方差,进而求得更优解。
min-variance算法在CloudSim[14]上实现。CloudSim是由墨尔本大学推出的云计算仿真软件,主要用于模拟云计算基础架构和服务,在云计算的研究中广泛使用,因此在该仿真软件上实现的min-variance算法可用于真实的云计算环境中。min-variance算法在CloudSim工作模型中的关系如图1所示。
图1 min-variance算法与CloudSim工作模型关系图
任务调度问题是一种组合问题,通过计算所有组合可以找到一个最小的执行时间方差,但任务数量往往较大,不可能通过暴力求解所有组合,因而也不可能计算出执行时间方差的最小值,所以文中算法的执行结果只能在某一区间内最小,该区间的值域由任务、计算资源和算法共同决定。
将n个任务划分到k个计算资源中,则每个计算资源有一个任务集合,计算资源执行完任务集合中的所有任务有一个执行时间t,所有的t构成集合T,执行时间方差就是集合T的方差。因为方差衡量的是一组离散数据的偏离程度,所以执行时间的方差在一定程度上反映负载均衡的问题,即执行时间的方差越小,说明负载越均衡。文中算法就是在初始执行时间方差的基础上,不断减小方差,以达到负载较均衡和较早完成时间。执行时间方差的计算公式如下:
(1)
(2)
图1中左边两列表示每个云计算用户提交若干个计算任务,右边两列表示虚拟机与数据中心的映射关系(虚拟机存在于硬件层之上,便于对硬件的操作),中间列表示通过一个调度器进行任务调度,使任务与虚拟机发生映射,而调度器使用的调度算法即min-variance算法,在算法执行完后,得到任务的分配调度结果,再由虚拟机调度任务。
经过分析发现,执行时间方差的值可以由以下两种方式改变:将一个计算资源的任务集合中的一个任务放到另一个计算资源中;将一个计算资源的任务集合中的一个任务与另一个计算资源任务集合中的一个任务进行位置变换。因此,通过这两种方式可以使方差不断减小。另外,通过这两种方式减小的方差一定能在某个值终止,这是因为任务和计算资源在计算机上都是离散的且数量是一定的,因此不可能使方差一直减小,即通过一定次数的迭代找到最小的方差。基于以上分析,min-variance算法具有可行性,并能够达到负载的较均衡和较早的最早完成时间。
(4)将task加入到计算资源l(0≤l 5.山水迥异,有如将要崩裂样险要;有腾空而起的高突,有像胳膊肘儿一样的山体延伸;有并排矗立而众多的大小山头。 预测是很重要的一步,也是跟写作相关的一个思考过程,看看这样一个标题,如果是学生自己会以什么样的思路展开文章。 (2)利用式1和式2计算执行时间方差D(T),记为min_dt,同时计算最早完成时间min_v。 (3) 在计算出Time后,从任务0开始,依次将各个任务加入到能够最早完成该任务的计算资源的任务列表中。 假设有n个任务将分配到k个计算资源中,令tasknum(i)表示计算资源i中的任务数量,则min-variance算法流程如下: (5)将task与计算资源l(0≤l Time[j][i]=MI[j]/MIPS[i] 两种焊接工艺焊缝的金相组织如图7a所示,其中间部分是针状铁素体,周围是晶界铁素体。自动焊焊缝中的组织比手工焊分布更加均匀,晶粒更加细小。 (3)依次选取计算资源i中的任务j,记为task。若i=k-1,j=tasknum(i),则转到步骤7。 科学合理的建筑规划和形态设计能够适应恶劣的气候环境,它包括建筑物整体容积的确定、建筑物的形状和建筑形式的组合、建筑物的日照和朝向。譬如,阳光和方向的选择原则是获得充足的阳光,避免冬天流通的强风,在夏季利用自然通风来防止太阳辐射。同时,建筑受社会历史条件、历史条件、地理条件、城市规划、道路、环境等因素的制约,建筑物楼面的朝向和设计应考虑多种影响因素。 min-variance算法的核心部分在于有限次数的任务位置转移从而达到相对最小的执行时间方差,因此任务的初始化分配很大程度决定了算法核心部分的运算时间,所以采用合适的方法进行任务的初始化分配具有重要作用。与其他初始化任务分配方法相比,max-min算法同时具备以下几个优势:算法复杂度不高,能够快速进行初始化;先将较大的任务分配到能够最早完成它的计算资源上,这种方式能够实现较好的负载均衡;采用贪心策略以取得较早的完成时间。这三点优势能够使得min-variance不但能快速完成初始化分配,还能在算法核心部分运算之前就有了较好的负载均衡和较早的最早完成时间,从而减小了后续的计算量,因此min-variance使用max-min算法作为任务的初始化分配方法。 max-min算法采用贪心策略,先将较大的任务分配到能够最早完成它的计算资源上。首先将任务按指令长度由大到小进行排列,同时将计算资源按计算速度由小到大排列,再计算出各个任务在各虚拟机上的执行时间。用二维数组Time[j][i]表示第j个任务在第i个计算资源的执行时间,MI表示任务指令长度,MIPS表示计算资源的执行速度,计算方法如下: (1)用max-min算法初始化任务分配。 (6)转到步骤3。 (7)若resu为空时,则算法结束,否则重复步骤3~6。 Step 2 Solve the IKPI value ujof the manipulator when the end-effector is located at scatter pjin the degraded workspace by the constructed IKPI. min-variance算法的程序流程如图2所示。 图2 min-variance算法的程序流程 实验在CloudSim仿真器上进行。由于现实条件下各种云计算任务数量的差别较大,同时各任务指令长度的长短差距也很大,为了能更好地模拟真实条件下的云计算任务调度,实验设置了5组不同数量的任务,使用同一组虚拟机(CloudSim中虚拟机的执行速度相当于真实云环境中计算资源的执行速度)分别对其进行处理。其中虚拟机共有8个,执行速度MIPS都在10到1 000之间,而任务的长度MI都在100到100 000之间。实验结果如表1和表2所示。 广东理工学院是属于应用型本科院校,对教师提出的要求也比较高,同时,每年都会派出大量的教师外出培训更新知识,也会派出大量的教师到企业中去实践,加强校企合作,还通过教师带队和学生一起到企业实践,同时鼓励教师多做科研,通过多种多样的形式提高教师们能力。建设一支知识和能力结合的教学科研队伍。其次,学校还聘请了注册会计师和很多企业会计总监、财务经理来我校兼职任教和培训,这些对我们“双师型”的师资队伍建设及教学都得到提高。 表1 不同数量的任务在同一组虚拟机 上的最早完成时间 s 表2 各虚拟机执行时间的最大差 s 与min-variance算法相比较的其他四种算法都属于以最早完成时间或负载均衡为目标的任务调度算法,其中蚁群算法的蚂蚁个数设置为任务数,迭代次数为35,遗传算法交叉概率设置为0.25,变异概率设置为0.04,迭代次数为100。从表1和表2可以看出,min-min、蚁群和遗传算法进行的任务调度结果互有优劣,但与max-min和min-variance算法相比,虽然在任务数为40时蚁群算法的最早完成时间较max-min算法好,但在其余情况下最早完成时间较晚,且各虚拟机执行时间的最大差较大,这是因为智能型的蚁群和遗传算法受参数影响较大,且由于它们没有考虑负载均衡,使得负载不均衡。min-min算法优先放置较短的指令到能最快执行完它的计算资源上,不但使得负载不均衡,而且当出现有某个任务远长于其他任务时则表现出最早完成时间较晚。min-variance算法是在max-min的基础上继续提前最早完成时间和实现更好的负载均衡,由数据可以看出,min-variance算法在最早完成时间上都早于max-min算法,而随着任务的增长,所提前的最早完成时间可能更多,并且其虚拟机执行时间的最大差比max-min算法小很多,实现了较好的负载均衡。因此与其他四种算法相比,min-variance算法在最早完成时间和负载均衡上都有更好的效果。 随着放开市场准入、减税降费、推动产权保护等多项激发民间投资活力政策的逐步落实,全省民间投资始终保持良好的增长态势。1-10月,全省民间投资同比增长16.9%,增速较1-9月提高2.1个百分点,较去年同期提高5.1个百分点,对固定资产投资的贡献率达57.3%,贡献率较1-9月提高5.1个百分点。 云计算任务调度算法对于云计算的计算效率具有重要影响,而任务调度问题是一个NP难问题,因此只有不断探索更加高效的调度算法才能应对不断增长的云计算用户和任务数量。为实现更早的最早完成时间和负载较均衡,提出了min-variance算法,在max-min算法的基础上不断缩小各虚拟机执行时间的方差,取得了较好的效果。 min-variance算法虽然能够实现较好的最早完成时间和负载较均衡,但仍有许多工作需要进行:现实中的云计算资源在内存等方面各不相同,因此需要在文中研究的基础上更真实地模拟实际中的云环境;一些任务存在依赖问题,故需要添加任务的依赖关系。2.4 算法流程
3 实验结果
4 结束语