一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种用于分布式工作流系统的任务分组调度方法

2022-04-25 04:37:28 来源:中国专利 TAG:


1.本发明涉及工作流管理领域,涉及一种用于分布式工作流系统的任务分组调度方法,以实现按时执行工作流任务以及优化资源利用率。


背景技术:

2.在当今网络系统上执行的许多大规模科学应用程序都表示为复杂的电子科学工作流,工作流是由一组依靠数据依赖项链接的有序任务组成。工作流任务调度作为工作流管理领域一项技术,主要是在一个复杂的分布式工作流系统中协调多个运行资源以确保工作流任务正确执行的基础上对系统性能进行优化。调度的目的是将工作流中的任务映射到最合适的运行资源,以便按时执行工作流任务并优化资源利用率。
3.此外,现代系统要求调度是动态和实时执行的,同时还需要考虑多任务同时执行以及发生大量数据交换的情况,这对工作流任务调度技术提出了挑战。大量研究针对不同的优化目标提出了许多工作流任务调度方法。然而,其中大多数方法是静态的,只在给定运行资源当前状态的情况下生成良好的调度方法,并没有考虑运行资源的可用性变化。同时大多数方法只针对较为简单的工作流和变化较少的运行环境进行分析。因此,针对复杂的工作流以及多变的运行环境进行任务调度方法的研究是重要趋势。


技术实现要素:

