近年来随着科学研究越来越依赖于海量数据集的分析和分布式资源的使用, 科学工作流[1–3]得到了巨大的发展. 通过管理分析的复杂性、在分布式资源上执行必要的计算、收集分析结果的信息以及记录和再现科学分析等手段, 科学工作流管理系统提供了一个辅助科学发现过程的环境, 加速了科学进步的步伐.
商业云因其高弹性、专用软硬件基础设施和按需付费的成本模型等特性[4–6], 已经成为进行大规模科学分析的支撑平台. 通过各种云服务, 可以促进工作流的执行. 其执行过程中, 需要考虑一个或多个QoS约束, 常见的为时间-成本优化. 工作流调度的时间-成本优化是一个难题, 国内外学者已从不同方面展开了研究并取得了丰富的成果[7–15]. 一些综述文章[16–18]对其进行了较完整的阐述, 这里就不再一一回顾. 为了简洁起见, 仅描述本文解决的问题.
现有的科学工作流调度算法多基于有向无环图(Directed Acyclic Graph, DAG)建模, 仅对工作流结构中的顺序和“与”结构适用, 并不支持“或”结构. 这限制了算法的使用范围和性能. 文献[12]提出, 可以将“或”结构转换成“与”结构进行处理. 这是不合理的, 违背了工作流语义. 对于“或”结构中的支路每个流程实例只会选择其中一条, 而“与”结构的所有支路都是同时执行的, 两者是不可以直接转换的. 正因为未考虑“或”结构, 现有的算法存在以下不足:
(1) 同一层活动分配相同的截止期限不合理
逆向分层调度算法[12](Deadline Bottom Level, DBL)以及基于此而改进的算法中, 认为同一层的所有活动具有相同的截止期限. 图1为一个简单的基于逆向分层的工作流实例, 图中活动节点的上方数字表示选择最快执行服务所需要消耗的时间. 活动1完成后, 根据输出条件选择执行支路{2, 3, 4}或者支路{5}. 依据DBL算法求得每个活动的时间区间如表1. 活动5的时间区间为[4, 27], 所以可选服务的耗时范围为[7, 23], 假定其执行最慢的服务耗时23个单位时间. 基于满足截止期限的前提下选择最低成本的原则, 工作流在实例执行过程中若选择支路{5}将会调用执行时间最长的服务, 因此将消耗掉额外16个单位的时间. 由此带来两个问题:
① 活动5本可以在时间点11时刻即可结束, 则活动6将提前16个单位时间开始, 在不改变后续活动既定调度方案的情况下, 将使得整个工作流提前16个单位时间结束;
② 将额外消耗的16个单位时间分配给后续未开始的活动, 从而获得更优的执行方案.
当这两种情况下带来的效益远远大于单个活动5优化带来的效益时, DBL对截止期限的分配存在弊端.
(2) 松弛时间优化未同时考虑活动控制结构和服务效益
当给定的工作流截止期限大于算法计算得出的截止期限时, 工作流存在松弛时间. 为了提高效益, 需要将这部分时间资源合理地分配给能够带来费用优化的活动. 表2为图1工作流实例中部分活动对应的候选服务列表.
假设现有2个单位的工作流松弛时间, 由于只有活动{5,6}有多个候选的服务, 因此只需要对这两个活动进行优化. 根据文献[13]提出的宽裕时间有效分配算法(Slack-time Effective Allocation, SEA), 活动5,6的邻服务级差性价比分别为1和0.5, 因此将松弛时间全部分配给活动5. 基于“或”结构的特性, 若工作流实际执行过程中选择活动5所在的支路是小概率事件, 此时分配的松弛时间将不会带来费用优化, 从而导致时间资源的浪费.
(3) 其它问题
文献12中定理2认为
为了解决以上的不足, 本文提出一种新的调度算法, 充分考虑工作流控制结构中的顺序、“与”和“或”结构, 并分别从静态调度和动态监控两个阶段对截止期限的分配进行讨论.
1 模型和相关概念 1.1 工作流模型定义1. 工作流的DAG模型是一个二元组
为了讨论方便, 下面给出一些变量的定义及其数学表达式:
(1)
(2)
(3)
(4)
(5)
(6)
(7)
为了排除网络等其它客观环境的影响, 假设云服务供应商能够提供无限数量的实例访问, 且不同存储服务之间的带宽基本相同.
1.2 关键活动优先级为了叙述方便, 下面给出一些符号的语义:
(1)
(2)
(3)
定义2. 关键活动优先级(Critical Activity Priority, CAP), 反应活动时间-成本优化对整个流程性能提升的影响程度. 优先级越高, 表示活动的优化带来的影响越大, 反之越小.
关键活动按照其所处控制结构的不同, 相应的优先级不同. 下面分别对3种拓扑结构进行阐述.
(1) “与”支路
“与”控制结构中的每条支路需要在同步活动处等待, 当关键活动获得额外的时间资源后, 将延长所在支路的执行时间, 进而影响整个控制块中每条支路的运行. 因此, “与”支路上单个关键活动的优化将会提升整个“与”控制结构的性能.
(2) 顺序支路
顺序支路上的关键活动, 对其分配额外的时间资源只会优化该活动本身, 并不会波及其它活动.
(3) “或”支路
由于“或”结构在实例运行之前无法确定选择哪条支路, 因此, 对“或”支路上的关键活动分配额外的时间资源有可能无法带来效益.
综上所述, 可以得到关键活动的优先级为:
本文按照如下步骤解决调度问题:
步骤1 寻找工作流的最小关键路径.
步骤2 查询可用时隙, 根据每个任务的局部最优解生成最优调度计划.
步骤3 实时监控流程实例的运行状态.
接下来详细陈述步骤2–3, 关键路径的寻找通过文献[19]提出的方法实现.
2.1 松弛时间分配策略定义3. 服务效益比(Service Benefit Ratio, SBR), 衡量服务替换所带来效益的大小, 其计算公式为:
$ SBR{(i)_{m,n}} = \frac{{\left| {C{{(i)}_m} - C{{(i)}_n}} \right|}}{{\left| {T{{(i)}_m} - T{{(i)}_n}} \right|}} = \frac{{\Delta C{{(i)}_{m,n}}}}{{\Delta T{{(i)}_{m,n}}}}\;,\;L(i)>1 $ | (1) |
式(1)中的
对优先级相同的活动集合
算法1. STABSBR算法
输入:
输出:
Begin
1 计算
2 while(
3 {
4 从
5 if (
6 {
7
8 将活动
9 }
10 }
End
该算法能够将全局额外的时间资源合理的在活动之间进行分配, 从而产生最优的调度方案. 假设现有顺序串联的两个活动1和2, 其候选服务集分别为
静态调度需要考虑活动的拓扑结构, 由关键活动优先级可知对于顺序和“或”结构松弛时间的再分配只影响单个活动, 而“与”结构会影响到整个控制块. 因此, 需要对“与”结构进行单独说明.
以图2所示的“与”控制结构为例,
考虑工作流控制结构的静态调度算法(Static Scheduling Considering Workflow Control Structure, SSCWCS)如下:
算法2. SSCWCS算法
输入:
输出:
Begin
1 为每个活动选择执行最快的服务, 以此求得工作流的关键路径
2 if (
3 {
4 提醒管理者需要修改
5 }
6 else if(
7 {
8 计算工作流的松弛时间
9 将关键活动按照拓扑结构分类, 分别求得
10
11 {
12 将
13 }
14 if (
15 {
16 计算“与”关键支路新的截止期限
17
18 {
19 if (
20 {
21
22 }
23 }
24 }
25 }
End
2.3 动态监控由于“或”结构在流程定义阶段无法确定实际运行过程中所选择的支路, 因此静态调度并未对非关键路径支路和关键路径支路设置相同的截止期限. 这就需要在执行过程中, 为“或”结构设置监测点, 根据选择的支路动态的为后续未执行的活动重新生成调度方案.
通过为每个“或”分支活动设置监测点, 进而监听该活动的结束事件, 并根据输出条件判断后续所选择的支路. 若选择的是关键路径支路, 则不更改现有的调度方案, 否则对其进行优化. “或”结构动态监控优化算法(OR Dynamic Monitoring, ORDM)如下.
算法3. ORDM算法
输入:
输出:
Begin
1 找出所有的“或”控制结构, 并设置“或”分支活动
2 监听
3 if (
4 {
5 按照静态调度方案对活动进行调度;
6 }
7 else
8 {
9 根据当前的调度方案求得未完成活动的关键路径
10
11 分别将
12 }
End
算法3动态监控“或”结构的执行情况, 规避了为所有“或”分支分配相同截止期限而造成效益无法最大化的情况的出现. 本文提出的动态监控思路同样适合于流程执行过程中出现的简单异常, 如服务的延迟、异常导致服务不可用. 此时, 可以把异常节点至结束活动的拓扑当作是新的工作流, 并按照算法3中步骤8–12重新调度. 其它复杂的异常处理将是下一步研究的对象.
3 实例本章对前文提出的调度方法进行实例应用. 图3是虚拟科学分析过程的DAG模型, 表3是模型中每个活动对应的候选服务集合, 时间单位为分钟(min), 费用单位为人民币(¥). 设定工作流的开始时间为0, 截止期限为110.
3.1 关键路径时间下界
每个活动选择耗时最短的服务的条件下, 按照如下步骤求得关键路径执行时间的下界.
(1) “与”结构
(2) “或”结构
顺序活动处于关键路径上, 因此整个工作流的关键路径由活动1,2,3,4,6,7,9,10,11组成, 其执行时间下界为
工作流的松弛时间
(1) “与”关键活动
活动3只有一个候选服务, 已经是最优方案; 活动4的
(2) 顺序关键活动
同步活动6,7只有单个候选服务, 所以
经过上述的步骤, 工作流剩余1个单位的松弛时间, 无法满足其它活动更换服务所需的最小时间变量, 且又因为调整过后的“与”控制结构中活动5没有可替换的服务, 调优结束. 工作流优化过后的调度方案如表4所示.
3.3 动态监控
活动7处设置监测点,
为了更好地解决云环境下科学工作流调度过程中的时间-成本优化问题, 在DAG模型中增加了对工作流“或”控制结构的支持, 并提出了关键活动优先级的概念, 此举弥补了现有基于DAG的调度算法无法支持“或”结构的不足; 同时, 给出了活动的松弛时间分配策略, 并基于此提出了云环境下科学工作流的调度算法, 该方法由静态调度和动态监控组成. 最后通过虚拟的科学分析过程对上述的算法进行了说明和应用.
[1] |
张卫民, 刘灿灿, 骆志刚. 科学工作流技术研究综述. 国防科技大学学报, 2011, 33(3): 56-65. DOI:10.3969/j.issn.1001-2486.2011.03.013 |
[2] |
Barker A, Van Hemert J. Scientific workflow: A survey and research directions. Proceedings of the 7th International Conference on Parallel Processing and Applied Mathematics. Gdansk, Poland. 2007. 746-753.
|
[3] |
Gil Y, Deelman E, Ellisman M, et al. Examining the challenges of scientific workflows. Computer, 2007, 40(12): 24-32. DOI:10.1109/MC.2007.421 |
[4] |
Arabnejad V, Bubendorfer K, Ng B, et al. A deadline constrained critical path heuristic for cost-effectively scheduling workflows. Proceedings of the IEEE/ACM 8th International Conference on Utility and Cloud Computing. Limassol, Cyprus. 2015. 242–250.
|
[5] |
Arabnejad V, Bubendorfer K. Cost effective and deadline constrained scientific workflow scheduling for commercial clouds. Proceedings of the IEEE 14th International Symposium on Network Computing and Applications. Cambridge, MA, USA. 2016. 106-113.
|
[6] |
Arabnejad V, Bubendorfer K, Ng B. Deadline distribution strategies for scientific workflow scheduling in commercial clouds. Proceedings of the IEEE/ACM 9th International Conference on Utility and Cloud Computing. Shanghai, China. 2017. 70-78.
|
[7] |
Yu J, Buyya R, Tham CK. Cost-based scheduling of scientific workflow applications on utility grids. Proceedings of 1st International Conference on E-Science and Grid Computing. Melbourne, Australia. 2005. 140-147.
|
[8] |
Yuan YC, Li XP, Wang Q, et al. Deadline division-based heuristic for cost optimization in workflow scheduling. Information Sciences, 2009, 179(15): 2562-2575. DOI:10.1016/j.ins.2009.01.035 |
[9] |
Abrishami S, Naghibzadeh M, Epema DHJ. Deadline-constrained workflow scheduling algorithms for infrastructure as a service clouds. Future Generation Computer Systems, 2013, 29(1): 158-169. DOI:10.1016/j.future.2012.05.004 |
[10] |
Topcuoglu H, Hariri S, Wu MY. Performance-effective and low-complexity task scheduling for heterogeneous computing. IEEE Transactions on Parallel and Distributed Systems, 2002, 13(3): 260-274. DOI:10.1109/71.993206 |
[11] |
Yu J, Buyya R. Scheduling scientific workflow applications with deadline and budget constraints using genetic algorithms. Scientific Programming, 2006, 14(3-4): 217-230. DOI:10.1155/2006/271608 |
[12] |
苑迎春, 李小平, 王茜, 等. 基于逆向分层的网格工作流调度算法. 计算机学报, 2008, 31(2): 282-290. DOI:10.3321/j.issn:0254-4164.2008.02.012 |
[13] |
郑美光, 胡志刚, 杨柳, 等. 使用宽裕时间有效分配优化工作流逆向分层算法. 小型微型计算机系统, 2016, 37(8): 1639-1644. DOI:10.3969/j.issn.1000-1220.2016.08.002 |
[14] |
龙浩, 梁毅, 邸瑞华. 基于相对效费比的网格工作流调度算法. 计算机集成制造系统, 2010, 16(3): 589-597. |
[15] |
彭佳, 谭文安, 孙勇, 等. QoS约束下的分层工作流调度算法. 小型微型计算机系统, 2015, 36(7): 1444-1448. DOI:10.3969/j.issn.1000-1220.2015.07.007 |
[16] |
Xavier S, Lovesum SPJ. A survey of various workflow scheduling algorithms in cloud environment. International Journal of Scientific and Research Publication, 2013, 3(2): 1-3. |
[17] |
Wu FH, Wu QB, Tan YS. Workflow scheduling in cloud: A survey. The Journal of Supercomputing, 2015, 71(9): 3373-3418. DOI:10.1007/s11227-015-1438-4 |
[18] |
Arya LK, Verma A. Workflow scheduling algorithms in cloud environment - A survey. Proceedings of 2014 Recent Advances in Engineering and Computational Sciences. Chandigarh, India. 2014. 1-4.
|
[19] |
李慧芳, 冯复剑. 时间约束工作流的截止期限管理及其动态监控. 北京理工大学学报, 2011, 31(8): 937-943. |