基于动态关键任务的多处理器任务分配算法
第30卷第3期计算
机
学报
v01.30No.3
2007年3月
CHINESEJOURNAL0FCOMPUTERS
Mar.2007
基于动态关键任务的多处理器任务分配算法
兰
舟孙世新
(电子科技大学计算机科学与工程学院成都610054)
摘要多处理器调度问题是影响系统性能的关键问题,基于任务复制的调度算法是解决多处理器调度问题较为
有效的方法.文中分析了几个典型的基于任务复制算法,提出了基于动态关键任务(DCT)的多处理器任务分配算法.DCT算法以克服贪心算法不足为要点,调度过程中动态计算任务时间参数,准确确定处理器的关键任务,以关键任务为核心优化调度,逐步改善调度结果,最终取得最优的调度结果.分析和实验证明,DCT算法优于现有其它同类算法.
关键词调度长度;任务复制;多处理器系统;任务分配;并行计算;同构系统中图法分类号TP311
An
Algorithm
ofA¨ocatingTasksto
Multiprocessors
Based
on
DynamicCriticalTask
LANZhou
SUNShi—Xin
(Co比gPo,com户“£PrSc{P九cP口咒d眈gi舛eeri雄g,协f御州£yo,EZ8甜ron把SciP竹c曰口ndnc^加ZogyD,劬i撇,C^删gdM610054)
Abst腿ct
Oneofmainobstaclesinachievinghighperformanceistheschedulingformultiproces—
sors.
Schedulingalgorithmbasedon
taskdl:lplicationis
a
betterway
to
solvethisproblem.
The
authorsdiscussseveralrecentlyreportedduplication—basedschedulingalgorithmsandpropose
a
novelaIgorithm.
Theproposedalgorithm,
whichiscalIedthe
algorithm
ofanocatingtasksto
multiprocessorsbased
on
DynamicCriticalTask(DCT),isdifferentfromthepreviouslyproposed
algorithmsin
a
numberofways.Besides
a
directedacyclicgraph(【)AG),theganttgraphalsois
introducedintothescheduIingprocess.Based
on
theganttgraph七)CTaIgorithm
aset
oftimepa—
rametersis
put
forwardtoaccuratelydescribethe
taskpositions
andstates.
Afterdynamically
computingthetasktimeparameters,DCTalgorithmdeterminesthecriticaltasksof
a
processor
andthenoptimizesthisprocessorschedulelengththroughdupIicatingthecriticalfathertasksofthecriticaltasks
to
thisprocessor.
Oncetheschedulelengthis
shorter,亡)CTalgorithmdeter—minesthecriticaltasksagainforthenext
schedulingsuchthat
DCTalgorithm
can
tacklethe
drawbacksofthegreedyalgorithms(e.g.0SA,PPAandCPFDalgorithm).DCTalgorithmalso
employsseveralstrategies
to
reducethenumberofprocessors.
Theanalyticalandexperimental
resultsshowDCTalgorithmhasadvantages
over
thepreViouslyproposedalgorithmsintermsof
theschedulelengthandthenumberofprocessors.
Keywords
schednlelength;taskduplication;multiprocessorsystem;taskallocation;
parallel
computing;homogeneoussystem
收稿日期:2005一04—30;修改稿收到日期:2006一03—20.兰
舟,男。1969年生,博士研究生,主要研究方向为网络计算技术与高性能并行计
算.pmail:izIanzhou@163.com.孙世新,男,1940年生,教授,博士生导师,主要研究领域为网络计算技术、并行/分布式计算及其应用、信息压缩技术、数值计算与组合算法等.
万方数据
3期
兰
舟等:基于动态关键任务的多处理器任务分配算法
455
引言
一个任务系统可以看成由多个具有偏序关系、可以并行或串行执行的子任务组成.多处理器调度的目标就是按照某种策略将子任务合理分配到各个处理器上并行有序地执行,使任务系统执行时间最短.调度算法可分为静态调度和动态调度两种.静态调度和动态调度相比,具有实现简单、开销小等特点.基本的静态调度算法分为基于随机搜索和基于启发法两类[1].基于随机搜索的算法包括基因算法阻引、退火算法Ⅲ、局部搜索技术嘲等.基于启发法的算法包括表调度法[1“]、聚族法[7_8]、任务复制法[9q2]等.任务复制法的基本思想是,在多个接受消息的处理器中执行发送消息任务的副本,将任务在处理器之间的通信改变为处理器内部通信.其特点是牺牲处理器本地处理时间(需要复制任务做冗余计算),而换取减少处理器之间的通信时间.当采用合理的复制策略时,任务复制算法能获得比其他算法较好的调度性能[8’1
3|.
典型的任务复制算法有TDS[9|,OSA[10],PPA[11],CPFD[”3等.TDS算法的主要思想是将友好父任务和子任务分配到同一处理器,使子任务具有较小的最早开始时间,以此缩短调度长度.在满足一定最优条件下,TDs算法能获得最优调度结果.OSA算法改进了TDS算法,放宽了TDS算法的最优条件,将多个父任务和子任务分配到同一处理器,最大可能地使子任务获得最小的最早开始时间,从而缩短调度长度.PPA算法改进了OSA算法,采用和OSA算法一样的调度策略;同时考虑了处理器数目优化,采用父任务合并策略,在不影响调度长度的前提下减少处理器数量.PPA算法的调度长度优于TDS算法,和OSA算法相当;所用处理器数目优于TDS和OSA算法.CPFD算法采用试探性策略,理器上,并计算相应的最早开始时间,最终将该任务分配到可以获得最小最早开始时间的处理器上.CPFD算法在调度当前任务时,递归地寻找其VIP
(VeryImportant
Parent)蚴任务,将VIP任务复制
到当前处理器上,使当前任务能获得最小的最早开TDS算法不允许多个父任务和子任务分配到同一处理器,使子任务难以获得较好的最早开始时
万方数据
间.0SA,PPA,CPFD算法将尽可能多的父任务和
子任务分配到同一处理器,尽管当前任务能获得最小的最早开始时间,却限制了其子孙或祖先任务的
调度,制约了调度长度优化.另外,TDS及CPFD算法未考虑处理器数目的优化,较多地占用了资源.0SA算法在一定限制条件下考虑了处理器数目优化.PPA算法采用父任务合并策略优化处理器数目,但只考虑了全部父任务合并,未考虑部分父任务合并的可能性,而且未考虑任务间的非线性合并.本文基于任务复制提出了DCT算法,改变了传统以DAG图调度为主的不足,将Gantt图引入到调度过程中,提出了相应时间参数,合理表示了任务在调度过程中的状态,依此准确确定关键任务,以关键任务为核心进行优化调度,并动态确定关键任务,克服了贪心算法的不足;DCT算法既考虑了任务间的线性合并也考虑了非线性合并,.增加了任务合并的可能性.实验结果表明,DCT算法在调度长度和处理器数目方面优于同类算法.
2调度算法模型
一个任务系统可以用一个四元组的有向无环图(DAG)表示为
G=(V,E,W,C)
其中,V一{n;h为有序任务,i=1,2,…,口,u为任务
数目);
E=k.』旧,』表示行i到咒』的边,,zt称为咒J的父任
务,,zi称为咒;的子任务);
W={硼。l训。表示竹;的计算开销);C={cl。』k,J表示,2;到,z』的通信开销);p卯d(极)={嘶Jq.f∈E);跚cf(nt)={,l川毋。f∈E);
如果咒。没有父任务,则绝为开始任务;如果啦没有子任务,则佗;为结束任务.
不失一般性,假定DAG图仅有一个开始任务和一个结束任务Ⅲ.本文用咒;表示开始任务,用他表示结束任务.
任务系统的子任务分配到处理器之后,其分配情况可以用一个7元组的Gantt图表示为
G口=(P,T,CL,EPST,EPFT,LAST,LAFT).
T一‰,k,表示分配到户;中的第J个任务);
将被调度任务分配到父任务所在处理器和一个空处始时间,以此缩短调度长度.
其中,P一{户。I夕;表示第i个处理器,i=1,2,…,m,优为处理器数目);
456
计算机学
eps£f,』2fO,
报
CL={cz。lc厶表示夕;中的有序任务队列);EPST={g户so州IP户站州表示‘州的最早可能开始时间b
EPFT={Pp以州lP夕^嘶表示‘叫的最早可能结束时间);
£i。』一扎,
{mxi。∈鬈∥则已舨^㈦∥h瓶一1},
【
其它
(7)
LAST一{肠对叫I如s‰表示‰的最迟允许开始
时间};
LAFT一{Zn,£¨l纪力嘶表示£¨的最迟允许结束时间).
c厶中第一个任务称为夕i的首任务,最后一个任
而可能结束的最早时间,由式(1)确定.
8p以谢是指£谢具备开始条件后立即开始执行p;的关键任务o¨是指p;中满足P户丘州一-<Pp盯¨(J≥2)的任务;除关键任务以外的任务称为非关键任务.
z口以州是指£州不影响子任务和后继任务最迟允许开始时间而最迟允许的结束时间,由式(8)确定.Zn丘¨一
Pp/£i.J,
£{,』。咒。
务称为户;的尾任务,£州称为。叫+。的前驱任务,岛一,称为如,j的后继任务.
DAG图刻画了任务系统的静态关系,Gantt图则刻画了任务系统变化了的动态的关系.对于任务复制算法,DAG图中的任务在Gantt图中至少出现一次,最多m次,在户。中则至多出现一次.夕;中
min{,2i2、{如s“.;一c“∽mm}),、‘^.z∈Ⅲ(i・J)
’
^≠i
£¨唯一地和DAG图中任务n对应,用‘叫一以表示,
反之则不成立.在不引起歧义和便于理解的情况下,本文也用硼¨来表示t奶的计算开销,用cc州)'(州,或c州州)(z¨一咒)表示“,,和£¨之间的通信开销,用夕rPd(i,j)和s“cc(i,.『)表示£州的父任务集和子任务集,用P㈦m(圳)∈E表示£ij是£¨的父任务.任务佗分配到户;用咒∈c厶表示,反之用扎仨c厶表示.
本文采用和文献[2—3,9]相同的算法假设,即假设多处理器系统是同构的,处理单元之间是全连接且通信效率相同,处理单元具有I/O单元,处理单元之间通信可以和任务计算同时进行.假定任务执行是非抢占的,则Gantt图中的任务均满足以下关系:
P声以i,』=8夕盯i,』+叫f,』
(1)(2)
£¨为尾任务时
(8)
min{.曼i2、{z口s如,。一c。;.,,,。。m),z口s£;,,+。},
、£1.f∈5斯f(i'J)
其它
肠s‰是指£州不影响子任务和后继任务最迟允
许开始时间而最迟允许的开始时间,由式(9)确定.
纪s£“J一如^¨一硼嘶
可能完成时间的最大值,即
SLf—max{Pp丘州)
£f.J∈d‘
(9)
处理器户i的调度长度SL,是指夕i中任务的最早
(10)
一个任务系统的调度长度SL(Schedulekngth)定义为所有SL;中的最大者,即
SL=max{SL。)
1≤f≤m
(11)
Z口以f.』一纪5“+硼f,J
如果忌>J,则
8户∥Ⅲ≤P夕跪,^肠^¨≤Z口“矾
如果
P(f,m㈦^)∈E,则志>歹
SL。为p。中尾任务的最早可能结束时间,SL为吼的最早可能结束时间.
当SL。无法进一步减小时,称SLi达到最优.分析式(10)可以得知,调度长度和任务的最早可能结束时间密切相关,而任务的最早可能结束时间和任务所在的处理器、其父任务位置及前驱任务的完成时间有关,这样调度长度的优化就转化为对Gantt图的优化.而关键任务在优化过程中有极其重要的作用,为此给出以下两个定理.
定理1.
证明.
(3)(4)(5)
数据到达时问d口“一m是指父任务竹(咒硭fz;)的数据到达£州的最早时间,可由式(6)确定.
dn£。,(叫)=
n∈pⅢ‘l',)
"岳“l’‘^.f一”
min
{ep^¨+厶.(f,J)}
(6)
£¨的关键父任务则是指父任务中数据到达时间最大的任务,为使式(6)取得最大值的任务.
P户s幺.J是指‘¨具备开始条件(得到所有数据且前驱任务完成)后可能开始执行的最早时间,由式
(7)确定.
关键任务是减小调度长度的核心.可分两个方面来证明.
(1)非关键任务友,,满足P户盯¨一P户^。一-,其P夕盯州由‘州一t确定,在P户^嘶一-没有减小的前提下,P户s‘研无法减小,由式(1)知,Pp厂‘叫是无法减小的;
万方数据
3期
兰
舟等:基于动态关键任务的多处理器任务分配算法
457
(2)改善关键任务的最早可能完成时间就有可能减小调度长度.当尾任务£抽是关键任务时,如果Pp丘咖减小,由式(10)可知,SLf会随之减小;当反,。是关键任务而e户力姗不能减小或£f'口不是关键任务时,减小户。中关键任务£叫的P户∥嘶将为减小£m(忌>歹)的Pp^矾创造机会,继而为减小尾任务岛,。的
印以抽提供可能,因而就有可能改善SL。.
综合(1),(2)可知定理成立.证毕.
定理2.
当夕。中没有关键任务或所有关键任务£¨的Pp^Ⅲ均不能减小时,SLi达到最优.
证明.
分两种情况证明.
(1)当户i中没有关键任务时,p;中任务均为非关键任务,由定理1知,户。中的所有任务£¨的P户,一£¨均不能减小,SL;也就不能减小,SL。达到最优;
(2)当pi中有关键任务£州时,由于所有关键任务岛,i的P户丘¨均不能减小,而非关键任务£m的ep丘m又不能减小,SLi也就不能减小,SLi达到最优.
综合(1),(2)可知定理成立.
证毕.
定理1说明了减小调度长度的可能途径,定理2说明如何判断调度长度已达到最优.这两个定理构成了DCT算法的理论基础.3
DCT调度算法
DCT调度算法的基本原理是,动态地确定当前
处理器的关键任务,将其关键父任务复制到当前处理器,以减小关键任务‘¨的e夕^叫,从而减小SL;。DCT算法包括两个主要内容,一是选择策略,即选取未调度任务中哪一个任务予以调度的策略;二是复制策略,即决定什么任务需要复制,在什么时候复制,复制到什么地方.
DCT算法的实现过程是,每调度一个新的任务,就构造一个当前处理器,当前处理器开始只包括开始任务和当前任务,然后动态地确定当前处理器中的关键任务,将关键任务的关键父任务复制到当前处理器,直到当前处理器中关键任务的最早可能完成时间不能减小或没有关键父任务时为止.
3.1
选择策略
DCT算法选用任务深度为权值,采用小者优先
策略构建调度队列,任务深度由式(12)确定.
‘PuP£(行{)一1
,,,、fo'
%勒一
max{zP剐“(咒,))+1,
其它
(12)
万方数据
深度相同时,以序号小者优先.由式(12)可知,父任务的深度值必然小于子任务的深度值,确保了父任务先调度,子任务后调度,开始任务最先调度,结束任务最后调度,满足了DAG图中任务间的优先关系.
3.2
复制策略
3.2.1关键任务确定
由定理1可知,关键任务是减小调度长度的核心,只有某个关键任务£。的ep^¨减小了,SL;才有可能减小.根据关键任务定义可构造确定p。中关键任务的启发函数为
H1(i)一‰,IP户,‰一,<已户s‰且J≥2)
(13)
式(13)可能确定出多个关键任务瓦川越靠近尾任务的关键任务对尾任务最早可能完成时间影响越大,作用越直接,因而DCT算法采用歹值大者优先的策略,依次优化(减小)这些关键任务的最早可能完成时间,一旦有关键任务的最早完成时间得到了优化,就停止优化过程,重新确定关键任务后进入下一轮优化.
3.2.2复制任务确定
由式(1)可知,任务£¨的8p丘¨由P夕s£。和叫。之和确定,硼¨是固定不变的,只有Pp盯i,减小了,8户^¨才会减小.由式(7)可知,P户s£。由‘叫的关键父任务挖的dn£州。)和前驱任务‘嘶一1的P户以叫一l确
定,为如£州叫,和8乡以州一。的大者.由关键任务的定
义可知,关键任务£州的d口£。’(im大于其前驱任务£Ⅲ一1的Pp豇埘一1,这样缩小关键任务£叫的eps£叫就转化为缩小关键任务的d口£。一,j).由式(6)可知,任
务£州的d口£州州,由‰的关键父任务咒的最小的
P户以¨(“,。一咒)及c。.({m之和确定,而经过前期调度,关键父任务孢最小的8夕丘¨(“,z一咒)已经为最,优了,只能在“Ⅲ,j,上作文章.当父任务和子任务分配到同一处理器中时,二者的通信为处理器内部通信,通信时间可近似为o,因而可以将关键父任务n复制到当前处理器,将原来咒和£¨在处理器之间的通信变为处理器内部的通信,忽略通信时间%㈦j,而减小关键任务£¨的d口£州。),以减小‘州的Pps‘¨.需要注意的是,对于复制到当前处理器的关键父任务来说,其最早可能开始时间会发生变化,当变化到使关键任务的最早可能开始时间增大时,应将和关键父任务在同一处理器的其父任务一起复制到当前处理器,直到关键任务£。的P夕s£。有减小为止.由式(6)及关键父任务的定义,可以得到确定关键任务£。的关键父任务£加的启发函数为
458计算
机
学报
H一
0
咋
鬈
p,如
+厶
m¨m~
3.2.3复制位置确定
参数Pps£。,ep少州,比s£州,zn丘¨准确刻画了£¨在p。中所处的位置,在时间段ep疏’』'肠“¨内任意安排£。的开始时间均不会影响SLi,为其它任务复制到≠州之后或之前提供了可能.在满足任务间优先关系的前提下,对于关键任务反"£加必须满足以下条件才能复制到£¨与£州一,之间:
Pps£。,』一8p以¨一l>叫…,j≥2
(15)
对于其它任务‰,£姗必须满足以下条件才能
复制到£¨之前:
z口s‰一P户^叫一l≥叫加,歹≥2
(16)式(15)或式(16)确定了£加可以复制的位置,一般来说,式(16)可能确定多个可以复制的位置.算法
实现时,将£加复制到使关键任务或关键父任务取得
最小最早可能开始时间的位置.
每复制一个任务之后,任务时间参数发生改变.如果关键任务的最早可能开始时间有改善则停止复制操作,重新确定关键任务后再复制有关任务,否则应考虑将先前所复制任务的父任务一起复制到当前处理器,直到关键任务的最早可能开始时间有改善或无法改善或没有关键任务为止.3.2.4冗余队列删除
为了保留任务获得最早可能开始时间的调度安排,每调度新任务时,DCT算法都重新构造一个当前处理器,最多时有口一1个处理器队列.口一1个处理器队列中有些属于冗余调度,没有这些队列不会对任务系统调度和调度长度产生任何影响.为了节约资源,需要将冗余队列删除.DcT算法实现这个功能时,先统计只调度过一次的任务(‰除外),然后依次删除不包含这些任务的处理器队列,删除后SL无变化则删除成功,否则撤消删除.3.3处理器数目优化
处理器数目优化是指在不增大SL的前提下,将两个或两个以上处理器中的任务合并到一个处理器上,以减少处理器数量.
DCT算法的处理器数目优化分为两个阶段,第一阶段为线性合并,依次对子任务检查,将尽可能多的父任务所在处理器队列合并到子任务所在的处理器队列中.任务从一个处理器合并到另外一个处理器之后,任务时间参数会发生变化.为了确保不影响调度长度,在满足任务间优先关系的前提下,除两个
万方数据
处理器均有的任务外,A中任务£¨同时满足了以下关系后才能合并于p;中的£嘶和£。+,之间:
缸s‰+l—Pp弘州≥姒,z
(17)Z口^l,f≤Z口s£。,j+1
(18)比s‰≥P夕以¨
(19)
式(17)保证了可以在f¨及。奶+-之间合并“,f,式(18)保证了合并“,。之后不会影响£州+-的zns£训+1,式(19)保证了合并“,,之后其z口s£引可以得到保证,不会影响其子任务的最迟允许开始时间.除A及p。均有的任务外,户t中所有其它任务都满足式(17)~式(19)之后才能将pt中的任务合并于pi中,合并之后删除m,SL无变化则合并成功,否则撤消合并.
第二阶段为非线性合并,将不相关处理器中的任务合并到其中的一个处理器中.所谓不相关处理器是指两处理器中除开始任务外,没有相同的任务,也不存在分属于两处理器中的两个任务有共同子任务的情况.一般将调度长度小的合并到调度长度大的处理器中.如有两不相关处理器夕。和户t,将A中的任务£¨合并于夕i中的任务£¨和任务£f'j+。之间,则要求£¨同时满足式(17)~式(19);如果将pt中的尾任务£¨合并于夕i中的尾任务£q之后,则只要求满足式(19).除m外,A中所有任务均满足条件时才能将p。中的任务合并于夕i中.合并后删除夕t,SL无变化则合并成功,否则撤消合并.3.4算法描述
DCT算法的总体实现为:
A190rithm
DC:r_sf^e矗群ZP(G,G口)
{
//input:G一(V,E,W,C)
//output;Ga=(P,T,CL,EPST,EPFT,LAST,
LAFT)
S娩Pd“Z已(G,Gn);M;rgP(G,Gn);}
算法中,默认输入的DAG图只有一个72,和一个行。,任务按深度值从小到大进行了排序,因而省略了构建调度队列的实现.S砌ed“如()函数实现任
务复制功能,并删除冗余队列;地rgg()函数实现任务合并,减少处理器数目.Sc^ed“zP(),№rgP()的
具体实现如下:
voidSc^Pd“ZP(G,G口)
{
//input:G一(V,E,W,C)
//output:(1n一(P,丁,CL,EPS丁,EPFT,LAS丁,
3期
兰舟等:基于动态关键任务的多处理器任务分配算法
459
LA}”I’)
for(i一2;iG口;i++)//u为DAG图的任务个数
(
构造包含开始任务和任务i的处理单元夕i;
do
{
查找夕i的关键任务及其关键父任务;复制关键父任务及其父任务(需要的话)
)whileS厶有提高且有关键任务;)//endoffor
统计只调度过一次的任务;//删除冗余队列for(i一1;i<=户;i++)//户为处理器数目
(
if户i中不包含只调度过一次的任务then
{
删除∥;
if
SL增加then撤消删除;
else统计只调度过一次的任务;
)
)//endof删除冗余队列}//endofsc^ed“如()
void
Mer98(G,G口)
f
//input:G一(y,E,’矿,C)
//output:G口一(P,T,(jL,EPST,EPFT,LAS丁,
LAFn
查找IprPd(,z。)I≥2的任务并计数,不妨设为量;for(i一七;i>=1;i++)//线性合并
(
查找挖[妇所在的处理器并存入加口,并计数,设为m;
for(j一10<._m;j++){
查找除多[j]以外,挖[妇父任务所在的处理器并存入
如琥erpe口,对处理器计数,设为砣;
for(q=1;q<≥:咒;g++){
if.肠t^PrpP[q]能并入p8[刀then
{
知髓P印e[口]并入加[j];
if
SL增加then撤消并入;
)))
)//endof线性合并
按S厶从小到大将“;排序,设有女个处理器;for(i一是;i>一1;i++)//非线性合并
(
查找与虻妇无关的处理器存入加口,设有优个;
for(j=1;J<-_m;j++){
if加[力能并人加[i]then
万方数据
{
加[力并入加[i];
if
SL增加then撤消并人;
)}
)//endof非线性合并
)//endofm8r98()
分析DCT算法及其实现可得定理3.
定理3.
采用DCT算法所得到的调度长度优
于PPA及CPFD算法,所用处理器数目少于PPA算法.
证明.
PPA及CPFD算法采用贪心算法的策
略,试图用局部最优获得全局最优的调度结果.DCT算法在调度过程中动态确定关键任务,并保留前期任务的最优调度信息,保证了调度优化对象的正确性.每次调度只要求调度长度有改善即可,克服了贪心算法的不足,使调度过程更加合理,其结果优于PPA及CPFD算法.
DCT算法既考虑了任务间的线性合并也考虑了非线性合并,并采用逐步合并方式,增加了任务合
并可能性,其合并结果优于PPA算法.证毕.
4算法性能分析
DCT算法由Sc^Pd“zP(),胁rgP()两个函数构
成.S如8d托据()函数中主循环的循环次数是口一1次,内循环在最坏的情况下为r已次,r为各处理器中任务数的最大值,e为DAG图中任务人度的最大
值,故S旗P矗“抛()函数时间复杂度为o(rP口).
地rge()函数中,线性合并的循环次数最多为
O(口p2),p为处理器数目,非线性合并的循环次数最
多为0(户2),故胁rge()的算法复杂度为0(印2)+
0(p2)一0(口2p).因而DCT算法的时间复杂度为
D(r口刀)+0(护夕)=O(u2c),f为P和p的大者.和
PPA及CPFD算法相比(见表1),当夕>已时,DCT算法的时间复杂度有所增大,但DCT算法保证了取得最优的调度结果,而PPA和CPFD算法不一定能取得最优的调度结果.
表l算法时间复杂度对照表
算法
时问复杂度
PPA0(口2P)’CPFD
O(护P)DCT
o(护c)
注,*原文为O(护),有误
460
计算机学报
5
实验对比
本文算法示例为图1所示任务系统.圆圈表示
任务,圆圈中上方数字为任务编号,下方数字为任务计算开销,箭头线旁数字为两个任务间的通信开销.
图1
不例用的DAG图
采用PPA,CPFD,DCT算法对示例调度,结果分别如图2,图3,图4所示.P历(i=1,2,3,4,5,6)为处理器编号,圆角方框表示任务,其上方数字为任务编号,下方数字为任务计算开销,图中阴影部分表
示处理器等待时间区.
为了进一步对比DCT,PPA,CPFD算法的调
度性能,本文分别采用DCT,PPA,CPFD算法对随机任务图调度.随机任务图的产生方式见文献[12].任务个数TN(TaskNumber)为20,40,60,80,100,通信计算比率CCR(Communication
to
Computa—
tion
Ratio)[123为0.5,2.o,5.0,每种丁N和CcR组
合随机产生20个DAG图,取调度结果的平均值作为算法在此种组合条件下的调度结果.计算结果如图5,图6所示.图5中的横坐标是丁N,纵坐标是规
O
5
胁田曰
如
眦圈日臼崮
n
加
孙
阉问淌∞㈦褥嗣囝㈤
~~
峨嚆㈤峨—坻,叫
隅雕醺];{l√麟震崮剀|{J
图2
CPFD的调度结果
万方数据
格化调度长度NSL(Normalized
ScheduleLength),
它是利用变换变量将算法产生的调度长度规格化而得到的,本文采用的变换变量是DAG图中关键路径上所有任务的计算开销之和m].
O
5
m
隅囝剐富
瞰圄
l|鳓州H函口曰
巧
∞
衢
髓阑㈤㈧㈦㈣邕■■魔一~||
图3
PPA的调度结果
O
5
m
临
Ⅺ
眦阑㈤㈥磁㈣域瞧感愀讯懋心;l|\瞰蕊邕㈦|{;一秭藤雠拶{l|l;√
图4
I)cT的调度结果
和PPA及CPFD算法相比,DCT算法是以两任务间后一任务最迟开始时间和前一任务最早完成时间的时间间隔作为任务复制空间,而PPA及CPFD算法则是以两任务间后一任务最早开始时间和前一任务最早完成时间的时间间隔作为任务复制空间.一般来说,前者大于后者,DCT算法中任务复
制的可能性大于PPA及CPFD算法,这是DCT算法优于PPA及CPFD算法的原因之一.CCR值越大,则任务系统中通信开销相对计算开销越大,DCT算法的任务复制空间越大于PPA及CPFD算法,调度长度提高越大,这一点在图5中得到了验证.当CCR为5.0时,DCT算法较PPA及CPFD
算法NSL最大提高o.6276(TN一100),最小提高0.1288(TN=20);而当CCR为O.05时,NSL最大提高0.0067(TN=100),最小提高仅O.o002
(TN一80).
3期兰舟等:基于动态关键任务的多处理器任务分配算法
461
从图2~6可以看出,对同一个(组)DAG图,采用DCT算法得到的调度长度均小于PPA,CPFD
算法,所需处理器比PPA,CPFD算法少.
图5PPA,CPFD,DCT算法对随机DAG图调度的调度长度对比图
图6PPA,CPFD,DCT算法对随机DAG图调度所用处理器数目对比图
processortasks
with
geneticalgo“thms.
IEEETransactions
6
结束语
本文在分析了几个典型的基于任务复制的调度
on
ParaIlelandDist“buted
Systems,1999,10(8):825—837
hybrid
genetic
[3]Zhong
fornaI
Yi—Wen,YangJian—Gang.A
in
algorithm
tasksscheduling
of
Fudan
paralIelmultiprocessorsystems.Jour—
2004,43(5):
University(NaturalScience),
算法的基础上,提出了DCT算法,采用DAG图和Gantt图共同刻划调度过程,以Gantt图为主提出了准确描述任务位置和状态的时间参数.DCT算法在调度过程中动态地确定关键任务,克服了贪心算法的不足,使得调度过程准确合理;DCT算法既考虑了任务间的线性合并也考虑了非线性合并,增加了处理器队列合并的可能性.分析和实验表明,DCT算法在调度长度和处理器数目方面优于其它同类算法.
DCT算法在调度过程中保留了任务获得最早可能开始时间和最早可能结束时间的调度安排,最多时有u一1个处理器队列,使得算法的空间复杂度较大,有待进一步优化.
参
考
[7][6][5][4]
918—922Attiyacingthe
in12th
G,HamamY.Two
phasealgo“thmfor10adbalan—
systems//Proceedings
of
heterogeneous
distributed
on
EuromicroConference
Processing.
ParaUel,Distributedand
2004:
434—
Network-Based
439
ACoruna,Spain,
WuMin_You,ShuWei,
scheduling
and
Gu
Jun.
LocalsearchforDAG
taskassignment//ProceedingsoftheInterna—
on
tionalConferenceParaUel
Processing.Bloomington,IL,
USA,1997:174—180
Liu
GQ,Poh
KL,XieM.IterativeJournalof
list
schedulingforhet—
and
erogeneouscomputing.
Parallel
Distributed
Computing,2005,65(5):654—664
Boeresgy
C,FilhoJV,Rebello
task
on
VEF.Acluster-based
strate—
forscheduling
of
the
heterogeneous
on
processors//Pro—
Architecture
Brazil,
ceedings
and
16th
SymposiumComputerFozdo
HighPerformanceComputing.
Iguacu,
文献
2004:214—221
[8]
PalisMuling
A,Liou
J—C,WeiDSL.Taskclusteringandsched—
parallel
architectures.
IEEE
for
dist“butedmemory
on
[1]
TopcuogluH,WuMin—You.Performance—effectivecomplexity
IEEE
andlow—
TransactionsParallelandDistributedSystems,1996,7
task
scheduling
on
for
heterogeneouscomputing.systems,
(1):45—55
TransactionsParallelandDist“buted
[9]DarbhaS,Agrawaldist“buted—memorv
DP.
0ptimalscheduling
algorithm
on
for
2002,13(3):260—274
machines.IEEETransactionsPdrallel
[2]
CorreaRC,FerreiraA,Rebreyend
P.
Schedulingmulti—
andDist“buted
Systems,1998,9(1):87—95
万方数据
462
计算机学报
2007年
[10]ParkC—I,Choe’r.Y.Anoptimalschedulingalgorithmbased
on
task
duplica“on.
IEEETransactionson
Computers,
2002,51(4):444—448[11]ZhouShuang-E,
Yuan
Yo旷Guang,XiongBing_Zhou,
ou
Zhong—Hong.Analgorithmof
processor
pre—allocationbasedon
task
duplication.ChineseJournalofComputers,2004,27(2):216—223(inChinese)
LAN
Zh伽。born
in1969,Ph.D.
candidate.Hisresearchinterestsinclude
network
computingand
high
perform—
ance
parallelcomputing.
Background
Asmain
part
ofthehighperformanceparallelalgorithm
research,theproposedDCTalgorithmprovides
an
effective
schemeforallocatingtasksto
multiprocessors.Thisalgo—
rithm
can
be
employed
in
many
typical
parallel
algo“thms
万方数据
(周双娥,袁由光,熊兵周,欧中红.基于任务复制的处理器预分配算法.计算机学报,2004,27(2):216—223)
[12]
AhmadI,KworkYK.Onexploittaskduplication
in
parallel
p西gramscheduling.IEEE
Transactionson
Paralleland
Dis—
tributedSystems,1998,9(9):872—892
[13]KruatMchceB,LewisT.Grainsizedeterminationforpara卜
lelprocessing.IEEESoftware,1998,1:23—32
SUNSh卜xjn,bornin
1940,professor,Ph.D.supervi—
sor.
Hisresearchinterestsincludenetworkcomputing,par—
alleland
distributedcomputing,informationcompactingtechnique,
numerical
methods,
combinatorial
algorithm,
etC.
such
as
FastFourier
Transform(FFT),meananalysisLU—
decomposition,Laplaceequation.Also
DCT
algorithm
is
suitableforsomeresource一1imitedenvironment,forexam—theembeddedreal—timedistributed
system.
ple,for