ImageVerifierCode 换一换
格式:PDF , 页数:14 ,大小:1.37MB ,
资源ID:4328480      下载积分:30 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zhuanlichaxun.net/d-4328480.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(一种基于节能树的大规模计算集群任务调度方法.pdf)为本站会员(a1)主动上传,专利查询网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知专利查询网(发送邮件至2870692013@qq.com或直接QQ联系客服),我们立即给予删除!

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

1、(10)申请公布号 CN 102790698 A (43)申请公布日 2012.11.21 C N 1 0 2 7 9 0 6 9 8 A *CN102790698A* (21)申请号 201210288209.3 (22)申请日 2012.08.14 H04L 12/24(2006.01) H04L 29/08(2006.01) (71)申请人南京邮电大学 地址 210003 江苏省南京市新模范马路66 号 (72)发明人徐小龙 吴家兴 曹玲玲 杨庚 丁卫平 孙雁飞 李玲娟 (74)专利代理机构南京经纬专利商标代理有限 公司 32200 代理人杨楠 (54) 发明名称 一种基于节能树的大规模

2、计算集群任务调度 方法 (57) 摘要 本发明公开了一种基于节能树的大规模计算 集群任务调度方法。本发明在面向大规模云数据 中心的任务调度中,引入节能树作为模型,将数据 节点作为节能树的叶结点,基于低能耗的目的,两 两比较并选出最终的节能者。与此同时,本发明充 分的考虑了大规模云数据中心的复杂情况,定义 了任务比较系数,以此将不同的任务赋予不同的 优先级,使得云数据中心在同时处理多个任务时 的调度策略更为合理。相比现有的技术,本发明方 法可以有效提高云数据中心的节点利用率,从而 降低云数据中心的整体能耗。 (51)Int.Cl. 权利要求书2页 说明书10页 附图1页 (19)中华人民共和国国

3、家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 10 页 附图 1 页 1/2页 2 1.一种基于节能树的大规模计算集群任务调度方法,所述大规模计算集群包括一个管 理节点和多个数据节点,管理节点将用户提交的任务分割为多个大小相同的子任务,并为 每一个子任务分配相应的数据节点;其特征在于,管理节点为子任务分配相应的数据节点, 其分配策略具体按照以下方法得到: 步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该二叉 树的叶结点; 步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一层非 叶结点; 步骤C、对所述上一层非叶结点再进行两两比较,

4、分别选出其中的较节能者作为二叉树 的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对 应的数据节点作为当前子任务拟分配的数据节点; 步骤D、更新数据节点的数据; 步骤E、对于剩余的未分配的子任务,依次重复执行步骤B-步骤D,直至为所有子任务 找到拟分配的数据节点,从而得到最终的分配策略。 2.如权利要求1所述基于节能树的大规模计算集群任务调度方法,其特征在于,在步 骤E中,如具有额外计算能力的活跃态数据节点数量不足时,则执行以下步骤: 步骤1、假设存在L个子任务未找到拟分配的数据节点,选择L个休眠态数据节点,作为 一颗完全二叉树的叶结点; 步骤2、对所有叶结点进行

5、两两比较,分别选出其中的较节能者作为二叉树的上一层非 叶结点; 步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二叉树 的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点所对 应的数据节点作为当前子任务拟分配的数据节点; 步骤4、更新数据节点的数据; 步骤5、对于剩余未分配的子任务,依次重复执行步骤2-步骤4,直至为所有L个子任 务找到拟分配的数据节点; 步骤6、设L个子任务完成分配后,所述L个休眠态数据节点中有K个未部署任务,则激 活L-K个休眠态数据节点后转至步骤A。 3.如权利要求2所述基于节能树的大规模计算集群任务调度方法,其特征在于,从

