一种基于图论的云计算数据中心任务调度方法与流程

文档序号:15819301发布日期:2018-11-02 22:57阅读:700来源:国知局
一种基于图论的云计算数据中心任务调度方法与流程

本发明属于云计算领域,尤其涉及一种高能效的基于图论的数据中心任务调度方法。

背景技术

云计算是在分布式计算、并行计算和网格计算的基础上发展起来通过网络提供服务的概念。云计算利用成熟的虚拟化技术将互联网上计算资源、网络资源、存储资源等看作共享池,提供给互联网用户无处不在的按需消费的服务,采用按需支付定价模式。资源调度分配机制是云计算基础平台重要的组件,在与计算平台资源限制下,分配海量网络用户请求的资源。

云计算任务调度问题是np难问题,绝大多数的静态调度问题都可以使用dag有向无环图上的调度算法来解决。dag中,每个节点代表应用任务,边代表任务优先级约束,优先级低的任务必须在优先级高的任务完成后才能开始,任务调度流程被dag描述出来,有唯一初始任务节点,和终止节点。如果有多个初始节点或者终止节点,添加上虚拟的初始结点和终止节点,确保dag只有唯一初始节点和终止节点。

现有的云计算平台的任务调度机制大部分都只关注任务调度的长度,只优化任务调度时间,而很少有关注服务器利用率,导致资源调度考虑不够全面,云计算平台资源浪费。



技术实现要素:

本发明要解决的技术问题在于:提供一种高能效基于图论的云计算数据中心任务调度方法,对现有云计算数据中心任务调度的方法的改进,实现服务器资源合理的分配,对用户任务高效的调度。

本发明提出了一种高能效基于图论的云计算数据中心任务调度方法,包括如下步骤:

初始化步骤:获取待执行的工作流任务集合以及云计算数据中心服务器集合,构建所述工作流任务集合的有向无环图,计算所述所述云计算数据中心服务器集合中各服务器的初始化调度和完工时间;

最优调度步骤:根据所述有向无环图和所述服务器集合上,基于时间约束得到最优任务调度。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述工作流任务集合由至少2个元任务组成。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述有向无环图包含唯一的初始节点和终止节点以及若干中间节点,优先级大的节点指向优先级小的节点。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述最优调度步骤之前进一步包括服务器优化步骤:基于任务书和能效比对所述云计算数据中心的服务器进行排序,删除能效低于阈值的服务器。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述服务器优化步骤具体包括如下子步骤:

s21.初始化服务器排序值rank和执行耗费值w;

s22.若完工时间ms小于等于完工时间最大期限d,则遍历服务器,若服务器i上执行任务j,则所述服务器i的排序值ranki=ranki+1,所述服务器i的执行耗费值wi=wi,j;

s23.更新每台工作中服务器的能效比;

s24.根据服务器的排序值和能效比高低进行降序排序;

s25.去除排序低于阈值或末位的服务器,计算更新后所述云计算数据中心服务器集合的完工时间ms';

s26.若完工时间ms'小于等于完工时间最大期限d,则更新ms为ms',并以更新后的服务器集合跳转执行s22;

s27.迭代上述过程直至遍历完所有服务器为止,得到最优服务器分配结果。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述服务器的能效比以如下公式表示:

其中tmax是服务器pi处于执行任务状态的功耗,tidle是服务器pi处于空闲状态的功耗,wi是服务器pi处于执行任务状态的计算耗费,widle是服务器pi处于空闲状态的计算耗费。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述服务器的排序值以如下公式表示:

其中tasknjonprocessori表示任务nj是否分配在服务器i上,如果是,为1;如果不是,为0。

本发明提出的所述高效能基于图论的数据中心任务调度方法中,所述最优调度步骤包括如下子步骤:

s31.按照任务优先级对所述有向无环图分层,共分n层,每一层内的任务优先级相同,第i层的任务优先级大于j层的任务优先级,i<j;

s32.根据分层后的有向无环图和服务器集合,在时间约束t下分配每一层的任务,每层分配时间ti,时间约束为

s33.对于每一层有向无环图,使用heft算法计算出任务调度,得到最优任务调度。

本发明能够适应任务集的大小动态提高云计算平台资源利用率和降低能耗。

附图说明

图1为高能效基于图论的数据中心任务调度方法流程图。

图2为工作流模型。

图3为优化服务器集合算法具体流程图。

图4为优化服务器集合前最终调度的效果图。

图5为优化服务器集合后最终调度的效果图。

具体实施方式

结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。

本发明实施例的高能效基于图论的云计算数据中心任务调度方法共分三个步骤,如图1所示,分别是:

初始化步骤:获取待执行的工作流任务集合以及云计算数据中心服务器集合,构建所述工作流任务集合的有向无环图,计算所述所述云计算数据中心服务器集合中各服务器的初始化调度和完工时间。由于考虑到任务的优先级约束,任务间相互约束的工作流模型,所以本发明采用dag(directedacyclicgraph,有向无环图)来表示工作流。

服务器优化步骤:基于任务书和能效比对所述云计算数据中心的服务器进行排序,删除能效低于阈值的服务器。

最优调度步骤:根据所述有向无环图和所述服务器集合上,基于时间约束得到最优任务调度。

以下结合各子步骤,详细阐述本发明的具体实施过程

(初始化步骤)

s11:输入网络用户提交的待调度工作流任务集合以及云计算数据中心服务器集合;

