面向能耗的云工作流调度优化方法技术领域
本发明涉及一种计算机技术、信息技术和系统工程领域,更具体的说,尤其涉及一种面
向能耗的云工作流调度优化方法。
背景技术
云计算环境下的工作流,简称“云工作流”,是云计算与工作流相关技术的整合,能有效
提高云计算的服务质量,在需要高效计算性能和大规模存储支撑的跨组织业务协作、科学计
算等领域具有广泛的应用前景。在云计算环境下,通常配置有型号不一定相同的众多主机;
工作流执行时,通常以虚拟机作为计算资源的最小分配单位负责接收并处理工作流任务,而
虚拟机是建立在单台主机中的,由主机给其分配计算能力、带宽。云工作流调度是指在满足
工作流任务时序和用户需要约束下如何把工作流任务映射/分配到合适的云计算资源(虚拟
机)上,以及如何安排被分配到云计算资源(虚拟机)上的任务的执行顺序。云工作流调度
直接决定了整个云工作流系统的性能,已成为云工作流系统的一个重要研究内容。当前大多
数的云工作流调度/执行优化方法通常只关注执行时间或成本的优化,很少考虑能耗因素,少
数基于DVFS技术的云工作流执行/调度优化方法考虑了能耗因素,但DVFS技术需要调整服
务器CPU的运行电压/频率、反复关闭/重启服务器,这会影响服务器的性能,也会提升服务
器组件的磨损率,进而引发服务器采购与替换成本的上升,在实际使用中有一定的局限性。
发明内容
本发明的目的就在于为了解决上述问题而提供了一种面向能耗的云工作流调度优化方
法。
本发明通过以下技术方案来实现上述目的:面向能耗的云工作流调度优化方法,包括如
下步骤:
步骤1:建立面向能耗的云工作流过程模型和资源模型,获得调度优化所需的信息。
云工作流过程模型定义为:Φ={T,E},T是云工作流过程模型中的任务t的集合,E是
一个有向边(T中元素有序对)的集合,E中的每个有向边被表示为e(ti,tj);在一个e(ti,tj)
中,ti称为tj的前继任务,tj称为ti的后继任务,tj只有在其前继任务ti被执行完成后才能被
资源执行;任务集T中的任务t被进一步描述为t=(id,length,IFL,OFL);t.id是任务t的编号
或名称;t.length是任务t的执行长度,即任务t被计算资源(虚拟机)处理时需要耗费的指令
数量;t.IFL是处理任务t时需要的输入文件列表;t.OFL是任务t被处理后产生的输出文件列
表。用file.size表示文件file的大小。
云工作流资源模型被定义为:cr=(H,VM);cr.H是云计算环境下主机h的集合;cr.VM
是云计算环境下虚拟机vm的集合。
所述主机h被定义为:h=(id,ps,η,st);h.id是主机h的编号或名称;h.ps是主机h的计
算能力;h.η是主机h的负载--功耗函数,根据《计算服务器功耗和性能特性的工业标准》提
供的数据采用线性内插法来计算获得;h.st是主机h的当前状态,h.st=0表示当前主机h是空
闲的,h.st=1表示当前主机h正在处理任务,在s时刻主机h的状态用h.st(s)表示。
所述虚拟机vm被定义为:vm=(id,hid,T,ps,bw,st);vm.id是虚拟机vm的编号或名称;
vm.hid是虚拟机vm所在主机的编号或名称;vm.T是虚拟机vm可以处理的工作流任务集合;
vm.ps是虚拟机vm的计算能力,由所在主机分配;vm.bw是虚拟机vm的带宽,由所在主机分
配;vm.st是虚拟机vm的当前状态,vm.st=0表示当前虚拟机vm空闲,vm.st=1表示当前虚
拟机vm正在处理任务,在s时刻虚拟机vm的状态用vm.st(s)表示;vm处于1状态时,其总
是全力处理任务,其利用率为1,反之,vm处于0状态时,虚拟机不处理任务,其利用率为
0。
步骤2:计算任务的优先级(rank值)
首先,计算处理任务ti时的平均执行时间需要从共享数据库获得输入数据/文件的平
均传输时间及两个连续任务在虚拟机间的数据/文件平均传输时间
处理任务ti时的平均执行时间的计算方法如下:
其中:VMi={vm|ti∈vm.T}表示所有可以处理任务ti的虚拟机集合。
处理任务ti时需要从共享数据库获得输入数据/文件的平均传输时间的计算方法如下:
从任务ti到tj的数据/文件平均传输时间的计算方法如下:
其中:VMj={vm|tj∈vm.T}表示所有可以执行任务tj的虚拟机集合;
然后,计算每个任务的优先级,在工作流过程模型中对于没有后继任务的结束任务ti,
其优先级为:
其它任务的优先级采用如下递归公式进行计算:
其中:succ(ti)={t|e(ti,t)∈E}是任务ti的后继任务集合;
步骤3:从任务集T中取出一个优先级最高的任务t,找出可以执行任务t的虚拟机集合
VMt,计算把任务t分别分配给VMt中的每个虚拟机后完成包括t在内的所有已分配任务
{t′1,…,t′m}将消耗的能耗
所述的计算方法如下:
其中:为任务t′1,…,t′m的完成时间,VMh={vm|vm.hid=h.id}是创建在主机h中的
虚拟机集合。
步骤4:找出消耗能耗最小的vm,如果最小的只有一个,把t分配给此vm,如有多个最
小的,则计算这些vm开始处理任务t时所在主机h的性能功率比ξh(s)(其中s是虚拟机vm开
始处理任务t的时刻),把t分配给能耗消耗最小当中其所在主机性能功耗比最高的;把任务t
从任务集T中删除,若任务集T不为空则转到步骤3,否则转到步骤5;
所述虚拟机vm开始处理任务t时其所在主机h的性能功率比ξh(s)计算如下:
步骤5:输出工作流调度(任务分配)方案。
在步骤1中,若任务ti是任务tj的前继任务,那么任务ti执行后产生的输出文件中至少有
一个是任务tj执行所需要的输入文件,即:ti.OFL∩tj.IFL≠φ。
在步骤1中,所述主机状态为0的充要条件是:主机中的所有虚拟机都没有处理任务处
于0状态,形式化表示为:主机状态为1的充要条件是:主机中有
虚拟机在处理任务处于1状态,形式化表示为:
在步骤1中,所述任务执行长度与虚拟机的处理能力共同影响着虚拟机执行任务的时间。
任务t在虚拟机vm上的执行时间为:
E
x
e
T
i
m
e
(
t
,
v
m
)
=
t
.
l
e
n
g
t
h
v
m
.
p
s
-
-
-
(
8
)
]]>
在步骤1中,所述文件大小与虚拟机带宽共同影响着文件在不同虚拟机或虚拟机与共享
文件系统之间的传输时间。
文件在虚拟机vmi,vmj间传输文件file所需的时间为:
T
r
a
n
s
T
i
m
e
(
f
i
l
e
,
vm
i
,
vm
j
)
=
8
×
f
i
l
e
.
s
i
z
e
min
(
vm
i
.
b
w
,
vm
j
.
b
w
)
-
-
-
(
9
)
]]>
文件在虚拟机vmi与共享数据库间传输file所需的时间为:
T
r
a
n
s
T
i
m
e
(
f
i
l
e
,
vm
i
)
=
8
×
f
i
l
e
.
s
i
z
e
vm
i
.
b
w
-
-
-
(
10
)
]]>
本发明的有益效果在于:
(1)在云工作流资源模型中包含能耗因素的描述,建立了云工作流任务执行、虚拟机状
态和主机负载之间的关系,根据《计算服务器功耗和性能特性的工业标准》(TheSPECpower
benchmark)提供的数据采用线性内插法来计算建立了主机负载与功耗之间的关系,实现了基
于负载的能耗计算方法。
(2)在任务优先级计算及任务选择时考虑了任务处理时文件在不同虚拟机间传输的速度
差异、虚拟机与本地共享数据库间的文件传输等因素,更符合实际情况,在资源选择时,采
用了能耗消耗最小的规则,在保持工作流执行时间效率的同时有效降低主机处理任务所消耗
的能耗。
(3)从主机负载与功耗关系角度,进行能耗的计算与调度优化方法,不需要通过调整主
机CPU的运行电压/频率、反复关闭/重启主机来实现能耗优化,不会影响主机的性能,也不
会提升主机组件的磨损率,使用限制更少、范围更广。
附图说明
图1一个CyberShake工作流的过程逻辑结构图。
具体实施方式
下面结合说明书附图及较佳实施例对本发明做进一步详细说明,但本发明并不仅限于以
下的实施例。
图1为一个CyberShake工作流的过程逻辑结构图,由20个任务(task)组成,每个任务
的执行长度以及处理所需要的输入文件和处理后的输出文件的名称以及其长度如表1所示。
数据中心设置有两台异构的物理主机,分别为ProLiantML110G5(2cores×2660MHz,
4GB)和ProLiantML110G3(Historical)(2cores×3000MHz,4GB),各负载水平上的功耗如
参数表2与表3所示。
有Large型、Medium型、以及Small型等三种不同类型的虚拟机作为计算资源的最小分
配单位负责接收并处理工作流任务,其中:Large型虚拟机的处理能为2500MI/s,带宽为
200Mbit/s;Medium型虚拟机的处理能力2000MI/s,带宽为150Mbit/s;Small型虚拟机的处
理能力1500MI/s,带宽为100Mbit/s。
两台服务器中虚拟机(计算资源节点)配置方案如表4所示。
表1CyberShake工作流中各任务的具体参数
表2HPProLiantML110G5在各负载水平上的功耗参数
负载
0(空闲)
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
平均有效功率(W)
93.7
97
101
105
110
116
121
125
129
133
135
表3HPProLiantML110G3(Historical)在各负载水平上的功耗参数
负载
0(空闲)
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
平均有效功率(W)
105
112
118
125
131
137
147
153
157
164
169
表4两台主机中的虚拟机配置方案
针对上述案例,一种面向能耗的云工作流调度优化方法,包括以下实施步骤:
执行步骤1:建立面向能耗的云工作流过程模型和资源模型,获得调度优化所需的信息。
过程模型中:T={t1,t2,…,t20},
t1.length=120000MI,t1.IFL={fd1,fd2,fd3},t1.OFL={f1-1,f1-2}
t2.length=126000MI,t2.IFL={fd4,fd5,fd6},t2.OFL={f2-1,f2-2}
t3.length=60000MI,t2.IFL={fd7,f1-1,f1-2},t2.OFL={f3-1}
……
t20.length=3000MI,t20.IFL={f11-1,f12-1,f13-1,f14-1,f15-1,f16-1,f17-1,f18-1},t20.OFL={f20-1}
fd1.size=900MB,fd2.size=900MB,fd3.size=135MB,f1-1.size=600MB,……,
f20-1.size=40MB。
E
=
e
1
,
3
,
e
1
,
4
,
e
1
,
5
,
e
1
,
6
,
e
2
,
7
,
e
2
,
8
,
e
2
,
9
,
e
2
,
10
,
e
3
,
11
,
e
4
,
12
,
e
5
,
13
,
e
6
,
14
,
e
7
,
15
,
e
8
,
16
,
e
9
,
17
,
e
10
,
18
,
e
3
,
19
,
e
4
,
19
,
e
5
,
19
,
e
6
,
19
,
e
7
,
19
,
e
8
,
19
,
e
9
,
19
,
e
10
,
19
,
e
11
,
20
,
e
12
,
20
,
e
13
,
20
,
e
14
,
20
,
e
15
,
20
,
e
16
,
20
,
e
17
,
20
,
e
18
,
20
]]>
资源模型中:H={hHP3000,hHP2600},VM={vm1,vm2,vm3,vm4,vm5};
hHP3000.ps=3000×2=6000MI/s,hHP2660.ps=2660×2=5320MI/s;
根据表2和表3所提供的在各负载水平上的功耗参数,采用线性内插法可分别得到两种
主机:hHP3000,hHP2660的负载--功耗函数。
h
H
P
3000
.
η
(
ρ
)
=
70
ρ
+
105
0.0
≤
ρ
≤
0.1
60
ρ
+
106
0.1
≤
ρ
≤
0.2
70
ρ
+
104
0.2
≤
ρ
≤
0.3
60
ρ
+
107
0.3
≤
ρ
≤
0.5
100
ρ
+
87
0.5
≤
ρ
≤
0.6
60
ρ
+
111
0.6
≤
ρ
≤
0.7
40
ρ
+
125
0.7
≤
ρ
≤
0.8
70
ρ
+
101
0.8
≤
ρ
≤
0.9
50
ρ
+
119
0.9
≤
ρ
≤
1.0
,
h
H
P
2660
.
η
(
ρ
)
=
30
ρ
+
93.7
0
≤
ρ
≤
0.1
40
ρ
+
93
0.1
≤
ρ
≤
0.3
50
ρ
+
90
0.3
≤
ρ
≤
0.4
60
ρ
+
86
0.4
≤
ρ
≤
0.5
50
ρ
+
91
0.5
≤
ρ
≤
0.6
40
ρ
+
97
0.6
≤
ρ
≤
0.9
20
ρ
+
115
0.9
≤
ρ
≤
1
;
]]>
vm1.hid=hHP3000,vm2.hid=hHP2660,vm3.hid=hHP3000,vm4.hid=hHP2660,vm5.hid=hHP3000。
vm1.T={t1,t2,t3,t6,t7,t8,t12,t18},vm2.T={t1,t2,t3,t5,t13,t14,t15,t18,t19},
vm3.T={t1,t2,t5,t6,t9,t11,t12,t14,t17,t18,t19},vm4.T={t1,t2,t4,t7,t10,t11,t13,t14,t16,t17,t20},
vm5.T={t1,t4,t8,t9,t10,t12,t15,t16,t17,t20};
vm1.ps=1500MI/s,vm2.ps=2000MI/s,vm3.ps=2000MI/s,vm4.ps=2500MI/s,
vm5.ps=2500MI/s;
vm1.bw=100Mbit/s,vm2.bw=150Mbit/s,vm3.bw=150Mbit/s,vm4.bw=200Mbit/s,
vm5.bw=200Mbit/s。
执行步骤2:计算任务的优先级
计算任务ti(i=1,…20)的平均执行时间
同理可得结果如表5所示。
表5各任务平均执行时间(i=1,…20)
计算从共享数据库获得文件的平均传输时间(i=1,…20):
τ
1
‾
=
8
×
(
900
+
900
+
135
)
×
(
1
100
+
1
150
+
1
150
+
1
200
+
1
200
)
5
=
103.2
,
]]>
τ
2
‾
=
8
×
(
750
+
750
+
120
)
×
(
1
100
+
1
150
+
1
150
+
1
200
)
4
=
91.8
,
]]>
同理可得结果如表6所示。
表6从共享数据库获得文件的平均传输时间
计算任务ti和tj()间文件的平均传输时间:
c
1
,
3
‾
=
8
×
1200
100
×
5
+
8
×
1200
150
×
3
5
×
2
=
67.2
]]>
c
1
,
4
‾
=
8
×
1200
100
×
2
+
8
×
1200
150
×
2
+
8
×
1200
150
×
2
+
8
×
1200
200
×
2
2
×
5
=
54.4
,
]]>同理可得其他任务间文
件的平均传输时间,结果如表7所示。
表7任务间文件的平均传输时间
最后计算各任务的优先级:
同理可以获得其他任务的优先级,结果如表8所示。
表8各任务的优先级rank(ti)
任务
优先级
任务
优先级
任务
优先级
t1
284.77
t5
30.09
t13
6.09
t2
251.7
t10
24.6
t14
5.9
t3
55.17
t9
23.36
t17
5.46
t7
46.8
t12
7.886666667
t16
5.22
t8
35.72
t11
7.17
t19
1.65
t4
34.68666667
t18
7
t20
1.2
t6
34.1
t15
6.9
执行步骤3:从任务集T={t1,t2,…,t20}中的取出一个优先级最高的任务t1,找出可以执行
任务t1的虚拟机集合VM1={vm1,vm2,vm3,vm4,vm5}。计算把任务t1分别分配给VM1中的每个虚
拟机后完成包括t1在内的所有已分配任务{t1}将消耗的能耗:若把t1分配给vm1,根据式
(8),可得t1的执行时间根据式(10),可得vm1执行任务t1前获得所需文
件的传输时间则任务t1完成时间为234.8,则(0-234.8)时间段
内,hHP2660空闲,根据负载--功耗函数,可得主机hHP2660此时的平均有效功率为93.7W,而在
hHP3000中只有vm1在运行,此时主机hHP3000的负载为0.25,根据负载--功耗函数,可得主机hHP3000
此时的平均有效功率为121.5,根据式(6),可得整个云计算资源所消耗的能耗为
234.8*93.7+234.8*121.5=50528.96。同理,计算若把t1分配给vm2,vm3,vm4,vm5后整个云计
算资源所消耗的能耗分别为34891.66918,36018.24,27487.11429,28302.78。
执行步骤4:对于任务t1,经对比可以发现消耗能耗最小的虚拟机为vm4,因此把任务t1
分配给vm4,t1的实际完成时间为125.4。把t1从任务集T中删除,更新任务集T,
T={t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20},由于任务集T非空,故转到步骤3。
执行步骤3:从当前任务集T={t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20}中选
择一个优先级最高的任务t2;当前可执行t2的虚拟机集合VM2={vm1,vm2,vm3,vm4},计算把t2
分别分配给VM2中每个虚拟机后完成包括t2在内的所有已分配任务{t1,t2}将消耗的能耗
若把t2分配给vm1,根据式(8),可得t2的执行时间根据式(10),
可得vm1执行任务t2前获得所需文件的传输时间则任务t2的完
成时间为213.6。对于hHP2660,在(0-125.4)时间段内,只有vm4运行,主机hHP2660的负载为
0.469924812,根据负载--功耗函数,可知平均有效功率为114.1954887,在(125.4-213.6)时
间段内,主机hHP2660处于空闲状态,根据负载--功耗函数,闲置状态对应的平均有效功率为
93.7,则hHP2660主机的能耗为:125.4*114.1954887+(213.6-125.4)*93.7=22584.45429;对于
hHP3000,在(0-213.6)时间段内,只有vm1运行,主机的负载为0.25,根据负载--功耗函数,
平均有效功率为121.5,则hHP3000主机的能耗为:213.6*121.5=25952.4,根据式(6),可得
整个云计算资源所消耗的能耗为22584.45429+25952.4=48536.85429。同理,计算把t2分配
给vm2,vm3,vm4整个云计算资源所消耗的能耗分别为34704.78497,35542.71428,52738.43459。
执行步骤4:对于任务t2,经对比可以发现消耗能耗最小的虚拟机为vm2,则把任务t2分
配给vm2,t2的完成时间为149.,4把t2从任务集T中删除,更新任务集
T={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20},由于任务集T非空,故转到步骤3。
执行步骤3:从当前任务集T={t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20}中选择
一个优先级最高的任务t3;可执行t3的虚拟机集合VM3={vm1,vm2},计算把t3分别分配给VM3
中每个虚拟机后完成包括t3在内的所有已分配任务{t1,t2,t3}将消耗的能耗:若把t3分配
给vm1,根据式(8),可得t3的执行时间根据式(9)和式(10)可得虚拟
机vm1执行t3前获得所需文件的传输时间则任务t3的完成
时间为125.4+40+104.4=269.8;对于hHP2660,在(0-125.4)时间段内vm2、vm4同时在运行,
根据负载--功耗函数,主机的负载为0.84584662,平均有效功率为130.8345865,在(125.4-149.4)
时间段内,只有vm2运行,根据负载--功耗函数,主机的负载为0.37593985,平均有效功率为
108.7969925,在(149.4-269.8)时间段内,主机处于空闲状态,根据负载--功耗函数,闲置状
态对应的平均有效功率为93W.7,则hHP2660主机的能耗为:
125.4*130.8345865+(149.4-125.4)*108.7969925+(269.8-149.4)*93.7=30299.26497;对于
hHP3000,在(0-125.4)时间段内,主机处于空闲状态,根据负载--功耗函数,闲置状态对应的
平均有效功率为105,在(125.4-269.8)时间段内,只有vm1运行,根据负载--功耗函数,主
机的负载为0.25,平均有效功率为121.5,则hHP3000主机的能耗为:
125.4*105+(269.8-125.4)*121.5=30711.6,根据式(6),可得整个云计算资源所消耗的能耗
为30299.26497+30711.6=61010.86497。同理,计算把t2分配给vm2,整个云计算资源所消耗
的能耗为55998.96542。
执行步骤4:对于任务t3,经对比可以发现消耗能耗最小的虚拟机为vm2,则把任务t3分
配给vm2,t3的完成时间为249,把t3从任务集T中删除,更新任务集
T={t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15,t16,t17,t18,t19,t20},由于任务集T非空,故转到步骤3。
这样不断重复执行步骤3和步骤4直到完成优先级最低的任务t20的分配,得到所有任
务的分配方案(整个任务分配的执行过程如下表9所示)。
表9整个任务分配的执行过程
执行步骤5:输出工作流调度(任务分配)方案,如表10所示。
表10工作流调度(任务分配)方案
任务调度顺序
任务ID
任务开始时间
任务结束时间
任务处理时间
当前能耗
虚拟机
1
t1
0
125.4
125.4
27487.11429
vm4
2
t2
0
149.4
149.4
34704.78497
vm2
3
t3
149.4
249
99.6
55998.96542
vm2
4
t7
149.4
222.6
73.2
57612.1173
vm4
5
t8
149.4
216.6
67.2
59426.5173
vm5
6
t4
222.6
244.8
22.2
59915.75189
vm4
7
t6
125.4
208.6
83.2
61805.35189
vm3
8
t5
208.6
293
84.4
72412.95189
vm3
9
t10
216.6
276.6
60
74092.95189
vm5
10
t9
276.6
337.8
61.2
84663.51189
vm5
11
t12
244.8
257.6
12.8
84842.71189
vm1
12
t11
249
257.64
8.64
85019.79291
vm4
13
t18
276.6
284.1
7.5
85133.02035
vm2
14
t15
284.1
293.4
9.3
85273.42238
vm2
15
t13
293.4
301.8
8.4
85400.23712
vm2
16
t14
293
296
3
85469.23712
vm3
17
t17
337.8
340.44
2.64
86065.08512
vm5
18
t16
257.64
264.36
6.72
86202.81481
vm4
19
t19
337.8
368.25
30.45
92401.20181
vm3
20
t20
340.44
356.64
16.2
92733.22872
vm4
上述实施例只是本发明的较佳实施例,并不是对本发明技术方案的限制,只要是不经过
创造性劳动即可在上述实施例的基础上实现的技术方案,均应视为落入本发明专利的权利保
护范围内。