6、两 个节点DN A 、DN B 中选出其中的较节能者,具体按照以下方法: 假设使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘 传输速率分别为ORORU.CPU和ORORU.DIO,节点DN A 当前的CPU利用率、磁盘传输速率分别 为DN A .CPU、DN A .DIO,节点DN B 当前的CPU利用率、磁盘传输速率分别为DN B .CPU、DN B .DIO, 执行当前子任务所需的CPU利用率、磁盘传输速率分别为Task.CPU、Task.DIO;分别计算数 组(DN A .CPU+Task.CPU),(DN A .DIO+ Task.DIO)、(DN B .CP

7、U+Task.CPU),(DN B .DIO+ Task. DIO)、(DN A .CPU,DN A .DIO)、(DN B .CPU,DN B .DIO)与数组(ORORU.CPU,ORORU.DIO)之间的欧氏 距离ED1、ED2、ED3、ED4;如ED1与ED4之和大于ED2与ED3之和,则节点DN A 为较节能者; 否则,节点DN B 为较节能者。 4.如权利要求1-3任一项所述基于节能树的大规模计算集群任务调度方法,其特征在 权 利 要 求 书CN 102790698 A 2/2页 3 于,如同时存在多个任务需要调度,则管理节点首先按照各任务的任务比较系数从大到小 的顺序对多个任务进

8、行排序,然后依次进行子任务分割及子任务分配;所述任务的任务比 较系数按照下式得到: 式中,表示第i个任务的任务比较系数,分别为执行第 i个任务所需的CPU利用率、磁盘传输速率,ORORU.CPU、ORORU.DIO分别为使所述大规模计 算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率。 5.如权利要求4所述基于节能树的大规模计算集群任务调度方法,其特征在于,按照 以下方法对多个任务进行排序: 步骤1、构建一颗完全二叉树,以待排序的所有任务作为一颗完全二叉树的叶结点; 步骤2、对所有叶结点进行两两比较,分别选出其中的任务比较系数较大者作为二叉树 的上一层非叶结点; 步骤3、对所

9、述上一层非叶结点再进行两两比较,分别选出其中的任务比较系数较大者 作为二叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止;记录该根结 点所对应的任务; 步骤4、将选出的根结点从二叉树中删除; 步骤5、重复执行步骤2-步骤4,直至所有任务均完成选择;按照被选作为根结点的从 前到后的次序对所有任务进行排序。 权 利 要 求 书CN 102790698 A 1/10页 4 一种基于节能树的大规模计算集群任务调度方法 技术领域 0001 本发明涉及一种大规模计算集群任务调度方法,尤其涉及一种利用节能树降低能 耗的大规模计算集群任务调度方法,属于计算机网络技术领域。 背景技术 0002 随着

10、以云计算(Cloud Computing)为代表的大规模计算集群技术的兴起和发展, 大规模云数据中心(Cloud Data Center)作为云计算技术的基础设施,也进入了高速发展 的阶段。云数据中心的高能耗对自然环境产生的污染问题日渐突出,成为了世界各国普遍 关心的热点问题。在数据中心的生命周期中,能耗成本已经超过硬件成本,成为继人力资源 成本之后的第二大成本支出。如何降低并有效的控制能耗,已经成亟待解决的关键问题。 0003 为了保障服务的质量,目前数据中心大多按最高负载可能来进行构建和配置服务 器集群,这使得服务器的利用率一般不足30%。数据中心的基础设施没有得到充分的利用是 造成能源浪

11、费的主要原因之一。 0004 从能耗的角度而言,运行在低利用率和高利用率的服务器所产生的热量和消耗的 电力十分接近,单个服务器节点在CPU利用率低的情况下所产生的能耗与得到充分利用的 情况下所产生的能耗相差无几。当磁盘利用率一定时,CPU利用率在10%和80%的情况下 所产生的能耗差别很小,这为我们进一步的研究提供了很大的空间。 发明内容 0005 本发明所要解决的技术问题在于克服现有大规模云数据中心存在的高能耗问题, 提供一种基于节能树的大规模计算集群任务调度方法,利用节能树模型,将数据节点作为 节能树的叶结点,基于低能耗的目的两两比较并选出最终的节能者,有效降低了大规模云 数据中心的能耗。

