一种基于节能树的大规模计算集群任务调度方法

文档序号:7858008阅读:200来源:国知局
专利名称:一种基于节能树的大规模计算集群任务调度方法
技术领域
本发明涉及一种大规模计算集群任务调度方法,尤其涉及一种利用节能树降低能耗的大规模计算集群任务调度方法,属于计算机网络技术领域。
背景技术
随着以云计算(Cloud Computing)为代表的大规模计算集群技术的兴起和发展,大规模云数据中心(Cloud Data Center)作为云计算技术的基础设施,也进入了高速发展的阶段。云数据中心的高能耗对自然环境产生的污染问题日渐突出,成为了世界各国普遍关心的热点问题。在数据中心的生命周期中,能耗成本已经超过硬件成本,成为继人力资源成本之后的第二大成本支出。如何降低并有效的控制能耗,已经成亟待解决的关键问题。为了保障服务的质量,目前数据中心大多按最高负载可能来进行构建和配置服务器集群,这使得服务器的利用率一般不足30%。数据中心的基础设施没有得到充分的利用是·
从能耗的角度而言,运行在低利用率和高利用率的服务器所产生的热量和消耗的电力十分接近,单个服务器节点在CPU利用率低的情况下所产生的能耗与得到充分利用的情况下所产生的能耗相差无几。当磁盘利用率一定时,CPU利用率在10%和80%的情况下所产生的能耗差别很小,这为我们进一步的研究提供了很大的空间。

发明内容
本发明所要解决的技术问题在于克服现有大规模云数据中心存在的高能耗问题,提供一种基于节能树的大规模计算集群任务调度方法,利用节能树模型,将数据节点作为节能树的叶结点,基于低能耗的目的两两比较并选出最终的节能者,有效降低了大规模云数据中心的能耗。本发明采用以下技术方案解决上述技术问题。—种基于节能树的大规模计算集群任务调度方法,所述大规模计算集群包括一个管理节点和多个数据节点,管理节点将用户提交的任务分割为多个大小相同的子任务,并为每一个子任务分配相应的数据节点;管理节点为子任务分配相应的数据节点,其分配策略具体按照以下方法得到步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该二叉树的叶结点;步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一层非叶结点;步骤C、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对应的数据节点作为当前子任务拟分配的数据节点;步骤D、更新数据节点的数据;
步骤E、对于剩余的未分配的子任务,依次重复执行步骤B-步骤D,直至为所有子任务找到拟分配的数据节点,从而得到最终的分配策略。在子任务过多或云数据中心过于繁忙的情况下,很可能会出现活跃态数据节点数量不足的情况,即部分子任务未找到合适的活跃态数据节点,此时就需要激活部分处于休眠态的数据节点。为了避免云数据中心大量休眠节点被不必要的激活,从而造成额外的能源浪费,本发明进一步采用以下技术方案在步骤E中,如具有额外计算能力的活跃态数据节点数量不足时,则执行以下步骤步骤I、假设存在L个子任务未找到拟分配的数据节点,选择L个休眠态数据节点,作为一颗完全二叉树的叶结点;步骤2、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一·层非叶结点;步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对应的数据节点作为当前子任务拟分配的数据节点;步骤4、更新数据节点的数据;步骤5、对于剩余未分配的子任务,依次重复执行步骤2-步骤4,直至为所有L个子任务找到拟分配的数据节点;步骤6、设L个子任务完成分配后,所述L个休眠态数据节点中有K个未部署任务,则激活L-K个休眠态数据节点后转至步骤A。优选地,从两个节点DNa、DNb中选出其中的较节能者,具体按照以下方法假设使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率分别为0R0RU. CPU和0R0RU. DI0,节点DNa当前的CPU利用率、磁盘传输速率分别为DNa. CPU、DNa. DIO,节点DNb当前的CPU利用率、磁盘传输速率分别为DNb. CPU、DNb. DIO,执行当前子任务所需的CPU利用率、磁盘传输速率分别为Task. CPU、Task. DIO ;分别计算数组((DNa. CPU+Task. CPU), (DNA. DIO+Task. DIO))、((DNb. CPU+Task. CPU), (DNB. DIO+Task.DI0))、(DNa. CPU, DNa. DI0)、(DNb. CPU, DNb. DIO)与数组(0R0RU. CPU,0R0RU. DIO)之间的欧氏距离EDI、ED2、ED3、ED4 ;如EDI与ED4之和大于ED2与ED3之和,则节点DNa为较节能者;否则,节点DNb为较节能者。进一步地,如同时存在多个任务需要调度,则管理节点首先按照各任务的任务比较系数从大到小的顺序对多个任务进行排序,然后依次进行子任务分割及子任务分配;所述任务的任务比较系数按照下式得到Weight, = Task;.CPUx----l·Task. DIOx---
' 1 OCORU.CPU 1 OCORU.DIO式中,Weighti表示第i个任务的任务比较系数,Taski. CPlKTaski. DIO分别为执行第i个任务所需的CPU利用率、磁盘传输速率,0R0RU. CPU、0R0RU. DIO分别为使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率。相比现有技术,本发明具有以下有益效果(I)使节点的存储方式和计算能力同该节点所分配的工作负载尽可能匹配,避免因节点不充分利用而造成的资源和能源浪费;(2)使工作节点的数量同当前的任务量匹配,其余的节点在低能耗或休眠的节能模式下运行;(3)随着云数据中心规模的增大,为某一个任务选择出合适的节点的时间呈指数增长,本发明考虑到云数据中心本身所具有的海量节点,在合理的时间内提供合适的结果;(4)目前的云数据中心,节点通常被分为多种运行状态;本发明能够针对节点的多种状态进行有效的区分,不同状态的节点进行任务的不同分配,避免云数据中心大量休眠节点被不必要的激活,造成额外的能源浪费;(5)云数据中心作为一个开放的平台,很可能在同一时段接受大量各种不同的任务,本发明在提供了单任务调度的策略的同时,考虑到多任务并行执行的情况,从而能够针对多任务情况提供一个合适的方法来对不同的任务进行有效的区分。·


