基于QoS和能耗协同优化的实时工作流调度方法

文档序号:27684870发布日期:2021-12-01 00:58阅读:175来源:国知局
基于QoS和能耗协同优化的实时工作流调度方法
基于qos和能耗协同优化的实时工作流调度方法
技术领域
1.本发明属于计算机云计算领域,具体涉及基于qos和能耗协同优化的实时工作流调度方法。


背景技术:

2.云计算技术的发展为并行应用,特别是科学工作流提供了良好的平台。这些平台通过网络为应用提供大量由高性能的分布式资源构成的资源池,使应用系统能够根据需要获取资源和服务。随着云计算的飞速发展,其规模越来越大,相应的能源消耗也越来越多,对环境的影响也越来越突出,在云计算的发展道路上,能耗问题得到了越来越多的关注。另外,用户可以在按需付费的基础上,基于其所需的服务质量(quality of service, qos)参数的服务水平协议(sla)来消费这些服务。有效地任务调度机制是影响云计算环境性能和用户满意度的关键因素。 然而,将工作流应用中的任务调度映射到处理机上是个复杂的问题,它不仅要考虑不同处理机的处理能力不同和处理机间的不同的网络通信速率,甚至需要考虑用户定义的 qos。因此,任务调度问题一直是云计算环境的核心内容,也是人们一直研究的热点。
3.任务根据有无依赖关系分为独立任务和依赖任务,依赖任务又称为工作流任务。具有依赖关系的任务通常由一个有向无环图(directed acyclic graph, dag)表示,一个工作流也就是一个dag图。
4.目前针对工作流调度的方法可以分为两类。一类是以离线的方式对多个工作流任务进行统一的调度。另一类是以在线的方式对工作流任务进行实时的调度。离线的工作流调度,包括使用传统的多阶段方式和进化算法方式。采用进化算法方式如使用多目标遗传算法的工作流调度方法(rehman a, hussain s s, ur rehman z, et al. multi

objective approach of energy efficient workflow scheduling in cloud environments[j]. concurrency and computation: practice and experience, 2019, 31(8): e4949)。但是这样的方法只能适用于多个任务同时或者同一时间段内到达,需要事先获取全部的任务,且调度过程中不能有新的任务参与调度。然而,任务的提交到达是实时的、有序的和有qos要求的。此外在线的方式对工作流进行调度就针对任务提交的实时性和qos要求进行调度(arabnejad v, bubendorfer k, ng b. dynamic multi

workflow scheduling: a deadline and cost

aware approach for commercial clouds[j]. future generation computer systems, 2019, 100: 98

108.)。但是这类算法,没有考虑到能耗问题。


技术实现要素:

[0005]
本发明的目的在于提供一种基于qos和能耗协同优化的实时工作流调度方法,将基于qos和能耗协同优化与在线调度的方式相结合,用以解决现有方法对具有实时、用户qos要求和数量规模大的工作流任务调度时性能不稳定以及能耗高的问题。任务调度中服
务质量qos主要是指时间约束,即为工作流任务设置截止时间。
[0006]
本发明的目的至少通过如下技术方案之一实现。
[0007]
基于qos和能耗协同优化的实时工作流调度方法,包括以下步骤:s1、在随机到达的多个工作流中,计算工作流中各个任务的子截止时间,子截止时间越小的任务的优先级越高,每次调度选择优先级最高的任务进行调度;s2、根据从步骤s1中选取的任务,通过计算时间