12、 0006 本发明采用以下技术方案解决上述技术问题。 0007 一种基于节能树的大规模计算集群任务调度方法,所述大规模计算集群包括一个 管理节点和多个数据节点,管理节点将用户提交的任务分割为多个大小相同的子任务,并 为每一个子任务分配相应的数据节点;管理节点为子任务分配相应的数据节点,其分配策 略具体按照以下方法得到: 0008 步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该 二叉树的叶结点; 0009 步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一 层非叶结点; 0010 步骤C、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作

13、为二 叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点 所对应的数据节点作为当前子任务拟分配的数据节点; 0011 步骤D、更新数据节点的数据; 说 明 书CN 102790698 A 2/10页 5 0012 步骤E、对于剩余的未分配的子任务,依次重复执行步骤B-步骤D,直至为所有子 任务找到拟分配的数据节点,从而得到最终的分配策略。 0013 在子任务过多或云数据中心过于繁忙的情况下,很可能会出现活跃态数据节点数 量不足的情况,即部分子任务未找到合适的活跃态数据节点,此时就需要激活部分处于休 眠态的数据节点。为了避免云数据中心大量休眠节点被不必要的激活,从而

14、造成额外的能 源浪费,本发明进一步采用以下技术方案: 0014 在步骤E中,如具有额外计算能力的活跃态数据节点数量不足时,则执行以下步 骤: 0015 步骤1、假设存在L个子任务未找到拟分配的数据节点,选择L个休眠态数据节点, 作为一颗完全二叉树的叶结点; 0016 步骤2、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一 层非叶结点; 0017 步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二 叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点 所对应的数据节点作为当前子任务拟分配的数据节点; 0018 步骤4、更新数据节

15、点的数据; 0019 步骤5、对于剩余未分配的子任务,依次重复执行步骤2-步骤4,直至为所有L个 子任务找到拟分配的数据节点; 0020 步骤6、设L个子任务完成分配后,所述L个休眠态数据节点中有K个未部署任务, 则激活L-K个休眠态数据节点后转至步骤A。 0021 优选地,从两个节点DN A 、DN B 中选出其中的较节能者,具体按照以下方法: 0022 假设使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、 磁盘传输速率分别为ORORU.CPU和ORORU.DIO,节点DN A 当前的CPU利用率、磁盘传输速率分 别为DN A .CPU、DN A .DIO,节点DN B

16、当前的CPU利用率、磁盘传输速率分别为DN B .CPU、DN B .DIO, 执行当前子任务所需的CPU利用率、磁盘传输速率分别为Task.CPU、Task.DIO;分别计算 数组(DN A .CPU+Task.CPU),(DN A .DIO+Task.DIO)、(DN B .CPU+Task.CPU),(DN B .DIO+Task. DIO)、(DN A .CPU,DN A .DIO)、(DN B .CPU,DN B .DIO)与数组(ORORU.CPU,ORORU.DIO)之间的欧氏 距离ED1、ED2、ED3、ED4;如ED1与ED4之和大于ED2与ED3之和,则节点DN A 为较节

17、能者; 否则,节点DN B 为较节能者。 0023 进一步地,如同时存在多个任务需要调度,则管理节点首先按照各任务的任务比 较系数从大到小的顺序对多个任务进行排序,然后依次进行子任务分割及子任务分配;所 述任务的任务比较系数按照下式得到: 0024 0025 式中,Weight i 表示第i个任务的任务比较系数,Task i .CPU、Task i .DIO分别为执行 第i个任务所需的CPU利用率、磁盘传输速率,ORORU.CPU、ORORU.DIO分别为使所述大规模 计算集群达到最优资源配置时的单个数据节点的CPU利用率、磁盘传输速率。 0026 相比现有技术,本发明具有以下有益效果: 00