4.本发明的目的是为了克服分布式工作流系统中任务调度方法存在的:对于较为复杂的工作流预处理效果不佳、对于多变的运行环境适应性不足导致调度效果下降等问题,提出一种用于分布式工作流系统的任务分组调度方法
5.本发明步骤如下:
6.步骤1:对于表示工作流的有向无环图进行分析,找出图中关键任务节点。
7.步骤2:确定关键任务组,并从关键任务节点出发,对工作流中的其它任务按照数据依赖进行分组,并计算不同任务组的总工作量。
8.步骤3:检查运行环境变化状况,对于可用的运行资源,根据任务组总工作量、运行资源运算能力和网络传输速度预估数据传输时间和任务组处理时间,根据计算结果分配任务组。
9.步骤4:对于运行资源的执行偏差,采用一种负载均衡策略。
10.本发明具有的有益效果是:
11.1、本发明在工作流的分析阶段,从定位特殊的关键任务节点出发将任务节点划分为一个个任务组,与常见的分析算法相比,对于任务的划分更加细致,同时在工作流更为复杂、具有更多的分支、聚合结构时仍然可以获得有效的预处理结果。
12.2、任务按组进行调度有效减少了组内任务之间的数据交换时间,同时保留了任务执行的并行性。对于运行资源当前运行状况以及总体运行环境变化的监控保证了工作流任务调度的动态性和适应性。对于任务组完成时间的预估在尽量不延缓工作流最早完成时间
的基础上,确保了并行任务组间完成时间相接近。
13.3、在运行资源出现高负载或者空闲的状况时采用基于任务复制的负载均衡策略,在对任务组执行时间影响尽可能小的情况下保证了分布式系统整体的运行资源合理分配。
附图说明
14.图1为表示工作流的有向无环图。
15.图2为分析后的工作流图。
16.图3为任务组映射运行资源图。
具体实施方式
17.下面结合附图,对本发明的具体实施方案作进一步详细描述。
18.本发明包括以下步骤:
19.步骤1:对表示工作流的有向无环图进行分析。
20.如图1所示,工作流是由一组依靠数据依赖项链接的有序任务组成的,常常将其表示为这样的有向无环图。一般工作流图中都会定义一个起点和一个终点,它们不代表具体的工作流任务。工作流任务上通常具有输入、输出、工作任务等一些附着信息。对于工作流的分析从起点出发,首先赋予每个任务节点一个累计工作量属性,将起点的累计工作量赋值为0。对于一个任务节点(累计工作量为t0),将其后继任务节点(任务量为ts1,累计工作量为t1,t1初始为0)的累计工作量属性赋值为t0 ts1和t1中较大的一个。若一个任务节点有多个后继节点或者前驱节点,则将该节点标记为关键任务节点,终点也为关键任务节点。
21.步骤2:确定关键任务组,并对工作流中的其他任务进行分组。
22.如图2所示,经过上一步的处理,工作流图中标记出了关键任务节点以及每个任务节点的累计工作量。从终点开始向前遍历,其中存在一条任务节点路径,路径中除起点外每个任务节点的累计工作量都等于其路径前驱任务节点的累计工作量与当前节点任务量之和,则称这条路径为关键路径,关键路径上的任务节点分为一组,称其为关键任务组。其他任务的分组从工作流终点开始,对于每个关键任务节点,它的每个前驱节点都会对应一条它到前面关键任务节点或者起点的路径,将这样的路径中的一部分(不包括当前关键任务节点和前面的关键任务节点)划分为一组,若欲生成的分组为关键任务组的一个子集,则不会生成这个分组。在遍历的过程中,对于每个欲分组节点的任务量进行累加得出每个分组的总工作量,同时记录从关键路径上的关键任务节点到每个任务组第一个任务节点的总工作量,称之为分支总工作量gb。
23.步骤3:检查运行环境状况,并分配任务组。
24.如图3所示,每个运行资源都有其运行状态信息,包括运行资源的运算能力、运行资源正在处理的任务进度、运行资源待处理任务列队以及由这些信息可估算出的运行资源完成所有任务时间。对于运行环境的检查包括与运行资源进行通信更新运行资源信息以及检查有无新增的运行资源连接请求,若存在则将其纳入运行资源列表,同时对其进行运行测试,包括运算能力、数据传输速度等估算。
25.确认运行资源列表之后,首先对关键任务组进行分配。若运行资源运算能力为nc、待处理任务总工作量为nt、任务组总工作量为gt,则该任务组在该运行资源上执行预计的
完成时间为(nt gt)/nc。对于所有运行资源,分别计算关键任务组分配在其上运行的预计完成时间,选择预计完成时间最早的运行资源,以确保工作流整体尽可能早的完成执行。根据运行资源运算能力更新关键路径上关键任务节点的预计完成时间。其余任务组,根据记录的分支总工作量、任务组总工作量可计算出当前任务组所占总分支工作量的比重,并计算出在运行资源上的预计完成时间,可以根据关键任务组的预计完成时间选择耗时相近的运行资源,在不影响工作流整体完成时间的同时合理调节不同运行资源之间的运算能力差距、任务执行状况差距。
26.步骤4:对于运行资源执行偏差,采用一种负载均衡策略。
27.虽然对于任务组的分配基于估算的完成时间可以较好的协调各个运行资源之间的运行,合理利用每一个运行资源,但是不能排除运行资源执行时间因特殊状况产生较大偏差或是需要临时加入、减少运行资源的可能性。对于此种状况产生的运行资源高负载或是空闲问题,需要对其检查判定并进行处理。
28.在检查运行资源的待处理任务以及当前执行任务进度时,基于之前的调度方法,各个运行资源间待处理任务完成时间应当处在同一水平内。若某个运行资源待处理任务完成时间与环境基准待处理任务完成时间的比值为α,若α处在一个预设的范围内,则认为其处在正常水平,若大于范围右边界则认为其负载高,小于范围左边界则认为其空闲。
29.对于负载高的运行资源,则将其部分预计完成时间靠后的待执行任务移交给α相对较小的运行资源;对于空闲的资源,则检查全局的工作流记录表中预计完成时间较为靠前的工作流,对其任务组完成情况进行检查,选择还未处理的任务组进行任务移交。所述任务移交采用任务复制的方式,原执行资源仍然能够执行该任务(任务的执行状态具有全局记录,不会发生重复任务重复运行),这种方式在确保每个运行资源都能有效利用的前提下保证了任务组最终执行时间不会产生太大偏差。关于任务复制,为了防止任务副本过多影响完成时间的估算,可预设值限定其副本数量,同时某个运行资源若检查到任务组已处在执行状态则将其从待办任务队列移除,然后对运行资源运行状态进行更新。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献