能耗效率因子,选择目标虚拟机,完成任务到虚拟机的映射;具体包括如下步骤:s2.1、构建系统能耗模型,采用基于系统整体构建任务能耗模型;所述系统能耗模型中,目标环境系统为云计算数据中心,采用表示,其中h表示物理主机的集合;vm表示虚拟机的集合,,虚拟机运行于物理主机上,如果第个虚拟机运行在第个物理主机上,采用表示;针对物理主机能耗模型,主要根据cpu利用率,采用线性功耗模型,其计算如下:(1)其中,和分别表示第个物理主机的空闲功耗和满载功耗,为第个物理主机的cpu利用率,是第个物理主机在cpu利用率为时的功耗;由于工作负载的可变性,cpu的利用率可能会随着时间的推移而改变,因此cpu利用率是关于时间的函数,可以表示为,是时间变量,因此,物理主机的总能耗,可以定义为一段时间内的功率消耗的积分,如下表示: (2)其中,x
0 、x1分别表示一段时间的起点和终点,是第个物理主机的总能耗,同时的计算方式如下:(3)其中,为第个虚拟机执行任务时的cpu利用率,由于采用的是线性功耗模型,结合公式(1)和(3),第个虚拟机执行任务时的平均功耗为:(4)。
[0008]
s2.2、将从步骤s1中得到的任务,使用步骤s2.1中的任务能耗模型,计算时间

能耗效率权衡因子,选择可调度的目标虚拟机,完成任务到虚拟机的映射。
[0009]
进一步地,步骤s1包括以下步骤:s1.1、采用有向无环图(directedacyclicgraph,dag)表示工作流,并采用自底向上的方式对工作流进行分层;s1.2、根据最早开始时间和最早完工时间计算工作流中各个任务的子截止时间(sub

deadline, ),子截止时间越小,该任务的优先级越高。
[0010]
进一步地,步骤s1.1中,所述工作流包括若干个任务,工作流中的任务具有数据依赖,在任务调度中,通常采用有向无环图(directedacyclicgraph,dag)来表示工作流;有向无环图用一个二元组来表示,其中,t表示所有节点组成的集合,,每个节点表示工作流中的一个任务,;是节点之间有向边的集合,表示工作流中各个任务之间的依赖关系,即对,任务执行完成后任务才能开始执行,;表示在给定的工作流中,任务的直接前驱任务集合,也称任务的父任务集合;表示在给定的工作流中,任务的直接前驱任务集合,也称任务的子任务集合;其中,表示工作流的入口任务,满足表示工作流的出口任务,满足;有向无环图中的每一条边的权值表示处于该条边两端的任务和任务之间的通信时间;由于通信时间需要任务和任务被执行后才能获得,因此采用平均通信代价来表示任务间的通信时间;任务和任务之间的平均通信时间具体如下:(5)其中,表示任务发给任务的数据总量, 为物理主机之间的平均带宽即平均数据传输速率;当任务和任务被分配到同一个物理机上时,= 0,这是因为相对于物理机之间的通信,物理主机内的通信可以忽略;对于任意的工作流,可以根据所属的各个任务的平行性将工作流分层,以达到同一层的任务不具有依赖关系;同一层的任务共享层值,任务的层值表示着从出口任务到该任务的最长路径,用表示任务对应的层值,对于出口任务来说;对于其它任务来说,其层值计算如下:(6)其中,任务属于任务的直接后继任务;同一层的任务组成任务层集合(task level set),任务层集合的定义如下:(7)表示层值,其取值范围是[1, ]。
[0011]
进一步地,在步骤s1.2中,工作流的每个任务的子截止时间的的计算过程如下:首先,为了按时处理完成给定的工作流,一种方法是将工作流的实际截止时间进行划分或分配,采用按层划分,每一层的任务拥有各自的子截止时间,同一层的任务共享子截止时间;
给定的工作流g中,对于任务来说,计算其最早开始时间est、最早完工时间ect和初始的子截止时间,具体如下:(8)(9)表示工作流分层后第层初始的子截止时间,为了计算出工作流分层后第层的子截止时间而定义的中间值。
[0012]
(10)其中,表示工作流中的入口任务;分别表示任务、任务在所有的虚拟机中的执行时间的最小值,具体如下:(11)(12)其中,表示第k个虚拟机;表示任务的指令数;表示第k个虚拟机的计算能力;根据得到的最早开始时间est、最早完工时间ect和初始的子截止时间计算,其过程如下:(13)(14)其中,为给定的工作流g的实际截止时间;是截止时间因子(deadline factor)的英文缩写,表示实际截止时间与初始的子截止时间之间的剩余部分,跟初始的子截止时间之间的比值;公式(13)和公式(14)表示将实际截止时间与初始的子截止时间之间的剩余部分按比例分配到每层的子截止时间上。
[0013]
进一步地,步骤s2.1中,任务能耗模型的构建方式如下:(15)(16)(17)其中,分别表示任务分配给第个虚拟机的传输能耗、执行能耗和总能耗;表示为数据中心网络通信所需的平均功耗,是所有空闲虚拟机的集合,k是虚拟机空闲时平均功耗与执行任务时平均功耗的比值;公式(16)中,任务执行能耗不仅考虑了载体虚拟机的能耗,同时考虑了其余空闲虚拟机的能耗,这是由于调度的目的是为了云数据中心的整体能耗优化。
[0014]
进一步地,步骤s2.2 中,可调度的虚拟机指的是空闲虚拟机或任务等待队列为空的虚拟机;对给定的虚拟机,为其添加一个任务等待队列,当新任务映射到该虚拟机且该虚拟机已有任务在运行,新任务放置于任务等待队列;当运行中的任务完成后,立刻执行任务等待队列的任务;将任务等待队列能放置的任务数设为1,保证任务的实时处理;空闲虚拟机指的是虚拟机上没有任务在运行,处于空载的状态。
[0015]
进一步地,步骤s2.2 中,时间

