发明名称 大规模异构计算系统中任务计算量具有随机性的调度方法
摘要 本发明针对大规模异构计算系统环境下任务执行时间具有随机性及优先约束依赖关系,提出了一种高效的任务调度方法。该方法主要由以下几步构成:第一步,针对应用程序的每个任务,计算其随机sb_level值;第二步,对已就绪任务队列中的每个任务查找最优处理机,并计算每对任务-处理机的随机动态级SDL;第三步:利用操作算子<比较随机动态级SDL的大小,确定最优任务-处理机对;第四步:将任务调度到相应的处理机上执行,并把已就绪的任务加入就绪任务队列;第五步:更新目标计算系统的相关参数。采用该方法,较之现有面向异构计算系统的调度方法相比具有调度长度短、加速比高等性能优势。
申请公布号 CN103530183A 申请公布日期 2014.01.22
申请号 CN201310506812.9 申请日期 2013.10.24
申请人 湖南大学 发明人 李肯立;唐小勇
分类号 G06F9/48(2006.01)I 主分类号 G06F9/48(2006.01)I
代理机构 长沙市融智专利事务所 43114 代理人 欧阳迪奇
主权项 1.一种大规模异构计算系统中任务计算量具有随机性的调度方法,其特征在于,包括如下步骤:第一步,对运行在大规模异构计算系统环境下所有服从正态分布的随机有向无环并行应用程序,求就绪任务队列中任务v<sub>x</sub>到出口任务v<sub>exit</sub>的随机近似路径长度sb_level(v<sub>x</sub>),其中sb_level(v<sub>x</sub>)为:<maths num="0001"><![CDATA[<math><mrow><mi>sb</mi><mo>_</mo><mi>level</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>x</mi></msub><mo>)</mo></mrow><mo>=</mo><msub><mi>MAX</mi><mrow><msub><mi>e</mi><mrow><mi>x</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>&Element;</mo><mi>E</mi><mo>,</mo><msub><mi>v</mi><mi>i</mi></msub><mo>&Element;</mo><mi>succ</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>x</mi></msub><mo>)</mo></mrow></mrow></msub><mo>{</mo><mi>w</mi><mrow><mo>(</mo><msub><mi>e</mi><mrow><mi>x</mi><mo>,</mo><mi>i</mi></mrow></msub><mo>)</mo></mrow><mo>+</mo><mi>sb</mi><mo>_</mo><mi>level</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>i</mi></msub><mo>)</mo></mrow><mo>}</mo><mo>+</mo><mfrac><mrow><mi>w</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>x</mi></msub><mo>)</mo></mrow></mrow><mover><mrow><mi>w</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover></mfrac><mo>,</mo></mrow></math>]]></maths>其中e<sub>x</sub>,<sub>i</sub>表示任务间的数据通信量,v<sub>x</sub>,v<sub>i</sub>是任务节点,且任务v<sub>x</sub>是任务v<sub>i</sub>具有优先约束性的前驱任务,E为所有通信边集合,succ(v<sub>x</sub>)为任务vx的直接后继任务集,w(v<sub>x</sub>)表示任务节点v<sub>x</sub>的计算需求,w(e<sub>x,i</sub>)表示通信边e<sub>x,i</sub>的通信需求,<img file="FDA0000401473020000012.GIF" wi="120" he="76" />是计算系统平均计算能力;对于出口任务v<sub>exit</sub>,<maths num="0002"><![CDATA[<math><mrow><mi>sb</mi><mo>_</mo><mi>level</mi><mrow><mo>(</mo><msub><mi>v</mi><mi>exit</mi></msub><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><mi>N</mi><mrow><mo>(</mo><msub><mi>&mu;</mi><mi>exit</mi></msub><mo>,</mo><msubsup><mi>&sigma;</mi><mi>exit</mi><mn>2</mn></msubsup><mo>)</mo></mrow></mrow><mover><mrow><mi>w</mi><mrow><mo>(</mo><mi>p</mi><mo>)</mo></mrow></mrow><mo>&OverBar;</mo></mover></mfrac><mo>;</mo></mrow></math>]]></maths>其中sb_level(v<sub>exit</sub>)为任务vexit本身的随机近似路径长度,<img file="FDA0000401473020000014.GIF" wi="277" he="78" />是任务v<sub>exit</sub>服从正态分布的计算量;第二步,为了给已就绪任务队列中的每个任务查找最优处理机,将就绪任务队列中的每个任务都分别与所有的处理机逐一配对,并计算由此产生的每对任务-处理机的随机动态级SDL,其任务-处理机对的随机动态级SDL为:SDL(v<sub>i</sub>,p<sub>x</sub>)=sb_level(v<sub>i</sub>)-EST(v<sub>i</sub>,p<sub>x</sub>)┤Δ(v<sub>i</sub>,p<sub>x</sub>);其中EST(v<sub>i</sub>,p<sub>x</sub>)是任务v<sub>i</sub>在处理机p<sub>x</sub>上的最早开始执行时间,Δ(v<sub>i</sub>,p<sub>x</sub>)代表计算资源的差异性;第三步:将第二步中所得到的SDL(v<sub>i</sub>,p<sub>x</sub>)进行比较,以获得最优任务-处理机对;比较随机动态级SDL的大小是利用操作算子<来实现,操作算子<的实现方法是对任意两个服从正态分布的随机动态级SDL(X<sub>1</sub>)和SDL(X<sub>2</sub>),当x=x<sub>1</sub>时,随机动态级SDL(X<sub>1</sub>)的累积分布函数F(SDL(X<sub>1</sub>))=0.9;x=x<sub>2</sub>时,随机动态级SDL(X<sub>2</sub>)的累积分布函数F(SDL(X<sub>2</sub>))=0.9,则操作算子<计算如下:<maths num="0003"><![CDATA[<math><mrow><mi>SDL</mi><mrow><mo>(</mo><msub><mi>X</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>&lt;</mo><mi>SDL</mi><mrow><mo>(</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>SDL</mi><mrow><mo>(</mo><msub><mi>X</mi><mn>2</mn></msub><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>for</mi></mtd><mtd><msub><mi>x</mi><mn>1</mn></msub><mo>&lt;</mo><msub><mi>x</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><mi>SDL</mi><mrow><mo>(</mo><msub><mi>X</mi><mn>1</mn></msub><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd><mtd></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>其中x是自变量,x<sub>1</sub>是x定义域上的点,x<sub>2</sub>是x定义域上的另一点;第四步:将最优任务-处理机对的任务调度到相应的处理机上执行;在任务调度后,若还有原来受此任务约束的任务,则将这些任务变为就绪任务,再将这些变为就绪任务的任务加入就绪任务队列;第五步:检查就绪任务队列中所有任务是否调度完毕,如果调度完毕则输出任务-处理机对序列;否则更新目标计算系统的参数,并返回第二步重新计算所有就绪任务-处理机对的SDL(v<sub>i</sub>,p<sub>x</sub>),这样循环执行第二、三、四、五步直至就绪任务队列中所有任务均调度完毕。
地址 410082 湖南省长沙市岳麓区麓山南路2号