18、27 (1)使节点的存储方式和计算能力同该节点所分配的工作负载尽可能匹配,避免 说 明 书CN 102790698 A 3/10页 6 因节点不充分利用而造成的资源和能源浪费; 0028 (2)使工作节点的数量同当前的任务量匹配,其余的节点在低能耗或休眠的节能 模式下运行; 0029 (3)随着云数据中心规模的增大,为某一个任务选择出合适的节点的时间呈指 数增长,本发明考虑到云数据中心本身所具有的海量节点,在合理的时间内提供合适的结 果; 0030 (4)目前的云数据中心,节点通常被分为多种运行状态;本发明能够针对节点的多 种状态进行有效的区分,不同状态的节点进行任务的不同分配,避免云数据中心

19、大量休眠 节点被不必要的激活,造成额外的能源浪费; 0031 (5)云数据中心作为一个开放的平台,很可能在同一时段接受大量各种不同的任 务,本发明在提供了单任务调度的策略的同时,考虑到多任务并行执行的情况,从而能够针 对多任务情况提供一个合适的方法来对不同的任务进行有效的区分。 附图说明 0032 图1为节能树的结构示意图。 具体 实施方式 0033 下面结合附图对本发明的技术方案进行详细说明: 0034 本发明的思路是在对任务分配数据节点时,利用节能树模型,将具有额外计算能 力的活跃态数据节点作为一棵完全二叉树的叶结点,从能耗的角度将所有叶结点进行两两 比较,较低能耗的节点作为节能者,选出的

20、节能者作为上一层非叶结点,再进行两两比较, 如此重复,直到选出根结点为止,根结点即为最合适的数据节点。 0035 在对本发明技术方案进行详细描述前,先对大规模计算集群的系统模型进行简要 介绍: 0036 1)节点模型 0037 本发明采用的云数据中心的节点,从功能上分为两类:管理节点和数据节点,当用 户将任务提交给云数据中心后,由管理节点负责将用户的任务切分成若干个子任务后选择 合适的数据节点部署任务。并在所有子任务处理完成后,由管理节点将结果返回给用户。定 义如下: 0038 定义1管理节点(Master Node,MN),云数据中心的管理节点,逻辑上唯一,负责整 个云数据中心的管理。 00

