[发明专利]一种云计算中依赖任务的解耦并行调度方法有效
申请号: | 201110454194.9 | 申请日: | 2011-12-30 |
公开(公告)号: | CN102591712A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 王占杰 | 申请(专利权)人: | 大连理工大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;H04L29/08 |
代理公司: | 大连理工大学专利中心 21200 | 代理人: | 梅洪玉;李宝元 |
地址: | 116024*** | 国省代码: | 辽宁;21 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于云计算应用领域,涉及到云服务中任务依赖关系描述、解耦合和并行调度等方法。本发明提出了依赖任务关系,并构建了依赖任务的解耦并行调度方法。该方法首先以入度为零对任务依赖关系进行解耦来构建就绪任务的集合,动态描述某个时刻可并行调度的任务。然后根据实时资源评价,对就绪任务的集合进行分布式多目标调度,有效地提高调度并行性。在任务分配时还考虑任务执行和任务间通信开销(E/C),来决定是否用任务复制来代替其依赖数据传输,以减少通信开销。整个调度方法可以对就绪任务集合中多个任务进行动态并行调度,较好地兼顾实时性和并行性、通信开销和负载均衡等性能指标,通过动态调度策略有效地提高系统的整体性能。 | ||
搜索关键词: | 一种 计算 依赖 任务 并行 调度 方法 | ||
【主权项】:
一种云计算中依赖任务的解耦并行调度方法,其特征包括以下步骤:(1)任务依赖关系的描述:本发明提出包括计算量、依赖数据传输量和存储资源需求量的依赖任务关系,任务之间的依赖关系用一个五元组G=(T,E,W,A,D)来表示,其中包含了任务之间的关系及对系统存储资源的需求,本发明要求任一任务的存储资源需求量不可超过节点的物理最大可利用存储空间值;元素代表的含义如下:T为应用服务的n个任务组成的集合T={T1,T2,......,Tn};E是边的集合E=(eij|0<i,j≤n;i≠j);应用服务中的任务的依赖关系定义为:如果Tj必须在Ti执行完毕后才能运行,则从Ti到Tj就存在一条有向边eij,并且Ti是Tj的前驱任务,Tj是Ti的后继任务;W为任务的计算量集合,W={Wi|0<i≤n};A为任务的最低存储资源需求的集合A=(Ai|0<i≤n},Ai为Ti的最低存储需求Ai={Rmem,Rstor},其中Rmem为内存空间需求量,Rstor为存储空间需求量;D为任务之间的依赖数据传输量矩阵,dij表示前驱任务Ti与后继任务Tj之间的数据传输量;(2)解耦合方法:本发明中的解耦合方法的核心是入度值为零,即任务可被调度的必要条件是在依赖关系图中某节点的入度值为零;对任务依赖关系图根据图中节点入度值为零的条件来解耦合,并且建立一个就绪任务集合ReadyTaskSet={Ti|0<i≤n},来动态描述某个时刻可并行调度的任务;本发明的就绪集合定义为:某个时刻没有前驱任务或直接前驱任务都已经完成的任务组成的集体,即入度值为零;集合中的任务,其优先级是相同的,不分先后,任一成员只要所需的存储资源满足,即可被调度;初始时就绪任务集合中的元素都是入度值为0的任务,当集合中的某个任务执行完毕并把依赖数据传递给其后继任务后,就从就绪任务集合中删除该任务,并且隐藏(或逻辑删除)依赖关系图该任务节点和从该任务节点发出的所有有向边;然后从新 的可见的(即不含隐藏的边和任务节点)图中选择所有入度为0的任务加入就绪任务集合,直至全部任务调度完毕或任务依赖关系完全不可见;(3)并行调度方法:定义1C(m,i,n,j)表示两个耦合任务间的依赖数据通信开销,即分配到处理节点Pi的前驱任务Tm与分配到Pj的后继任务Tn之间的数据通信开销: C ( m , i , n , j ) = 0 ; i = j band ij * d mn ; i ≠ j 其中,bandij表示异构节点间的通信速率,dmn表示任务间依赖数据的传输量;定义2CT(m,i,j)表示要复制两个耦合任务中的前驱任务时,需要的任务传输开销,即把一个前驱任务Tm从处理节点Pi传输到Pj的通信开销: CT ( m , i , j ) = 0 ; i = j band ij * | T m | ; i ≠ j 其中,|Tm|表示任务Tm的程序规模大小;定义3任务Ti在处理节点Pj上的最早可能完成时间记为epft(Ti,Pj),计算公式为:epft(Ti,Pj)=epst(Ti,Pj)+w(Ti,Pj)epst(Ti,Pj)为任务Ti在Pj上的最早可能开始时间,w(Ti,Pj)为任务Ti在Pj上的执行时间,w(Ti,Pj)=Wi/FRj,即任务计算量/处理器的处理能力,处理器的处理能力FR用CPU主频与指令周期的乘积来计算,FR=FREQcpu*TIME;当系统中只有一个节点Pj的全部存储资源(RS)才能满足某个任务Ti的存储需求Ai,并且当时该节点上已有任务在执行,则任务Ti就必须等待,直到为Pj分配的所有其他任务执行完毕并释放资源后,任务Ti才能被调度执行;在任务Ti等待的过程中,可能出现Pj的剩余资源再次分配给其他需求资源量小的任务 的情况,即剩余资源不断地再分,这样Ti就会因为长时间得不到资源而引起“饿死”和死锁的现象;为了避免上述可能出现的现象,给出相应的策略对任务调度进行控制;Pj上已分配的所有任务中最晚执行完成的任务的结束时间LAFT是Ti的最早可能执行时间;对于执行节点Pj,采用下面的策略进行调度:在就绪任务集合ReadyTaskSet中只选择能在Ti的LAFT时刻之前执行完成的任务分配到Pj中,这样当到达LAFT时刻时,任务Ti就调度到Pj上执行,而不会被“饿死”;对于系统中除了Pj以外的其他节点,即{P1,P2,...Pj‑1,Pj+1,...Pp},仍然按照上面定义1、定义2和定义3的评价定义进行调度;(4)通信开销的评价及控制方法:调度任务时要在系统中选择使其具有最早可能完成时间的节点,即任务Ti的执行节点PTi={Pj|min{epft(Ti,Pj)}};在调度决策时为了减少不必要的数据传输,对任务执行开销和任务间通信开销(E/C)进行了综合衡量;设依赖任务Tu和Tk间依赖数据的传输时间为C(u,i,k,j),传输前驱任务的时间为CT(u,i,j),前驱任务在新节点上执行的时间为w(Tu,Pj),CT(u,i,j)与w(Tu,Pj)的和称为任务复制开销,即Ccopy(u,i,j)=CT(u,i,j)+w(Tu,Pj);当C(u,i,k,j)>Ccopy(u,i,j)时,则复制前驱任务Tu到Pj节点上再执行一次,形成本地数据为其后继任务Tk服务,以减少任务间的通信开销;若某个任务有多个前驱,则选择传输数据与任务复制开销差距最大的任务,即Copytask={Tu|max{C(u,i,k,j)‑Ccopy(u,i,j)}},Pi≠Pj进行任务复制。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201110454194.9/,转载请声明来源钻瓜专利网。
- 上一篇:一种分布式文本拷贝检测系统
- 下一篇:变电运行操作票智能化诊断系统