能耗权衡因子的计算过程如下:对于从步骤s1中获得的任务,选择可调度的第个虚拟机得出时间因子和能耗因子:(18)(19)其中,分别表示任务在所有虚拟机中的能耗的最小值和最大值;表示任务运行在第个虚拟机上的完成时间,计算如下:(20)根据公式(18)和公式(19)计算任务在第个虚拟机上的时间

能耗权衡因子(time

energy

consumptiontrade

offfactor,tetf),具体如下:(21)从公式(15)中可知,的值可以为0,为防止分母为0导致的出错,选择+1作为分母;然后选择对于任务的时间

能耗权衡因子数值最高的虚拟机,进行调度。
[0016]
与现有技术相比,本发明具有如下的优点与技术效果:1、采用自底向上分层和截止时间按比例分布,对任务子截止时间初始化进行了优化。
[0017]
2、所提出的任务能耗模型,在执行能耗的基础上加入了传输能耗,由此考虑了传输成本,极大的减少了传输次数,再进一步的降低了能耗。
[0018]
3、所提出的任务能耗模型是基于系统整体而不是基于载体虚拟机,使得所得结果更有全局性。
[0019]
4、采用了为虚拟机添加任务等待队列,在任务执行的同时进行新任务的数据传输,能有效地减少虚拟机的空载时间,达到性能和能耗的优化;而长度设置为1,则有效地保证了任务处理的实时性。
[0020]
5、所提出的时间