图I为节能树的结构示意图。
具体实施例方式下面结合附图对本发明的技术方案进行详细说明本发明的思路是在对任务分配数据节点时,利用节能树模型,将具有额外计算能力的活跃态数据节点作为一棵完全二叉树的叶结点,从能耗的角度将所有叶结点进行两两比较,较低能耗的节点作为节能者,选出的节能者作为上一层非叶结点,再进行两两比较,如此重复,直到选出根结点为止,根结点即为最合适的数据节点。在对本发明技术方案进行详细描述前,先对大规模计算集群的系统模型进行简要介绍I)节点模型本发明采用的云数据中心的节点,从功能上分为两类管理节点和数据节点,当用户将任务提交给云数据中心后,由管理节点负责将用户的任务切分成若干个子任务后选择合适的数据节点部署任务。并在所有子任务处理完成后,由管理节点将结果返回给用户。定义如下定义I管理节点(Master Node, MN),云数据中心的管理节点,逻辑上唯一,负责整个云数据中心的管理。定义2数据节点(Data Node, DN),可被抽象为以下四元组DN= (ID, CPU, DIO, State)(I)上式中ID为数据节点的唯一标识;CPU为数据节点的当前CPU利用率,DIO为数据节点当前的磁盘传输速率,这两个指标用于表示数据节点当前已使用的计算能力;State为数据节点当前状态,且每个节点都可能处在下列两种工作状态之一状态A (活跃态(Active)):节点上有计算任务,并可以继续承担系统部署的任务。状态B (休眠态(Dormant)):节点上无计算任务,但可以承担系统部署的任务。当一个处于活跃态的节点完成自身的任务后,将自动进入休眠状态(本发明指深度休眠,此时该节点不产生任何能耗)。管理节点可向处于休眠态的数据节点部署任务,当数据节点接收到任务后自动转为活跃态并立刻开始处理任务。对于一个特定规模的云数据中心,存在着一个CPU利用率和当前磁盘传输速率的最优资源组合。定义3 最优资源配置(Optimal Configuration of Resource Utilizations,0C0RU),可被抽象为以下二元组OCORU= (CPU, DIO)(2)当该云数据中心的每个数据节点的DN. CPU和DN. DIO都工作在0R0RU. CPU和0R0RU. DIO时,整个云数据中心处理单位数据的能耗最低,即此时每消耗单位电力所获得的回报最高。对某一特定的云数据中心0C0RU. CPU和0C0RU. DIO均为常数,可实际测得。
·
2)任务模型定义4任务(Task),可被抽象为以下六元组Task= (ID, Data, Code, CPU, DIO, Amount)(3)上式中ID为任务的编号,是该任务与其他任务相区别的唯一标识;Data表不用户向云计算中心提交的,其想要处理的原始数据,将会被管理节点切分成多份子数据,以便分布在若干个数据节点上进行处理;Code表示用户向云计算中心提交的处理Data的程序代码,Code中用户包含处理Data的方法和这些方法与Data的映射关系;CPU表示运行该任务所需的CPU利用率,管理节点只向0C0RU. CPU-DN. CPU>Task. CPU的数据节点派遣该任务的子任务;DI0表示运行该任务所需的DIO利用率,管理节点只向0C0RU. DI0-DN. DI0>Task.DIO的数据节点派遣该任务的子任务;Amount表示该任务子任务的数量,对于特定环境的特定任务而言是一个常数。用户租用云计算中心的设备,需要向云数据中心提供其想要处理数据以及处理数据的程序代码,管理节点将用户提供的任务切分成若干个的子任务分布到数据节点上执行。定义5子任务(SubTask),可被抽象为以下三元组SubTask= (ID, Data, Code)(4)上式中ID为子任务的编号,每个子任务有且只有一个与其他子任务不同的编号,是这个子任务与其他子任务相区别的唯一标识;子任务的ID与任务的ID存在对应关系,可以通过子任务ID推知这个子任务属于哪个任务;当所有子任务完成后,管理节点依据子任务的ID将结果有序汇总后返回给用户。Data表示由管理节点将用户提交的原始数据切分后得到的子数据。Code表示用户提交的代码中与该子任务的子数据相映射的部分代码,包含了该子任务相关的子数据的处理方法。根据上述描述可知,一个大规模云数据中心的任务调度问题可以抽象为以下情况云数据中心的最优资源配置值为(0C0RU. CPU, 0C0RU. DI0),共有η个处于活跃态的同构数据节点{DN1; DN2, DN3……DNJ和k个处于休眠态的数据节点,第i个处于活跃态的数据节点表示为(DNi. CPU, DNi. DI0)。任务Task被切分成Task. Amount个子任务
(SubTask1, SubTask2, SubTask3,......SubTaskTask.^wunJ ,管理节点需要将这 Task. Amount 个
子任务部署在云数据中心的数据节点上。本发明在对子任务进行调度时,具体按照以下方法
步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该二叉树的叶结点;步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一层非叶结点;步骤C、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对应的数据节点作为当前子任务拟分配的数据节点;步骤D、更新数据节点的数据;步骤E、对于剩余的未分配的子任务,依次重复执行步骤B-步骤D,直至为所有子任务找到拟分配的数据节点,从而得到最终的分配策略。管理节点按照最终的分配策略对子任务进行实际分配部署。
·
在用完全二叉树定义节能树时,可用数组e [I... η]表示η名参加比较的数据节点的节点编号,用数组t[l...n-l]表示组成的完全二叉树的η-l个内部节点,t[i]的值是数组e[]中的比较节能者的下标,当外面节点个数为η是内部节点数为η-l。图I给出了 n=5时的节能树中各节点与数组e[]和t[]之间的对应关系。设根到最远层内部节点的路径长度s为从根到该内部节点路径上的分支条数,则对有η个叶结点的节能树有
S =IJog2 (η-1)」(5)这样,最远层最左端的内部节点的编号为2s,最远层的内部节点个数为n_2s。此处用IowExt代表最远层的外部节点数目,offset代表最远层外部节点之上所有节点数目offset=2s+1-l(6)每一个外部节点e[i]所对应的内部节点t[k], i和k之间存在如下的关系
I + offset. , _
---------------I < IowLxtk =J 2(7)
- IowExt + η — I.,
--ι > lowhxi
I 2如图I中,外部节点数n=5,s=2,最远层最左端的内部节点为t[2s]=t[4],该层的内部节点数共有n-2s=5-4=l。当数据中心分配一个子任务时,需新建一棵节能树,并以所有可用的数据节点为树的叶结点,将节能树进行初始化。初始化完成后,节能树的根结点,即为最合适的数据节点。通常,可直接以所有具有额外计算能力的活跃态数据节点作为可用数据节点,设η为具有额外计算能力的处于活跃态的数据节点的数量,由上述可知,根到最远层内部节点路径上的分支条数s:丨丨叩,(π-I)」·最远层的外部节点数目为lowExt=2X (n-2s),最远层外部节点之上所有节点数目0ffset=2s+1-l,t[]用来存储比较的节能者的下标即数据节点的节点编号,winner (DNa,DNb)用于获得DNa、DNb,之间的节能者,初始化过程用伪代码表示如下
权利要求
1.一种基于节能树的大规模计算集群任务调度方法,所述大规模计算集群包括一个管理节点和多个数据节点,管理节点将用户提交的任务分割为多个大小相同的子任务,并为每一个子任务分配相应的数据节点;其特征在于,管理节点为子任务分配相应的数据节点,其分配策略具体按照以下方法得到 步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该二叉树的叶结点; 步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一层非叶结点; 步骤C、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对应的数据节点作为当前子任务拟分配的数据节点; 步骤D、更新数据节点的数据; 步骤E、对于剩余的未分配的子任务,依次重复执行步骤B-步骤D,直至为所有子任务找到拟分配的数据节点,从而得到最终的分配策略。
2.如权利要求I所述基于节能树的大规模计算集群任务调度方法,其特征在于,在步骤E中,如具有额外计算能力的活跃态数据节点数量不足时,则执行以下步骤 步骤I、假设存在L个子任务未找到拟分配的数据节点,选择L个休眠态数据节点,作为一颗完全~■叉树的叶结点; 步骤2、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一层非叶结点; 步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对应的数据节点作为当前子任务拟分配的数据节点; 步骤4、更新数据节点的数据; 步骤5、对于剩余未分配的子任务,依次重复执行步骤2-步骤4,直至为所有L个子任务找到拟分配的数据节点; 步骤6、设L个子任务完成分配后,所述L个休眠态数据节点中有K个未部署任务,则激活L-K个休眠态数据节点后转至步骤A。
3.如权利要求2所述基于节能树的大规模计算集群任务调度方法,其特征在于,从两个节点dna、dnb中选出其中的较节能者,具体按照以下方法 假设使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率分别为ORORU. CPU和ORORU. DIO,节点DNa当前的CPU利用率、磁盘传输速率分别为DNa. CPU、DNa. DIO,节点DNb当前的CPU利用率、磁盘传输速率分别为DNb. CPU、DNb. DIO,执行当前子任务所需的CPU利用率、磁盘传输速率分别为Task. CPU,Task. DIO ;分别计算数组((DNa. CPU+Task. CPU), (DNA. DIO+ Task. DIO))、((DNb. CPU+Task. CPU), (DNB. DIO+ Task.DI0))、(DNa. CPU,DNa. DI0)、(DNb. CPU,DNb. DIO)与数组(ORORU. CPU, ORORU. DIO)之间的欧氏距离EDI、ED2、ED3、ED4 ;如EDI与ED4之和大于ED2与ED3之和,则节点DNa为较节能者;否则,节点DNb为较节能者。
4.如权利要求1-3任一项所述基于节能树的大规模计算集群任务调度方法,其特征在于,如同时存在多个任务需要调度,则管理节点首先按照各任务的任务比较系数从大到小的顺序对多个任务进行排序,然后依次进行子任务分割及子任务分配;所述任务的任务比较系数按照下式得到 Weight = Taski.CPU x-^-+Taski.DIOx-- 0C0RU.CPU0C0RU.DI0 式中,Weight;表示第i个任务的任务比较系数,Tas 1 .GPU, TaskiDK)分别为执行第i个任务所需的CPU利用率、磁盘传输速率,ORORU. CPU、ORORU. DIO分别为使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率。
5.如权利要求4所述基于节能树的大规模计算集群任务调度方法,其特征在于,按照以下方法对多个任务进行排序 步骤I、构建一颗完全二叉树,以待排序的所有任务作为一颗完全二叉树的叶结点;步骤2、对所有叶结点进行两两比较,分别选出其中的任务比较系数较大者作为二叉树的上一层非叶结点; 步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的任务比较系数较大者作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止;记录该根结点所对应的任务; 步骤4、将选出的根结点从二叉树中删除; 步骤5、重复执行步骤2-步骤4,直至所有任务均完成选择;按照被选作为根结点的从前到后的次序对所有任务进行排序。
全文摘要
本发明公开了一种基于节能树的大规模计算集群任务调度方法。本发明在面向大规模云数据中心的任务调度中,引入节能树作为模型,将数据节点作为节能树的叶结点,基于低能耗的目的,两两比较并选出最终的节能者。与此同时,本发明充分的考虑了大规模云数据中心的复杂情况,定义了任务比较系数,以此将不同的任务赋予不同的优先级,使得云数据中心在同时处理多个任务时的调度策略更为合理。相比现有的技术,本发明方法可以有效提高云数据中心的节点利用率,从而降低云数据中心的整体能耗。
文档编号H04L12/24GK102790698SQ201210288209
公开日2012年11月21日 申请日期2012年8月14日 优先权日2012年8月14日
发明者丁卫平, 吴家兴, 孙雁飞, 徐小龙, 曹玲玲, 李玲娟, 杨庚 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1