s12:将网络用户输入的任务集构建成有向无环图,遵循优先级大的节点指向优先级小的节点,表示优先级大的任务执行完成前优先级小的任务不能执行。而且必须保证整个有向无环图只有唯一的初始节点和终止节点,如果实际任务集有多个初始节点或者终止节点,添加虚拟的初始节点指向实际任务集中的多个初始节点,同样的添加虚拟的终止节点,使实际任务集中的多个终止节点指向它;

s13:使用heft算法(heterogeneousearliestfinishtime,异构最早完成时间算法),计算初始化的调度和完工时间;

进一步的,本发明高能效基于图论的数据中心任务调度方法所述的步骤2在实际最终的计算调度方案前,先优化服务器集的数量,在不违反完工时间的最大期限的约束下,优化服务器集数量,达到优化调度过程中能耗以及服务器利用率的目标;

约束条件为上面描述的任务的优先级约束,用户给出的任务集完工时间最大期限约束,任务集合中的任务都是原子任务,即任务集中每个任务都不可拆分。

(服务器优化步骤)

服务器优化步骤中,优化服务器集数量提高服务器利用率和节省能耗问题包含一个迭代过程,如图3所示,含有如下7个子步骤:

s21:初始化服务器排序值ranki,执行耗费值wi为0;

s22:算法迭代开始,如果任务完成时间ms不大于最大期限d,遍历服务器,检查是否有任务集中的任务j在服务器i上执行,如果是,ranki=ranki+1,wi=wi,j;

s23:根据能效比公式计算每台在工作的服务器的能效比,能效比公式:

其中tmax是服务器pi处于执行任务状态的功耗,tidle是服务器pi处于空闲状态的功耗,wi是服务器pi处于执行任务状态的计算耗费,widle是服务器pi处于空闲状态的计算耗费;

s24:根据ranki和ratioi对服务器集排序;

s25:在k个服务器的集合p中去掉排在最后的服务器节点pk,得到新的服务器集合p'=p-{pk},使用heft算法计算出新的完成时间ms';

s26:如果任务完成时间ms'不大于最大期限d,更新ms=ms',p=p',转到步骤3.3;

s27:迭代结束,找到最优服务器分配方案。

其中,服务器i对服务器集合排序公式具体包含以下内容:

服务器i上执行任务数(即,排序值)由如下公式表示:

其中tasknjonprocessori表示任务nj是否分配在服务器i上,如果是,为1;如果不是,为0;

服务器i的能效比由如下公式表示:

其中表示服务器i总的计算消耗值。

(最优调度步骤)

最优调度步骤包含如下子步骤:

s31:根据任务集合得出任务的有向无环图dag,按照任务优先级对dag进行分层,总共分n层,每一层的任务优先级相同,i层的任务优先级大于j层的任务优先级,i层的任务执行完j层的任务才能开始执行,i小于j;

s32:以s31的dag和s27的最优服务器集合p,在时间约束t下,每层分配时间ti,时间约束为

s33:每一层使用heft算法计算出任务调度。

实施例

本实施例中,针对用户提交的任务存在相互依赖关系,将工作流描述成一个有向无环图dag(n,e),n为任务集合,表示共有n个任务,n={n1,n2,n3,……,nn};e是边的集合e={(ni,nj)|ni,nj∈n},代表两个任务之间的约束关系。如果任务ni节点有边指向nj,那么ni是nj的先驱任务,nj是ni的后继任务,nj只有在ni完成后才能执行。

图2是任务集合的描述,共有10个任务,标号0-10,在图2中,n={n1,n2,n3,n3,n4,n5,n6,n7,n8,n9,n10},e={(n0,n1),(n0,n2),(n0,n3),(n0,n3),(n0,n4),(n0,n5),(n0,n6),(n1,n7),(n2,n8),(n3,n9),(n4,n8),(n5,n7),(n6,n8),(n7,n9),(n8,n9),}

本发明通过排序服务器集合,删减末尾节点提高服务器资源利用率,和降低能耗。该方法是一个迭代的过程,如果ms<=d,就对服务器集合进行一次完整的排序,更新服务器集合和ms。

根据任务集合得出任务的有向无环图dag,按照任务优先级对dag进行分层,总共分n层,每一层的任务优先级相同,i层的任务优先级大于j层的任务优先级,i层的任务执行完j层的任务才能开始执行,i小于j。在时间约束t下,每层分配时间ti,时间约束为每一层使用heft算法计算出任务调度,合并每层调度,得到整个任务集合的调度。

优化服务器集合前,任务调度如附图4,在给定时间约束下,服务器集合具体任务分配是表示服务器p0上的任务分配。从图4可知,服务器p2,p3,p4的利用率低于服务器p0,p1。当整个任务集运行时,服务器p2,p3,p4上各只有1个正在执行的任务,其余时间服务器p2,p3,p4都处于空闲状态。经本发明优化服务器集合后的具体任务调度如附图5,利用率较低的服务器p2,p3配置成“不启用”的关闭状态,服务器集合的具体任务分配是表示服务器不启用,然后调用最优调度步骤中的分层调度方法,在不违反时间约束的情况下,得出最终调度方案,降低服务器集合2/5的能耗。本发明可以在实际调度前,在原有服务器集合上删减掉部分服务器,以此来降低能耗,提高服务器利用率,经大量实验结果表明,服务器集合优化前后平均降低10%能耗。

本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1