能耗权衡因子,保证了qos中的时间约束的同时,能有效地降低系统能耗。
附图说明
[0021]
图1为本发明实施例中基于qos和能耗协同优化的实时工作流任务调度方法的流程图。
具体实施方式
[0022]
为了使本发明的技术方案及优点更加清楚明白,以下结合附图,进行对本发明的具体实施进行详细说明,但本发明的实施和保护不限于此。
[0023]
实施例:基于qos和能耗协同优化的实时工作流调度方法,如图1所示,包括以下步骤:s1、在随机到达的多个工作流中,计算工作流中各个任务的子截止时间,子截止时间越小的任务的优先级越高,每次调度选择优先级最高的任务进行调度,包括以下步骤:s1.1、采用有向无环图(directedacyclicgraph,dag)表示工作流,并采用自底向上的方式对工作流进行分层;所述工作流包括若干个任务,工作流中的任务具有数据依赖,在任务调度中,通常采用有向无环图(directedacyclicgraph,dag)来表示工作流;有向无环图用一个二元组来表示,其中,t表示所有节点组成的集合,,每个节点表示工作流中的一个任务,;是节点之间有向边的集合,表示工作流中各个任务之间的依赖关系,即对,任务执行完成后任务才能开始执行,;表示在给定的工作流中,任务的直接前驱任务集合,也称任务的父任务集合;表示在给定的工作流中,任务的直接前驱任务集合,也称任务的子任务集合;其中,表示工作流的入口任务,满足表示工作流的出口任务,满足;有向无环图中的每一条边的权值表示处于该条边两端的任务和任务之间的通信时间;由于通信时间需要任务和任务被执行后才能获得,因此采用平均通信代价来表示任务间的通信时间;任务和任务之间的平均通信时间具体如下:(1)其中,表示任务发给任务的数据总量, 为物理主机之间的平均带宽即平均数据传输速率;当任务和任务被分配到同一个物理主机上时,= 0,这是因为相对于物理机之间的通信,物理主机内的通信可以忽略;对于任意的工作流,可以根据所属的各个任务的平行性将工作流分层,以达到同一层的任务不具有依赖关系;同一层的任务共享层值,任务的层值表示着从出口任务到该任务的最长路径,用表示任务对应的层值,对于出口任务来说;对于
其它任务来说,其层值计算如下:(2)其中,任务属于任务的直接后继任务;同一层的任务组成任务层集合(task level set),用其英文缩写tls表示,其定义如下:(3)表示层值,其取值范围是[1, ]。
[0024]
s1.2、根据最早开始时间和最早完工时间计算工作流中各个任务的子截止时间(sub

deadline,),子截止时间越小,该任务的优先级越高;工作流的每个任务的子截止时间的的计算过程如下:首先,为了按时处理完成给定的工作流,一种方法是将工作流的实际截止时间进行划分或分配,采用按层划分,每一层的任务拥有各自的子截止时间,同一层的任务共享子截止时间。
[0025]
给定的工作流g中,对于任务来说,计算其最早开始时间est、最早完工时间ect和初始的子截止时间,具体如下:(4)(5)表示工作流分层后第层初始的子截止时间,为了计算出工作流分层后第层的子截止时间而定义的中间值。
[0026]
(6)其中,表示工作流中的入口任务;满足;分别表示任务、任务在所有的虚拟机中的执行时间的最小值,具体如下:(7)(8)其中,表示第k个虚拟机;表示任务的指令数;表示第k个虚拟机的计算能力;根据得到的最早开始时间est、最早完工时间ect和初始的子截止时间计算,其过程如下:(9)(10)其中,为给定的工作流g的实际截止时间;是截止时间因子(deadline factor)的英文缩写,表示实际截止时间与初始的子截止时间之间的剩余部分,跟初始的子
截止时间之间的比值;公式(9)和公式(10)表示将实际截止时间与初始的子截止时间之间的剩余部分按比例分配到每层的子截止时间上。
[0027]
s2、根据从步骤s1中选取的任务,通过计算时间

能耗效率因子,选择目标虚拟机,完成任务到虚拟机的映射,包括如下步骤:s2.1、构建系统能耗模型,采用基于系统整体构建任务能耗模型;所述系统能耗模型中,目标环境系统为云计算数据中心,采用表示,其中h表示物理主机的集合;vm表示虚拟机的集合,,虚拟机运行于物理主机上,如果第个虚拟机运行在第个物理主机上,采用表示;针对物理主机能耗模型,主要根据cpu利用率,采用线性功耗模型,其计算如下:(11)(12)其中,和分别表示第个物理主机的空闲功耗和满载功耗,为第个物理主机的cpu利用率,其计算方式如下:(13)其中,为第个虚拟机执行任务时的cpu利用率,由于采用的是线性功耗模型,结合公式(11)和(13),第个虚拟机执行任务时的平均功耗为:(14)。
[0028]
任务能耗模型的构建方式如下:(15)(16)(17)其中,分别表示任务分配给第个虚拟机的传输能耗、执行能耗和总能耗;表示为数据中心网络通信所需的平均功耗,是所有空闲虚拟机的集合,k是虚拟机空闲时平均功耗与执行任务时平均功耗的比值;本实施例中,根据已有经验,k通常为0.3;公式(16)中,任务执行能耗不仅考虑了载体虚拟机的能耗,同时考虑了其余空闲虚拟机的能耗,这是由于调度的目的是为了云数据中心的整体能耗优化。
[0029]
s2.2、将从步骤s1中得到的任务,使用步骤s2.1中的任务能耗模型,计算时间

