[发明专利]一种基于工作流吞吐量最大化的工作流调度方法有效
申请号: | 201410101274.X | 申请日: | 2014-03-18 |
公开(公告)号: | CN103838627B | 公开(公告)日: | 2017-05-17 |
发明(设计)人: | 谢军奇;徐秀杰;田国忠;肖创柏 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F9/50 |
代理公司: | 北京思海天达知识产权代理有限公司11203 | 代理人: | 张慧 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 工作流 吞吐量 最大化 调度 方法 | ||
1.一种基于工作流吞吐量最大化的工作流调度方法,其特征在于,考虑多个工作流在异构分布式计算资源上调度,通过执行期限约束的工作流吞吐量最大化设计,充分利用计算资源,从而提高工作流的调度效率;所述方法包括以下步骤:
步骤1,用户提交具有执行期限约束的工作流;
多个用户向工作流调度系统提交具有执行期限约束的的工作流,要求该工作流必须在规定的时间内完成;如果工作流不能在规定时间内完成,反馈信息给用户,用户根据反馈信息选择下一步活动;如果工作流能够在规定的时间内完成,则将工作流的各个任务映射到异构分布式计算资源上调度执行;
步骤2,将工作流转换为有向无环任务模型图DAG;
步骤2.1,对每一个用户提交的工作流进行预处理;
(1)用G=(V,E)表示DAG任务模型图;
DAG任务模型图中各个参数的含义如下:
G=(V,E)中的V和E:V表示v个任务结点的集合,每个结点代表工作流的一个任务,称为任务结点;E表示e条有向边的集合,每条边代表任务结点之间的先后顺序和数据传递依赖关系;DAG任务模型图由v个任务结点和e条有向边构成;
有向边:DAG任务模型图的任意一条有向边记为(ni,nj),ni是有向边的尾任务结点,nj是有向边的头任务结点,i和j分别表示任务结点ni和nj在DAG任务模型图中的编号,且满足i<j;有向边(ni,nj)表示任务结点ni和nj之间的先后顺序和数据传递依赖关系,即任务结点nj必须在任务结点ni的输出数据完整送达以后才能开始执行;
有向边的权重值:任务结点之间的数据传递的时间用有向边的权重值表示;当同一个DAG任务模型图的不同任务结点ni和nj在同一个计算资源上执行时,任务结点ni的输出数据不经过网络传输就能被任务结点nj接收,有向边(ni,nj)的权重值为0;当ni和nj在不同的计算资源上执行时,由于不同的计算资源之间是通过网络进行连接,因此有向边(ni,nj)的权重值不为0;
出入口结点:在DAG任务模型图中,没有父结点的结点称为DAG入口结点,没有子结点的结点称为DAG出口结点,每个DAG任务模型图有且仅有一个入口结点和一个出口结点;
(2)制作表示某个任务结点在某计算资源上的计算时间二维表W;
对每个任务进行分类,对每一类固定类型的任务结点,根据以往的经验值可以得出该任务结点在某计算资源上需要多少计算时间,从而得到一个n×m的二维表W,二维表的值表示某个任务结点在某计算资源上的计算时间,n为该DAG任务模型图中任务结点的数量,m为用于执行工作流计算的异构分布式计算资源的数量;
所述异构分布式计算资源对同一个任务结点的计算时间是不相同的,因此,对同一个任务结点,在不同的计算资源上有一个不同的计算时间;
步骤2.2,计算DAG任务模型图中每个任务结点的向上rank值,公式如下:
式中,为任务ni在m个计算资源上的平均计算时间,wi,k表示任务结点ni在计算资源Mk上的计算时间;succ(ni)为任务结点ni的子任务结点集合;ci,j=Lm+datai,j/Bm,n为任务结点ni和nj在分配的两个计算资源Mm和Mn上的数据传输时间,Lm表示计算资源Mm的数据传输启动时间,datai,j表示从任务结点ni到任务结点nj传输的数据量,任意两个结点之间的数据传递量可以表示为矩阵Datav×v,Bm,n表示从计算资源Mm到计算资源Mn的数据传输速率,Lm和Bm,n都是异构分布式计算环境的已知参数,如果ni和nj被分配在了同一个计算资源上,即m=n,则忽略计算资源内部的数据传递时间,即ci,j=0;是任务结点ni和nj之间的数据传递的平均时间,表示计算资源数据传输启动时间的均值,为数据在计算资源间的平均传输速率,和都是异构分布式计算环境的已知参数;
出口任务结点nexit的向上rank值因为任务结点nexit没有子结点,表示出口结点nexit的任务在m个计算资源上的平均计算时间,当ni=nexit时,ranku(ni)=ranku(nexit);
在计算DAG任务模型图的每一个任务结点的向上rank值时,将作为计算的初始值,从出口任务结点nexit的向上rank值开始向前推导,即可计算出余下任务结点的向上rank值;
rank值可用作任务结点进行调度的优先级,任务结点的向上rank值越大,优先级越高;优先选择优先级高的任务结点进行调度;
步骤3,进行DAG任务结点调度;
步骤3.1,输入一组步骤2得到的待调度的DAG,每一个待调度有向无环任务模型图Gi具有相应的执行期限约束将该Gi的任务结点按照由步骤2计算得到的向上rank值的大小排序形成一个待调度的任务队列;
步骤3.2,对所有DAG任务结点进行调度;
步骤4,输出工作流吞吐量最大化调度方案,并将其返回给用户;
步骤5,按照步骤4输出的工作流调度方案,将用户提交的工作流映射到具体的计算资源上执行,完成工作流调度。
2.根据权利要求1所述的一种基于工作流吞吐量最大化的工作流调度方法,其特征在于,所述步骤3.2对所有DAG任务结点进行调度的方法还包括以下步骤:
(1)如果所有的DAG调度完毕,则结束本次调度;否则,转步骤(2);
(2)计算Gi的相对严格程度值r,公式如下:
式中,un(Gi)表示在调度过程的某个时间点上,Gi未被调度的任务结点的集合;下标un(Gi)-SHEFT表示使用HEFT算法调度un(Gi)的任务结点;表示un(Gi)的执行时间,和分别表示un(Gi)中在计算资源上最早的开始和结束时间;表示un(Gi)的可用时间;
(3)如果所有的r值都满足0<r<1,则选择r值最大的DAG任务模型图进行调度,具体过程是在该DAG中选择一个向上rank值最高的任务结点,即待调度队列队首的任务结点,进行调度,将任务结点压入预先设置的任务结点栈内中,并从该DAG待调度任务结点队列中删除该任务结点,然后转步骤(1);否则,转步骤(4);
(4)如果存在一个DAG任务模型图的r值等于1,且其它DAG任务模型图的r值满足0<r<1,选择r=1且执行时间最长的DAG任务模型图进行调度,具体过程是将该r值等于1的DAG任务模型图的所有剩余的任务结点都进行调度,将它们压入预先设置的任务结点栈内,并在未调度完成的DAG任务模型图集合中删除该DAG任务模型图,然后转步骤(1);否则,转步骤(5);
(5)如果存在DAG任务模型图的r值满足r>1或者r<0的情况,则表示在上一次任务调度之后,出现了某些DAG任务模型图的任务结点不能在执行期限内完成的情况,即“过饱和”情况,如果这种情况不是连续第二次出现,则可以采用“堆栈”与“调度回溯”相结合的机制来处理,具体过程是取消上一次调度的压入任务栈的所有任务结点,将其返回到所属的DAG任务模型图待调度队列,如果该DAG任务模型图已经从待调度DAG集合中删除,则将该DAG再次加入到待调度的DAG集合,然后从r>1或者r<0的DAG任务模型图中选择一个执行时间最长的DAG任务模型图进行调度,具体过程是将该DAG任务模型图的所有剩余任务结点都进行调度并压入任务结点栈内,并且在未调度完成的DAG集合中删除该DAG任务模型图,然后转步骤(1);否则,转步骤(6);
(6)如果存在DAG的r值满足r>1或者r<0的情况且这种情况是连续第二次出现,则删除r值满足r>1或者r<0的DAG任务模型图中任务调度完成比例最低的一个DAG,并从任务结点栈内弹出该被删除DAG任务模型图的所有任务结点,然后转步骤(1)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410101274.X/1.html,转载请声明来源钻瓜专利网。