1、有效资源减少量最大化的云计算工作流调度 刘晓天 朱耀琴 顾大明 盐城工业职业技术学院机电工程学院 南京理工大学计算机科学与工程学院 摘 要: 针对云环境中运行大规模科学工作流资源利用效率低的问题, 提出一种有效资源减少量最大化算法 (MERR) 。延迟限制识别, 寻找增加时间和有效资源使用减少量之间的平衡点;任务合并, 即合并原始工作流调度中资源利用率低的任务;资源合并, 采用一种最佳拟合方法合并没有完全使用的资源, 进一步改进资源使用效率。使用 CyberShake、Epigenomics、LIGO 和 Montage 这 4 种科学工作流进行仿真实验, 仿真结果表明, MERR 能有效降低
2、 54%实际使用资源, 平均时间增长少于 10%, 优于基于关键路径的调度算法。关键词: 云计算; 工作流; 调度; 资源利用率; 资源配置; 作者简介:刘晓天 (1981-) , 女, 江苏滨海人, 硕士, 讲师, 研究方向为云计算等;作者简介:朱耀琴 (1977-) , 女, 江苏无锡人, 博士, 副教授, 硕士生导师, 研究方向为云计算、虚拟机等;作者简介:顾大明 (1979-) , 男, 江苏射阳人, 硕士, 副教授, 研究方向为云计算等。E-mail:收稿日期:2016-09-06基金:国家自然科学基金项目 (61202003) Workflow scheduling for clo
3、ud computing based on maximum effective resource reductionLIU Xiao-tian ZHU Yao-qin GU Da-ming School of Mechatronic Engineering, Yancheng Industrial Vocational and Technical College; School of Computer Science and Engineering, Nanjing University of Science and Technology; Abstract: Concerning the p
4、roblem that resource running efficiency of large-scale scientific workflow is low in cloud environment, an algorithm of maximum effective resource reduction (MERR) was proposed.The delay limitation was identified.The balance point between increasing of makespan and effective resource reduction was f
5、ound out.Tasks were merged.Tasks with low resource utilization were merged.Resources were consolidated.A best fit method was adopted to merge resources that were not fully used, to further improve the efficiency of resource.The simulation was carried out on four kinds of scientific workflow includin
6、g CyberShake, Epigenomics, LIGO and Montage.The results show that proposed MERR reduces the used resources by 54%, and the average increasing time is less than 10%, which are better than scheduling algorithm based on critical path.Keyword: cloud computing; workflow; scheduling; resource utilization;
7、 resource allocation; Received: 2016-09-060 引言随着资源容量的增加, 大规模多核系统云计算的普及以及虚拟技术的发展, 大量资源信息已经被广泛应用于提高大型应用程序 (如企业的数据中心和云计算系统等) 的性能。由于工作流1具有良好的可伸缩性, 对大量资源的应用具有一定优势, 引起了极大的关注。然而, 大多数工作流以较低的资源利用率换取应用性能的提高2。一般资源调度算法侧重提高有限资源的使用性能3, 而多核处理器和云计算的出现引起人们对资源利用率的关注4。现存的大多数资源调度算法可能在调度时通过限制资源数量自适应处理大量资源, 但是仅针对部分或特定问题5
8、。Mao 等6说明了公共云中动态资源配置一般是二选一。然而, 来自工作流和不均匀宽度不同层的资源利用率较低, 这种情况在一段时间内 (一般是 1h) 仍然存在。Lee 等7证明了可以通过合并空闲任务来降低工作流调度的资源使用量。在众多调度算法中, 基于关键路径的调度算法比较流行, 它们也是最小化时间的常用方法。Xie 等8提出一种基于工序集的动态关键路径调度 (dynamic critical path scheduling, DCS) 算法, 将多个树状结构转化为一个虚拟加工树。随后, 提出了一种基于多核处理器的关键路径和任务复制调度 (critical path(2) MERR 主要创新点
9、是它能找到增加时间和减少资源使用量之间的平衡点, 该平衡点可提高资源利用率, 优化资源配置, 降低能耗。1 最优化工作流调度算法存在的问题本节主要描述工作流和系统模型的工作流调度算法的优化问题。1.1 科学工作流科学工作流由有向图 (directed acyclic graph, DAG) 表示的优先约束任务数据集组成11, G= (V, E) 包含任务集合 V, V=v0, v1, , vn, 以及边集合E, 连接两个任务的边表示它们存在优先约束或数据依赖关系, 如图 1 所示。图 1 简单工作流 下载原图大多数情况下, 一个任务可以看作为准备运行的任务 (或作为准备任务) 。根据任务 vi
10、的上一个任务 (父任务) 确定其准备就绪, 保证以最短时间完成通信。一般地, 任务 vi的最早开始时间和完成时间定义如下式中:v entry为没有任何父任务的根任务, P i为 vi父任务集合, w i和 wp分别表示vi和 vp的计算成本 (即执行时间) , 且 cp, i为 vp到 vi的通信成本。vi的最新开始时间和完成时间定义如下式中:C i为 vi的子任务且 vexit表示退出的任务。任务 vi的实际开始时间和完成时间分别表示为 AST (vi) 和 AFT (vi) , 且如果同一资源的其它任务调度的实际完成时间小于 EST (vi) , 则来自最早开始时间和完成时间的 AST (
11、vi) 和 AFT (vi) 不同。以相同方式定义 ALST (vi) 和 ALFT (vi) , vi的 LFT (或 ALFT) 通常表示为任务最后截止时间。因此, 超过该截止时间的延迟增加了总时间。最大延迟定义为 LFT 和 EFT (或 ALFT 和 AFT) 之间的差异;该延迟值为 vi子任务的同步需求。1.2 目标系统本文的目标系统由同种计算资源 R 组成, R=R 0, R1, , Rm, 资源可能为物理计算节点或一种虚拟机器, R 中的每个资源由一组 p 处理元素或 (虚拟) 处理器核组成, 即 Ri=ri, 0, ri, 1, , ri, p。本文假设单一资源任务间通信成本可
12、以忽略, 依据通信成本的核数量、计算功率和成本代价假设资源为同种资源。1.3 公式化问题假设工作流调度 S 为给定科学工作流 G 和资源集合 R 的调度算法的输出。这种调度算法可以描述为 Gantt chart, 输出调度是 G 中的一种执行任务计划, 子集资源 R 来自 R, 包含 3 个元组集合。每 3 个元组集合由任务 vi、资源 rj, k和AST (vi) 组成。资源 rj, k的调度任务表示为 Vj, k。用于资源 rj, k的总资源时间定义为 Vj, k中任务执行时间, 且使用 RT (rj, k) 表示。为了寻找一种合并调度 S 和一种原始输出调度 S, 同时最小化时间增加,
13、需要解决工作流调度最优化问题, 然而, 当考虑时间的延迟时, 工作流调度的优化问题变的更加复杂。特别地, 针对任务完成时间的延迟 (通常由合并操作引起) 可能递归传播给更多任务, 不仅包括先前任务, 而且也包含合并任务后的调度任务。工作流调度的最优化目标是寻找时间延迟与减少资源使用量之间的平衡点。为此, 本文采用有效资源减少量可以确定时间资源使用量中的实际减少量和完工时间的增加量 (increase in makespan, MI) , 合成调度的有效减少量 (effective reduction, ER) 定义如下式中:|R|合成调度使用的资源数量, ms输入调度的时间, ms合成调度的时
14、间。2 最大化有效资源减少量算法 MERRMERR 是一种工作流调度算法的最优化技术, 且它的最优时间增加与资源减少量之间可以保持平衡。MERR 由以下阶段或子算法组成: (1) 延迟限制识别; (2) 任务合并; (3) 资源合并。本质上, MERR 通过两种方法合并以寻找最优化工作流调度算法: (1) 根据任务间的数据相关性填充空闲时间段; (2) 挤压任务。一般情况下, 考虑只合并少量的资源任务。如果该平移改进了资源的有效性, 则任务转到其它资源, 通过修改允许延迟时间调整合并程度。特别地, MERR 通过在延迟限制内下推一个或更多任务在原来完工时间内来进行整合, 如图 2 (b) 所示
15、。图 2 最优化工作流调度 下载原图2.1 延迟限制识别对给定输入调度, MERR 合并该调度且允许一种特定时间增加度。因此, 识别增加的最小度是最小化资源使用量的关键。解决该问题的方法是延迟限制识别算法, 如算法 1 所示。该算法的基本原理是合并较小的资源总使用时间。算法 1:延迟限制识别输入调度 (R) 使用的资源存储 (R) 按升序存储且通过资源总使用时间 (resource time, RT) 进行组群12。为了识别最大有效减少量, 外循环 (第5 行) 迭代每个存储的资源群组。对特定资源 (第 6 行 R i) , 如果已经合并了资源, 任务花费的资源总共使用时间是一种较好描述最大增
16、加时间的指示器。由于本文处理资源群组, 因此, 可以保持有效减少任何目标资源中已经合并的资源使用量, 对先前资源群组也一样 (第 6 行) 。资源数量用于合并处理其它资源的任务, 因此, 通过 srcnt 确定资源使用的减少量 (reduction in resource usage, RUR) (第 15 行) 。图 2 (a) 中, 从 R0到 R2, 3 种资源的 RT 分别为 45、8 和 6。通过求和所有任务的执行时间计算特定资源的 RT, 例如, 图 2 (a) 中 R0的 RT 值表示经过两个核心 11 个任务的执行时间总和, 即 r0, 0中的 v0, v1, , v14和 r
17、0, 1中的 v2, v4, , v12。使用 RT 是因为在最糟糕场景下, 所有这些 11 个任务合并为一个核中。如图 2 所示, RT 的资源顺序为 R2, R1和 R0;排序后的实际顺序为 R 0和 R 1紧跟其后, 除了 R 2 (即第 5 行 R-R |R| ) 。在第一次迭代, srcnt、trcnt、RT i和 ms分别为 1, 2, 6 和 35。然后, MI、RUR 和 ER 分别为 0.21 (21%) , 0.33 (33%) 和 0.12 (12%) 。如果 srcnt 大于 trcnt (9 行) , 则可以递归原资源的 RT 确定时间增加。在图2 (a) 中, 在如
18、此计算中, 原资源是 R中第 2 和第 1 个资源。然后, ms=29+6+8, srcnt=2, MI、RUR 和 ER 分别为 0.48、0.67 和 0.19。因此, 如图 2 (b) 的调度过程。ER 值为 0.19 作为延迟限制, 因为图 2 (b) 中的最优调度时间增加。在每次迭代末尾, 比较最大有效资源 (ER) 和当前 ER 识别最终 ER, 该值是用于任务合并算法/阶段的时间延迟限制 (d) 。2.2 合并任务实际上, 资源子集的整合即任务的整合13, 如算法 2 所示。完工时间的增加由时间延迟限制与剩余资源整合获得, 如算法 2 的第 1 行所示, 输入调度 (S) 使用的
19、资源 (R) 首先反序进行分配, 因为对于大多数资源, 给定调度的资源使用率逐渐降低。然后, 考虑合并资源 (r i) 的每个任务 (v i, j) 和其它资源的任务。合并任务 (v i, j) 的资源导致最小时间增加, 且插入/合并 vi, j到资源 (第 9 行) 。其中, FindMinMISlot () 函数用于确定时间增加的程度。算法 2:合并任务合并特定任务后, 更新调度和时间延迟限制 (第 10 行和第 11 行) 。如果合并任务产生的延迟大于任何其后调度任务或后继任务的 LST (即延迟传播) , 则更新调度 (第 10 行) 可能处理大量任务。超过 LST 的延迟会导致时间的
20、增加。特别地, 识别由合并影响的任务更新任务调度数据, 如此识别过程在合并任务的后继任务循环发生。一旦特定资源中的所有任务完成合并且合并任务后资源已经不存在 (算法 2 第 13 行) , 就移除任务。2.3 资源合并由于资源可以看作是服务节点, 或者云计算术语的资源/虚拟实例14, 因此, 存在一个或更多处理单元。在这种意义上, 用于输入调度的一些资源可能没有完全使用, 一个或更多核没有分配给任何任务。算法 3 以一种最佳拟合方法合并这些资源来处理这个问题。合并资源帮助进一步改进资源效率, 这是因为该过程减少了用于最终输出调度的资源数量。根据使用核的数量升序排序资源 (算法 3 第 1 行)
21、 , 为了提高算法效率, 本文考虑改变资源的任务, 减少使用核的数量, 从而进一步大量使用资源 (算法 3 第 3 行) 。然后考虑合并少量使用资源集合 (R) 和大量使用资源集合 (R) 。一旦不能合并少量使用资源 (r) , 则中断资源合并过程 (算法 3 第 10 行) , 因为 R中没有处理其它少量使用的资源且这些资源拥有相同或更多的核。算法 3:合并资源3 性能评估与分析3.1 实验介绍本文评估 4 种不同调度算法, 它们分别是动态关键路径调度算法 DCS8、多核处理器的关键路径和任务复制调度算法 CPTD9、关键路径优先算法 CPF10和本文的 MERR 算法, 所比较的算法都是基
22、于关键路径的调度算法, 是目前比较流行的用于解决最小化时间的方法。为了运行无限数量资源, 本文稍微修改了比较的算法。所用的实验平台在 Intel 酷睿双核 i3 处理器, 2.29GHz 主频, 4.0GB RAM 的台式机上, 运用 matlab2011b 进行实验仿真, 实验所用工作流数据从如下网站上下载:https:/confluence.pegasus.isi.edu/display/pegasus/WorkflowGenerator。本文使用 4 种不同资源大小 (#核数:1, 2, 4 和 8) , 但是本文仅显示资源大小为 8 的实验结果, 因为不同资源大小实验结果存在相似性。工
23、作流应用为CyberShake、Epigenomics、LIGO 和 Montage, 如图 3 所示, 表 1 给出了具体信息, 节点间/资源带宽设为 1 Gbps, 每个工作流由 20 个不同特性的变体组成, Epigenomics 工作流痕迹包括额外 120 个随机工作。3.2 性能分析本文根据完成时间的增加量 (MI) 、使用资源减少量 (RUR) 、时间延迟限制 (d) 和最终有效减少量 (ER) 来评估实验结果, 见表 2, 表 2 的描述如下:对于每个应用, 第一行中两个数字分别表示原始调度 (ms) 的时间和合并 (ms) 后的时间, 第二行表示每个应用时间增加比 (即圆括号中
24、 MI 值) , 第三行是原始调度使用的资源数量 (|R|) 和合并调度使用的资源数量 (|R|) , 第四行是降低的使用资源量比 (即圆括号中 RUR) , 第五行表示延迟限制 (d) 。图 3 科学工作流 下载原图表 1 科学工作流介绍 下载原表 由表 2 所示, 提出的 MERR 的 MI 平均程度为 10.5%, 得到 54%的 RUR, 从而导致ER 为 43.7%左右。可以看出提出的 MERR 明显改进了 Montage 的资源利用率, 这主要是因为这种工作流的结构, 特定层或两层能并行运行许多任务, 从而导致过多使用资源。ER 值是根据它们的原始输出调度获取的, 且这些调度算法的
25、质量描述了不同算法之间的差异。为了进一步说明其有效性, 本文通过手动设置多种不同延迟时间限制的实验数据集进一步论证。结果如图 4图 7 所示。对于 CyberShake 科学工作流, 如图 4 所示, 通过手工设置延迟限制, 随着延迟的增加, MERR 完成时间较 CPTD、CPF 和 DCS 都略低, 在 600s-1000s, 且拥有较低的使用资源数量。这是因为 MERR 是一种后处理技术, 且独立于调度算法。CPTD 将任务图转化为相对应的产品加工树, 没有考虑在加工树中寻找关键路径时间消耗, 其它两种方法也类似。对于 Epigenomics 科学工作流, 根据时间增加比较, 如图 5
26、所示, 提出的 MERR的资源使用量明显高于其它 3 种算法的值。另外, 完成时间方面也至少提高了1000s。一般情况下, 较差调度质量会使资源被无效的使用, 导致许多时间隙空闲。这 4 种方法根据关键路径任务截止时间给其它任务分配子截止时间。然而, CPTD、CPF 和 DCS 的资源利用率比较低, 尤其是对于分布式资源。表 2 各算法的平均性能结果比较 下载原表 图 4 手工设置延迟限制的 CyberShake 的性能比较 下载原图图 5 手工设置延迟限制的 Epigenomics 的性能比较 下载原图图 6 手工设置延迟限制的 LIGO 的性能比较 下载原图图 7 手工设置延迟限制的 M
27、ontage 的性能比较 下载原图对于 LIGO 科学工作流, 从图 6 可以看出, CPTD、CPF、DCS 和提出的 MERR 的完成时间曲线基本重合, 这是由于 LIGO 工作流固有的性质所决定, 即对于 LIGO工作流, 调度的方法似乎并不是决定性因素。对于 Montage 科学工作流, 如图7 所示, 其性能提高更加明显。虽然最大 ER 值根据特定 MI 值获取, 但是没有MI 值也可以获取 ER 值 (如图 4图 7) , 即不需要 MI 的情况下, MERR 获取平均RUR 为 12%。从图 4图 7 可以看出, MI 一般小于 RUR, 即 RUR 的斜率, 特别是较小延迟限制
28、, 明显大于 MI 的斜率。这是由于通过 MERR 获取了较高 ER 值。3.3 负载问题除了 MERR 的性能, 本文也测量它的负载。在 Intel 酷睿双核 i3 处理器, 2.29GHz 主频, 4.0GB RAM 的台式机上, MERR 的实际运行时间几乎保持在毫秒水平 (6ms 到 58ms 之间) , 忽略工作流类型。其实, 负载依赖于合并的程度。这种负载等级论证了 MERR 改进资源使用率的能力, 科学工作流的执行时间常常是很多小时15。4 结束语本文提出了一种工作流调度优化算法, 即有效资源减少量最大化算法 MERR, 提出的算法能用于任何现存工作流调度, 这是由于该算法中存在
29、一种后处理技术。它由 3 个主要阶段组成, 首先寻找最小时间增加与最大化资源减少量之间的平衡点, 通过合并任务和资源提高资源利用率。通过 4 种实际科学工作流的实验结果论证了本文算法的有效性。通过允许较小时间增加能有效减少资源使用量, 提高资源利用率。未来研究的重点是支持资源性能分析和其它应用的工作流改进方法。参考文献1Zhang F, Malluhi QM, Elsayed T, et al.CloudFlow:A data-aware programming model for cloud workflow applications on modern HPC systemsJ.Futur
30、e Generation Computer Systems, 2014, 51 (4) :98-110. 2Ganga K, Karthik S.A fault tolerent approach in scientific workflow systems based on cloud computingC/International Conference on International Conference on Pattern Recognition, Informatics and Mobile Engineering, 2013:387-390. 3YUAN Zhengwu, LI
31、 Junqi.Cloud resource scheduling based on improved particle swarm optimization algorithmJ.Computer Engineering and Design, 2016, 37 (2) :401-404 (in Chinese) .袁正午, 李君琪.基于改进粒子群算法的云资源调度J.计算机工程与设计, 2016, 37 (2) :401-404. 4HAN Yingjie.Research on multi-core task scheduling based on the key path of integ
32、rated schedulingD.Harbin:Harbin University of Science and Technology, 2014 (in Chinese) .韩英杰.基于综合调度关键路径的多核任务调度研究D.哈尔滨:哈尔滨理工大学, 2014. 5CHEN Donglin, YAO Mengdi, LYU Qiuyun.Construction of scheduling system for cloud federation across multi-data centerJ.Computer Engineering and Design, 2015, 36 (2) :546-550 (in Chinese) .陈冬林, 姚梦迪, 吕秋云.云联盟环境下跨数据中心的资源调度系统构建J.计算机工程与设计, 2015, 36 (2) :546-550. 6Mao M, Humphrey M.Auto-scaling to minimize cost and meet application deadlines in cloud workflowsC/Conference on High Performance Computing, Networking, Storage and Analysis, 2011:1-12.