能耗效率权衡因子,选择可调度的目标虚拟机,完成任务到虚拟机的映射;可调度的虚拟机指的是空闲虚拟机或任务等待队列为空的虚拟机;对给定的虚拟机,为其添加一个任务等待队列,当新任务映射到该虚拟机且该虚拟机已有任务在运行,新任务放置于任务等待队列;当运行中的任务完成后,立刻执行任务
等待队列的任务;将任务等待队列能放置的任务数设为1,保证任务的实时处理;空闲虚拟机指的是虚拟机上没有任务在运行,处于空载的状态。
[0030]
时间

能耗权衡因子的计算过程如下:对于从步骤s1中获得的任务,选择可调度的第个虚拟机得出时间因子和能耗因子:(18)(19)其中,分别表示任务在所有虚拟机中的能耗的最小值和最大值;表示任务运行在第个虚拟机上的完成时间,计算如下:(20)根据公式(18)和公式(19)计算任务在第个虚拟机上的时间

能耗权衡因子(time

energy

consumptiontrade

offfactor,tetf),具体如下:(21)从公式(15)中可知,的值可以为0,为防止分母为0导致的出错,选择+1作为分母;然后选择对于任务的时间

能耗权衡因子数值最高的虚拟机,进行调度。
[0031]
实验测试对比:本实施例中,为验证本发明的有效性,进行消融实验,实验内容和结果如下:实验所采用的方法名称以及简要描述如下:“subd

edf”:任务选择子截止时间最小的,虚拟机选择空闲虚拟机中任务完成时间最小的。
[0032]“subd

tetf”:本发明使用的调度方法。
[0033]“subd

tetf

1”:任务选择子截止时间最小的,任务执行能耗计算方式有别于公式(16),除了载体虚拟机不考虑其余虚拟机,其计算方式如下:(22)“subd

tetf

2”:任务选择子截止时间最小的,虚拟机没有任务等待队列,即新任务要在旧任务执行完成后根据调度方法得出目标虚拟机后才进行数据传输。
[0034]
本实验是在模拟环境下进行的,模拟环境如下:基于cloudsim提供的模拟工具包,构建一个云计算环境下多物理主机的仿真环境。其中:物理主机之间通过网络互连。
[0035]
每个物理主机任务执行与物理机之间通信可同时进行。
[0036]
多个虚拟机运行于物理主机上,同一物理主机上的虚拟机通信时间忽略不计。
[0037]
任务在虚拟机上执行是非抢占的。
[0038]
物理主机之间是异构的,虚拟机之间的计算能力也是不相同的,也就是说同一任务在不同虚拟机上执行存在差异性。
[0039]
衡量调度方法的指标,包括qos指标

逾期率以及能耗值。
[0040]
逾期率:当给定工作流任务的最后子任务完成时间大于工作流任务的截止时间,则称该工作流任务逾期。逾期率为逾期工作流任务数量与总工作流任务数量的比值。
[0041]
能耗值:系统在完成云任务所消耗的能量。
[0042]
针对工作流任务数量以及虚拟机数量的变化,进行实验,其实验结果如下表1和表2所示。
[0043]043]
从消融实验中可以得出,基于系统整体的任务能耗建模方式、时间

能耗权衡因子和任务等待队列对于任务的逾期率以及系统能耗都有着积极的作用。
[0044]
上述流程为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1