21、39 定义2数据节点(Data Node,DN),可被抽象为以下四元组: 0040 DN=(ID,CPU,DIO,State) (1) 0041 上式中ID为数据节点的唯一标识;CPU为数据节点的当前CPU利用率,DIO为数 据节点当前的磁盘传输速率,这两个指标用于表示数据节点当前已使用的计算能力;State 为数据节点当前状态,且每个节点都可能处在下列两种工作状态之一: 0042 状态A(活跃态(Active):节点上有计算任务,并可以继续承担系统部署的任务。 0043 状态B(休眠态(Dormant):节点上无计算任务,但可以承担系统部署的任务。 0044 当一个处于活跃态的节点完成自身的

22、任务后,将自动进入休眠状态(本发明指深 说 明 书CN 102790698 A 4/10页 7 度休眠,此时该节点不产生任何能耗)。管理节点可向处于休眠态的数据节点部署任务,当 数据节点接收到任务后自动转为活跃态并立刻开始处理任务。 0045 对于一个特定规模的云数据中心,存在着一个CPU利用率和当前磁盘传输速率的 最优资源组合。 0046 定义3最优资源配置(Optimal Configuration of Resource Utilizations, OCORU),可被抽象为以下二元组: 0047 OCORU=(CPU,DIO) (2) 0048 当该云数据中心的每个数据节点的DN.CPU

23、和DN.DIO都工作在ORORU.CPU和 ORORU.DIO时,整个云数据中心处理单位数据的能耗最低,即此时每消耗单位电力所获得的 回报最高。对某一特定的云数据中心OCORU.CPU和OCORU.DIO均为常数,可实际测得。 0049 2)任务模型 0050 定义4任务(Task),可被抽象为以下六元组 0051 Task=(ID,Data,Code,CPU,DIO,Amount) (3) 0052 上式中ID为任务的编号,是该任务与其他任务相区别的唯一标识;Data表示用户 向云计算中心提交的,其想要处理的原始数据,将会被管理节点切分成多份子数据,以便分 布在若干个数据节点上进行处理;Co

24、de表示用户向云计算中心提交的处理Data的程序代 码,Code中用户包含处理Data的方法和这些方法与Data的映射关系;CPU表示运行该任 务所需的CPU利用率,管理节点只向OCORU.CPU-DN.CPUTask.CPU的数据节点派遣该任务 的子任务;DIO表示运行该任务所需的DIO利用率,管理节点只向OCORU.DIO-DN.DIOTask. DIO的数据节点派遣该任务的子任务;Amount表示该任务子任务的数量,对于特定环境的 特定任务而言是一个常数。 0053 用户租用云计算中心的设备,需要向云数据中心提供其想要处理数据以及处理数 据的程序代码,管理节点将用户提供的任务切分成若干个

25、的子任务分布到数据节点上执 行。 0054 定义5子任务(SubTask),可被抽象为以下三元组: 0055 SubTask=(ID,Data,Code) (4) 0056 上式中ID为子任务的编号,每个子任务有且只有一个与其他子任务不同的编号, 是这个子任务与其他子任务相区别的唯一标识;子任务的ID与任务的ID存在对应关系,可 以通过子任务ID推知这个子任务属于哪个任务;当所有子任务完成后,管理节点依据子任 务的ID将结果有序汇总后返回给用户。Data表示由管理节点将用户提交的原始数据切分 后得到的子数据。Code表示用户提交的代码中与该子任务的子数据相映射的部分代码,包 含了该子任务相关的

26、子数据的处理方法。 0057 根据上述描述可知,一个大规模云数据中心的任务调度问题可以抽象为以下情 况:云数据中心的最优资源配置值为(OCORU.CPU,OCORU.DIO),共有n个处于活跃态的 同构数据节点DN 1 ,DN 2 ,DN 3 DN n 和k个处于休眠态的数据节点,第i个处于活跃 态的数据节点表示为(DN i .CPU,DN i .DIO)。任务Task被切分成Task.Amount个子任务 SubTask 1 ,SubTask 2 ,SubTask 3 ,SubTask Task.Amount ,管理节点需要将这Task.Amount个 子任务部署在云数据中心的数据节点上。

27、0058 本发明在对子任务进行调度时,具体按照以下方法: 说 明 书CN 102790698 A 5/10页 8 0059 步骤A、构建一颗完全二叉树,以所有具有额外计算能力的活跃态数据节点作为该 二叉树的叶结点; 0060 步骤B、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一 层非叶结点; 0061 步骤C、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二 叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点 所对应的数据节点作为当前子任务拟分配的数据节点; 0062 步骤D、更新数据节点的数据; 0063 步骤E、对于剩余的未

28、分配的子任务,依次重复执行步骤B-步骤D,直至为所有子 任务找到拟分配的数据节点,从而得到最终的分配策略。管理节点按照最终的分配策略对 子任务进行实际分配部署。 0064 在用完全二叉树定义节能树时,可用数组e1.n表示n名参加比较的数据节点 的节点编号,用数组t1.n-1表示组成的完全二叉树的n-1个内部节点,ti的值是数 组e中的比较节能者的下标,当外面节点个数为n是内部节点数为n-1。图1给出了n=5 时的节能树中各节点与数组e和t之间的对应关系。 0065 设根到最远层内部节点的路径长度s为从根到该内部节点路径上的分支条数,则 对有n个叶结点的节能树有: 0066 0067 这样,最远

29、层最左端的内部节点的编号为2 s ,最远层的内部节点个数为n-2 s 。此处 用lowExt代表最远层的外部节点数目,offset代表最远层外部节点之上所有节点数目: 0068 offset=2 s+1 -1 (6) 0069 每一个外部节点ei所对应的内部节点tk,i和k之间存在如下的关系: 0070 0071 如图1中,外部节点数n=5,s=2,最远层最左端的内部节点为t2 s =t4,该层的 内部节点数共有n-2 s =5-4=1。 0072 当数据中心分配一个子任务时,需新建一棵节能树,并以所有可用的数据节点为 树的叶结点,将节能树进行初始化。初始化完成后,节能树的根结点,即为最合适的

30、数据节 点。通常,可直接以所有具有额外计算能力的活跃态数据节点作为可用数据节点,设n为具 有额外计算能力的处于活跃态的数据节点的数量,由上述可知,根到最远层内部节点路径 上的分支条数最远层的外部节点数目为lowExt=2(n-2 s ),最远层外部节 点之上所有节点数目offset=2 s+1 -1,t用来存储比较的节能者的下标即数据节点的节点 编号,winner(DN A ,DN B )用于获得DN A 、DN B ,之间的节能者,初始化过程用伪代码表示如下: 0073 说 明 书CN 102790698 A 6/10页 9 0074 0075 下面对上述伪代码作进一步说明: 0076 算法

31、1中13行为预处理内容,分别对s、lowExt和offset值进行初始化。 0077 任务执行过程如下: 0078 (1)(算法1第5行到7行)表示从节能树最远层的外部节点i开始逐层向上进行 比较。 0079 (2)(算法1第8行到11行)为了执行由其他n-lowExt个节点激活的比较,必须 确定n是否为奇数。若n为奇数,则DN lowExt+1 为右孩子,否则为左孩子。当n为奇数时,内 部节点要与外部节点比较,对手为DN tn-1 ,父节点为DN t(n-1)/2 。 0080 (3)(算法1第12行到14行)表示从节能树最左侧剩余节点处开始,处理其他剩 余外部节点的比较。t1为最终节能者(

32、即最优的数据节点)。 0081 算法2(第15行到20行)为比较的实现过程,比较从DN k 处开始,DN lc ,DN rc 是DN k 的左孩子和右孩子。 0082 算法1和算法2中,仅当从一个节点的右孩子上升到该节点时,才在该节点进行一 次比较。倘若是从左孩子上升到该节点,因其右子树的节能者尚末确定,因而不能在该节点 上进行比较。 0083 算法3为叶结点之间进行比较并选出节能节点的方法,本发明采用以下方法进 行比较:假设使所述大规模计算集群达到最优资源配置时的单个数据节点的CPU利用率、 磁盘传输速率分别为ORORU.CPU和ORORU.DIO,节点DN A 当前的CPU利用率、磁盘传输

33、速 率分别为DN A .CPU、DN A .DIO,节点DN B 当前的CPU利用率、磁盘传输速率分别为DN B .CPU、 说 明 书CN 102790698 A 7/10页 10 DN B .DIO,执行当前子任务所需的CPU利用率、磁盘传输速率分别为Task.CPU、Task.DIO; 分别计算数组(DN A .CPU+Task.CPU),(DN A .DIO+Task.DIO)、(DN B .CPU+Task.CPU),(DN B . DIO+Task.DIO)、(DN A .CPU,DN A .DIO)、(DN B .CPU,DN B .DIO)与数组(ORORU.CPU,ORORU

34、.DIO) 之间的欧氏距离ED1、ED2、ED3、ED4;如ED1与ED4之和大于ED2与ED3之和,则节点DN A 为 较节能者;否则,节点DN B 为较节能者。举例来说,假设有两个数据节点DN A ,DN B ,DN A 的当 前CPU利用率为30,磁盘传输速度为30(表示为(30,30),DN B 的当前CPU利用率为40, 磁盘传输速度为10(表示为(40,10)。管理节点将选择两个节点中的一个来承担某一需 求(10,10)的任务,云数据中心的最优资源配置值为(80,50)。该方法首先计算欧几里 得距离,数据节点DN A 的初始距离数据节点DN B 的初始距离 若将任务分配给DN A

35、则分配后的距离变为41.2,若将任务分配 给DN B 则分配后的距离变为42.4。把作业分配给数据节点DN A 后使得数据节点DN A 和数据 节点DN B 的总的欧几里得距离更大,所以选择此方案。具体过程如下: 0084 (1)(算法3第22到25行)用来考察叶结点是否有额外的计算能力才处理任务, 若该数据节点不能满足OCORU.CPU-DN.CPUTask.CPU且OCORU.DIO-DN.DIOTask.DIO的条 件则说明其没有足够的剩余计算能力来承担任务,直接判负。 0085 (2)(算法3第26到29行)对两个DN A ,DN B ,计算其欧几里得距离并返回大 的节点。 0086

36、在初始化节能树的过程中,第一次循环计算s需要O(log 2 n)的时间,第二次和第 三次循环(包括方法2)共需O(n),因此总的时间复杂度为O(n)。 0087 然而在子任务过多或云数据中心过于繁忙的情况下,很可能会出现活跃节点数量 不足的情况。本发明也通过构建节能树的方式来决定需要激活的休眠节点的数量。基本 思想是:假设存在L个剩余子任务,则以L个数据节点为树的叶结点,这L个数据节点的 CPU,DIO都为零;初始化完成后,重新比较直到L个子任务都被分配为止并返回任务派遣数 组;检查该数组,得到K个未被部署子任务的数据节点,L-k即为应当激活的数据节点的数 目;重新初始化一棵节能树,以n个处于

37、活跃态的数据节点和L-K个处于休眠态的数据节点 作为叶结点,进行比较;最终得到的任务派遣数组即为最终的任务部署方案。具体地,在步 骤E中,如具有额外计算能力的活跃态数据节点数量不足时,则执行以下步骤: 0088 步骤1、假设存在L个子任务未找到拟分配的数据节点,选择L个休眠态数据节点, 作为一颗完全二叉树的叶结点; 0089 步骤2、对所有叶结点进行两两比较,分别选出其中的较节能者作为二叉树的上一 层非叶结点; 0090 步骤3、对所述上一层非叶结点再进行两两比较,分别选出其中的较节能者作为二 叉树的再上一层非叶结点;依此类推,直到选出二叉树的根结点为止,管理节点将该根结点 所对应的数据节点作

38、为当前子任务拟分配的数据节点; 0091 步骤4、更新数据节点的数据; 0092 步骤5、对于剩余未分配的子任务,依次重复执行步骤2-步骤4,直至为所有L个 子任务找到拟分配的数据节点; 0093 步骤6、设L个子任务完成分配后,所述L个休眠态数据节点中有K个未部署任务, 则激活L-K个休眠态数据节点后转至步骤A。 说 明 书CN 102790698 A 10 8/10页 11 0094 整个执行过程用伪代码表示如下: 0095 0096 任务执行过程如下: 0097 (1)(算法4第30行)表示新建一个节能树并初始化,得到第一个子任务要部署的 数据节点的下标。 0098 (2)(算法4第31

39、行到37行)因为选择了一个数据节点并部署了子任务,该数据 节点的CPU和DIO都已经发生了变化。更新节能树,重新组织比较,选出另一个数据节点, 直到所有Task.Amount个子任务都得到部署。最终返回一个含有m个元素的数组a记录 了Task.Amount个子任务所对应的数据节点的编号。 0099 (3)(算法4第38行到57行)求得剩余子任务的数量L,以L个数据节点为树的叶 结点,初始化节能树。重新比较得到K个未被部署子任务的数据节点,L-k即为应当激活的 数据节点的数目。重新初始化一棵节能树,以n个处于活跃态的数据节点和L-K个处于休 眠态的数据节点作为叶结点,进行比较,最终返回一个含有T

40、ask.Amount个元素的数组a 记录了Task.Amount个子任务所对应的数据节点的编号。 0100 算法5(第59行到72行)为重新组织比较的过程,由于节能树已经初始化,更新 说 明 书CN 102790698 A 11 9/10页 12 后的节能树只有节能者的值发生改变。所以需重新执行从节能者对应的外部节点到根的路 径上的所有比较。 0101 上面已经分析过,节能树初始化过程的时间复杂度为O(n)。在此基础上重构该节 能树,每次重构节能树的时间代价为O(log2n),因此整个过程的时间复杂度为O(nlog2n)。 0102 云系统是开放的大型多用户系统,这很大程度上增加了问题的复杂性

41、,很可能 出现在同一个时段,有多个用户都提交了各自的任务的情况。若此时同时有(10,10) 和(50,20)两个任务。按照初始方法,将(10,10)分配给节点ND A 后变为ND A (40.40), ND B (40,20)此时为了部署(50,20)的任务需重新激活一个休眠节点,成为有三个数据节点 (40,40),(40,20),(50,20)的情况。若先部署(50,20)的任务,可知ND A 、ND B 中只有前者有 能力承载该任务,于是将其分配给ND A 。后再部署(10,10)任务此时只有ND B 有能力承载该 任务,于是分配给ND B 。最终只有两个数据节点分别为(80,50)、(5

42、0,50)。第一种分配方式 不仅比第二种多用了一个数据节点,而且每个数据节点距离最优资源配置值都有一定的差 距,从节能的角度来说显然第二种分配方式更为合理。 0103 计算量小的任务有更好的灵活性,优先部署大任务后再部署小任务,往往可以利 用小任务的灵活性填补数据节点剩余的计算资源以接近最优资源配置,而不用激活休眠节 点,减少了系统的开销。 0104 当任务分别为(10,10)和(50,20)时,1050、1050我们可以很直观的比较出任务 的大小即(10,10)小于(50,20)。可是当两个任务变成(10,20),(20,10)的时候,我们便 不能通过原来的方法直接将任务进行比较。为了解决这

43、个问题,我们定义一个任务比较系 数Weight。 0105 定义6对某一个任务Task i 来说,该任务所对应的任务比较系数如下所示: 0106 0107 本发明中每个数据节点所能提供的CPU和DIO均要小于OCORU.CPU和OCORU.DIO。 通常情况下OCORU.CPU与OCORU.DIO的值并不接近,因此为了对任务的大小进行公平的比 较,需要对任务需求的CPU和DIO依照最优资源配置值的不同进行区别对待,赋予不同的权 重。即为任务所需CPU的权重,即为任务所需DIO的权重。设 (OCORU.CPU,OCORU.DIO)=(80,50),则(10,20)的比较系数为0.525,(20,

44、10)的比较系数 为0.45,由此任务(10,20)大于(20,10),为这两者中的大任务。 0108 多任务的情况抽象为如下形式:假设有m个任务Task 1 ,Task 2 , Task 3 Task m ,云数据中心共有n个处于活跃态的同构数据节点DN 1 ,DN 2 ,DN 3 DN n 和k个处于休眠态的数据节点,管理节点需要将这m个任务部署在云数据中心上。数据中 心的最优资源配置值为(OCORU.CPU,OCORU.DIO),所有节点均运行在该值之下。 0109 在云数据中心同时收到多个任务的情况下,本发明采取大任务优先的调度原则, 其基本思想是:先利用节能树对所有任务进行排序,将比

45、较系数大的任务选择为节能节点, 重复进行比较,由此可得到一个优先级由大到小的任务队列。管理节点按所得的任务队列 再依次进行分配直到所有任务都分配完毕为止。整个执行过程用伪代码表示如下: 说 明 书CN 102790698 A 12 10/10页 13 0110 0111 任务执行过程如下: 0112 (1)(算法6第73行)表示以m个Task为根结点新建一个节能树并初始化。 0113 (2)(算法6第74行到78行)将节能树的根结点放入数组a中,更新节能树,将 已经取得冠军的节点从节能树删除,重新组织比较,选出另一个数据节点,直到所有任务排 序结束。最终返回一个含有m个元素的数组a,从a1到am为依次处理任务的优先次 序。 0114 (3)(算法6第79行到82行)对每一个单任务,分别进行子任务分割及子任务分 配,直到所有任务部署完毕。 0115 由上述可知,对单个任务部署的时间复杂度O(nlog 2 n),对m个任务每次都需要 进行一次单任务部署,因此时间复杂度为O(mnlog 2 n)。在一个云数据中心中,通常同时处 理任务的数量m远小于将任务切分成的子任务的数量,所以方法的时间复杂度可以近似为 O(nlog 2 n)。 说 明 书CN 102790698 A 13 1/1页 14 图1 说 明 书 附 图CN 102790698 A 14

copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1