智能网格计算环境下的任务调度算法研究

合集下载

基于多智能体纳什Q学习WSN节点休眠调度算法

基于多智能体纳什Q学习WSN节点休眠调度算法

基于多智能体纳什Q学习WSN节点休眠调度算法摘要:目前传统的无线传感网络节点休眠调度算法无法使传感器节点自主学习其每轮调度中的最佳动作(休眠/工作),导致覆盖率较低,网络生命周期较短。

为此,提出了一种传感器节点利用纳什Q学习进行学习的休眠调度算法(NQSA),把每个传感器节点当作一个智能体,将整个系统当作多智能体系统,每个节点自主学习其每轮调度中的最佳动作,执行高覆盖率并且低能耗的调度策略。

仿真结果表明, NQSA算法在降低能耗的同时提高了整个无线传感网络系统的覆盖率。

关键词:无线传感网络;节点调度;多智能体强化学习;纳什Q学习中图分类号TP393 文献标志码 A0引言无线传感网络中传感器节点能量有限,且在冗余监听时浪费了大部分的能量,所以适时适当的调度无线传感网络中处于冗余覆盖的节点进入休眠状态,成为了最大化网络寿命的关键[1]。

针对该问题,已有大量研究学者提出了不同的节点调度算法。

文献[2]提出了一种基于网格的节点休眠调度算法,该算法计算每个网格中每个节点的权重,然后判断该节点是否为冗余覆盖节点,然后调度冗余覆盖节点进入休眠。

文献[3]提出了动态概率休眠调度机制的拓扑控制算法,根据分簇后的簇内成员节点数量动态设置节点的休眠概率。

上述调度算法保证了节点执行安全且能耗较低的调度策略,但不具有记忆特性,无法充分利用节点历史数据,每次求解都是独立的过程,而强化学习具有记忆特性刚好可以克服这个问题。

强化学习可以使节点在动态的环境中反复探索与试错,充分利用历史数据来选择每轮中的最佳调度策略。

为此,本文提出了一种基于多智能体纳什Q学习的节点休眠调度算法。

1.系统模型1.1网络模型本文假设每个传感器节点初始能量相同且具有统一的监测范围和通信范围,把每个传感器节点当作一个智能体,将整个系统视为多智能体系统,每个传感器节点与周围节点进行合作型博弈。

传感器节点的传感范围和通信范围看成一个圆形区域。

作出如下定义:定义1: 监测范围半径为R,通信范围半径为2R,与节点i欧式距离小于2R的节点称为节点i的邻居节点。

基于GAPSO混合算法的网格工作流调度研究

基于GAPSO混合算法的网格工作流调度研究
( o p t e t , at hn om l nvr t, h n h i 0 0 2, hn C m ue C nr E s C i N r a i sy S a g a 2 0 6 C i r e a U ei a)
Ab ta t src Gr o k lw sh d l g c n e n b u e s h d l g o r e s ae rs u c sa d t s s a d i i o e o emo t o lxa d i w r f c e u i o c r s o tt c e u i f a g —c l e o re n a k , n s n f h s mp e n d o n a h n l t t c
s a c a i t f p ril wan ag rtm t s e d p h o eg n e a e i he l t r p r.Sm ua in x rme tr s l s o t t h e r h bl y o a tce s rq l o h i i o p e u te c nv r e c rt n t at a t i lto e pe i n e ut h w ha te e s
c a ln i gis e h c f c ste e e u in a d ef i n y o r o k o T i p p r p o o e y r lo t m a e n g n t n h l gn s u sw i h a e t h x c t n f ce c fg i w r f w. hs a e r p s s a h b i ag r h b s d O e e i a d e o i d l d i c
பைடு நூலகம்
p r c a fo t i t n ( A S ) w t nteh b d a o tm ase i t s fn t n i q o d cosv r n ua o r a it ae at l s i pi s i G P O , i i y r l rh p c l i es u c o u t ,r o e dm t i po bly r ie w T l m ao h h i gi a fn i s e s a tn b i

网格环境下具有可靠性的任务调度策略

网格环境下具有可靠性的任务调度策略

网格 环境 下 具 有可 靠 性 的任 务 调 度 策 略
郭 权 , 王希诚
( 大连理T大学 丁业装备结构 分析国家重点实验室 , 辽宁 大连 16 2 ) 10 3

要: 针对 网格环境 的动态性和异 构性特点 , 该文提 出 了 D T H S和 R H S任务 调度 算 法。在 充 D T
mena dv ineo ten mb r f h o e So nsq et lo s a n a a c f h u e en d ’ w e uni b . r ot aj
Ke y wor :g i ds rd;ts c d ln a k s he u i g;d n mim ;h tr g net ya s ee o e iy;r la ii e ib l y t

mo u t s sa d t e p s i l y a c c mmu i ain c s r o sd r d.S me o tmiainsa e ng s b a k n h o sb e d n mi o n c to o tae c n i e e o p i z to r a o td,s c s,tk n a v n a e f t p r i b t e wo s b a k h t r n t a d pe uha a i g d a t g o he s a e tme ewe n t u t s s t a a e o he s me nd o e,o tmiig t e o d ro x c tn ub a k p i zn h r e fe e u i g s ts s,a O o nd S n.On t e b sso tpsme to d a o e h a i fse n ine b v

【计算机研究与发展】_调度算法_期刊发文热词逐年推荐_20140725

【计算机研究与发展】_调度算法_期刊发文热词逐年推荐_20140725

推荐指数 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2010年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
推荐指数 3 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
2009年 序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
53 54 55 56 57 58 59 60
低复杂度 传输层安全 任务调度 交换分区 上行链路 markov过程 i/o能力分级 color-coding
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103

基于遗传算法的网格任务调度方法研究

基于遗传算法的网格任务调度方法研究
取低 分辨 率 , 以简化运算数据 , 提高速度 。而在形 变完 成后 , 由 于没有形 变计算 , 全体数据 即可采 用高 分辨率 显示 , 以体 现效 果 。我们利用 、I 中抽 取点 的方 法 , r r ’ K 以完成 数据 的变 换 。手 术模拟流程 在 Vsa C+ +. e 20 i l u nt 0 3实 现 , 使之 与 V K显 并 T 示实 时结合 。

图 1 手 术 模 拟 流 程
[ ]SehnS H N E K vnMO T O R 6 tp e C E D L, ei N G ME Y,e a.A sr cl t 1 ug a i s uao rpann n ef mn pi o lf l s J . i lt f l ig ad pr r ig r ar fce i [ ] m ro n o e t p
Bo dc o uig V C) 19 , (8 8 :7 5 4 i meia C mpt ( B ,9 2 9 10 ) 54— 8 . l n
[ ] o r n R a Tm fTs e n rc r S u tn D . 5 Je B w . e —i e o iu d t t i l i [ ] lo l S t s a S u u m ao e
P D. Dis rai n, Cai r i De rme t f Co u e S i h. se tt o l o a: fn pa t n o mp t r c — ec n e,Sa fr ie st 2 0 1 t n o d Un v ri y, 0 3, 1—1 . 3
仪器 仪 表用户
常慎微 , 以达到稳定 。此处 的平方根起补偿 作用 , E n 很小 当 () 时 起 到 放 大 的 作 用 , 避 免 调 节 的 过 早 饱 和 。 同 时 对 惯 量 因 以 子 也作了 自适应调节 , 调节机制更为简洁 ,/通常取 0 9 o 。 .。 这种对 "和 o不断地渐增和适 时地抑制 相互作 用 的机制 t 可使迭代过程较快逃离局 部 极小 状态 和走 出“ 台 ” 加快 收 平 , 敛速度 , 并且对 参数 的敏感性小 , 有较 好的鲁棒性 。 具

一种基于遗传一蚁群算法的网格任务调度策略

一种基于遗传一蚁群算法的网格任务调度策略

o e ei c e u i gag r h , n v i ei ef in yp o lm f n c e ui g ag r h a sii a s ac ig sa e, i f n t s h d l lo t m a d a o d t n f c e c rb e o ts h d l l o t m t t t l e r h n t g t s g c n i h i a n i i n i h
p p rp o o e rd ts c e ui g srt g a e n t e g n t -n lo tm , ih i t gae h lb ls ac a a i t a e r p s d ag i k s h d l tae yb s d o h e ei a t g r h whc n e r td te go a e rh c p b l y a n c a i i o e ei l o t m n h ou in p e iin o n g r h , n o s se h d a tg so e e t o ag r h . h e t fg n t a g r h a d t e s l t r cso fa ta o i m a d p s e s d te a v n a e f h s w o i ms T e t s c i o l t t l t r s l n smu ai n e p rme t s o h t h r p s d me h d o t ef r h e e i a g rtm n h n lo i m a eut o i lt x e s o i n s h w t a e p o o e t o u p romst e g n t o i t cl h a d te a tag rt sa h w oe n a e o vo ss h d l g e ce c d a tg h n t e s h d l g sz fgi a k i ag n u h h l ,a d h st b iu c e u i f in y a v n a e w e h c e ui i o d t s Slr e e o g . h n i n e r

任务调度文档

任务调度文档

PS:第一次写文档,不知道应该写成什么样,请多指教一.任务调度4个研究方面:(每个方面的具体内容查看论文a)1.静态任务调度(下面的算法都适合静态任务调度)2.应用层调度(偏动态的)3.基于预测的方法(预测)4.基于经济模型的调度(市场平衡化理论)(a网格任务调度机制的研究)(b网格中任务调度机制研究)也作出了类似的分类及解释二.任务调度模型设计目标:(出自a网格任务调度机制的研究)1.模型能够适应网格中资源的动态变化。

这些资源包括CPU资源存储资源网络资源及各种实时资源。

模型能及时地得到网格中各种资源的最新信息并能处理对资源的访问控制2.模型所使用的调度策略是可以扩展的,可以根据实际的环境动态的选择调度策略3.模型能够保证对大量任务的有效处理(论文a提出的模型分为3层,调度算法适用于调度管理模块(2层))分布式环境下任务调度算法分为4类:(分布式环境下任务调度模型研究)1.整个系统中只有一个就绪任务队列和一个任务调度器(这种任务调度方式有利于对任务调度算法的性能进行分析)2.就绪任务队列在整个系统中只有一个,但每个计算结点上都有任务调度器3.每个计算结点上都有就绪任务队列和任务调度器(这种本计算结点优先的任务调度策略, 减轻了计算结点间进行任务调度时所带来的额外负担)4.每个计算结点上都有就绪任务队列, 但整个系统中只有一个任务调度器(没用)(对于不同的模型可能会有完全不同的算法,模型的构建于选择很重要)这里的模型是关于计算时的模型,个人理解:这个模型概念偏小,只适用于计算层面,而不是b 论文中提到的1任务模型、2计算平台模型、3性能模型类似的这种全局化的大的模型化的概念。

(b网格计算中的任务调度模型研究)论文b对模型有一个总体的诠释,个人觉得对理解什么是模型或理解模型的不同的概念有一个很好的帮助。

三.任务调度经典算法:分为相互独立任务和相互关联任务(我们主要研究相互独立任务)1.Min-Min:算法选取每个任务的最小完成时间, 再从所有最小完成时间中选取最小的完成时间进行任务和计算资源匹配(算法参考a.1.1)2.Min-Max:算法在得到每个任务的最小完成时间后, 选取最大的完成时间进行任务和计算资源匹配3.sufferage:算法计算每个任务的最小完成时间和次小完成时间的差值, 选取所有任务中差值最小的任务和计算资源。

树型网格计算环境下的独立任务调度

树型网格计算环境下的独立任务调度

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@Journal of Software, Vol.17, No.11, November 2006, pp.2352−2361 DOI: 10.1360/jos172352 Tel/Fax: +86-10-62562563© 2006 by Journal of Software. All rights reserved.∗树型网格计算环境下的独立任务调度林伟伟+, 齐德昱, 李拥军, 王振宇, 张志立(华南理工大学计算机科学与工程学院,广东广州 510640)Independent Tasks Scheduling on Tree-Based Grid Computing PlatformsLIN Wei-Wei+, QI De-Yu, LI Yong-Jun, WANG Zhen-Yu, ZHANG Zhi-Li(School of Computer Science and Engineering, South China University of Technology, Guangzhou 510640, China)+ Corresponding author: Phn: +86-20-38257397, E-mail: linweiwei2004@, Lin WW, Qi DY, Li YJ, Wang ZY, Zhang ZL. Independent tasks scheduling on tree-based grid computingplatforms. Journal of Software, 2006,17(11):2352−2361. /1000-9825/17/2352.htmAbstract: Task scheduling is a fundamental issue in achieving high performance in grid computing systems.However, it is a big challenge for efficient scheduling algorithm design and implementation. In this paper, theproblem of scheduling independent tasks on tree-based grid computing platforms, where resources have differentspeeds of computation and communication, is discussed. In contrast to minimizing the total execution time, which isNP-hard in most formulations, an integer linear programming model for this problem is presented. Using the model,the optimal scheduling scheme that determines the optimal number of tasks assigned to each computing node isobtained. With the optimal scheduling scheme, two demand-driven and dynamic heuristic algorithms for taskallocation are proposed: OPCHATA (optimization-based priority-computation heuristic algorithm for task allocation)and OPBHATA(optimization-based priority-bandwidth heuristic algorithm for task allocation). The experimentalresults show that the proposed algorithms for the scheduling problem obtain better performance than otheralgorithms.Key words: task scheduling; grid computing; integer linear programming; optimal scheduling scheme; heuristicalgorithm摘要: 任务调度是实现高性能网格计算的一个基本问题,然而,设计和实现高效的调度算法是非常具有挑战性的.讨论了在网格资源计算能力和网络通信速度异构的树型计算网格环境下,独立任务的调度问题.与实现最小化任务总的执行时间不同(该问题已被证明是NP难题),为该任务调度问题建立了整数线性规划模型,并从该线性规划模型中得到最优任务分配方案 各计算节点最优任务分配数.然后,基于最优任务分配方案,构造了两种动态的需求驱动的任务分配启发式算法:OPCHATA(optimization-based priority-computation heuristicalgorithm for task allocation)和OPBHATA(optimization-based priority-bandwidth heuristic algorithm for taskallocation).实验结果表明:在异构的树型计算网格环境下实现大量独立任务调度时,该算法的性能明显优于其他算法.∗Supported by the Natural Science Foundation of Guangdong Province of China under Grant No.05300200 (广东省自然基金); theGuangdong-Hong Kong Technology Cooperation Funding Scheme of China under Grant No.2005A10307007 (粤港关键领域重点突破项目)Received 2006-06-06; Accepted 2006-08-25林伟伟等:树型网格计算环境下的独立任务调度2353关键词: 任务调度;网格计算;整数线性规划;最优任务分配方案;启发式算法中图法分类号: TP393文献标识码: A随着互联网的飞速发展,利用互联网上大量计算资源的网格计算将成为解决规模庞大、复杂的问题的必由之路.要实现高效的网格计算需要处理许多复杂的问题,其中,任务调度问题是网格研究中所必须解决的一个关键问题,也是网格应用的基础.高效的任务调度策略和算法可以充分利用网格系统的处理能力,从而提高网格应用程序的性能,以便更好地利用网格资源.然而,一般网格任务调度问题已经被证明是一个NP完全问题[1],因此,它引起了众多学者的关注,成为目前网格计算研究领域中的一个焦点[2].在任务调度方面,已有人做了大量研究:最有影响的网格计算项目SETI@home[3]是采用主-从模式任务调度;文献[1,4,5]中指出,在异构网格和分布式并行计算环境下的大部分任务调度问题都是NP难题;讨论树型结构计算环境下的任务调度问题也有一些[6−9],它们都是针对特定问题的各种类型任务的调度,如文献[7,8]讨论了在分布式多层树结构下考虑任务通信延迟的可分任务调度问题;与本文的研究最相近的文献[4]讨论了在异构树型多处理器计算平台下,独立相同任务调度问题的复杂性,并证明了该问题是NP难题,因此,不存在多项式时间复杂性的算法以找到全局最优解.为了获得近优解,存在许多启发式算法[10],如Min-Min[10],Max-Min[10]、遗传算法[11,12]等.然而,本文利用线性规划建模任务调度问题,以获得最优任务分配方案来构造任务分配启发式算法.我们针对在网格资源计算能力和网络通信速度异构的树型计算网格环境下独立相同任务的调度问题进行深入研究和分析,提出将该调度问题转化为线性规划问题,并根据线性规划模型获得网格中各计算节点的最优任务分配方案,然后以最优任务分配方案为基础,构造两种动态的需求驱动的任务分配启发式算法.通过实验与其他任务分配算法的比较,所提出的任务分配算法性能优于其他算法.本文第1节给出本文讨论的问题的描述.第2节分析并给出单层树型结构网格计算平台下任务调度的线性规划模型.第3节重点给出多层树型结构网格计算平台下任务调度的线性规划模型,并分析任务调度实例.第4节给出两个基于最优任务分配方案的任务分配启发式算法.第5节对所提出算法进行实验和比较分析.最后是总结以及对未来工作的展望.1 问题描述本文研究在网络速度和网格计算节点处理能力不同的网格计算平台下的独立任务调度问题,而且该网格计算平台采用层次化树型覆盖网络模型.以树型作为网格计算环境的通信模型,可以简化网格计算的实现,降低节点通信的复杂度,因为各节点只需要负责与父亲和儿子通信,根节点到所有后代节点的路由是唯一的.而且,树型适用于许多编程范型,如主/从、RPC(remote procesdure call)、分而治之等.在树型网格计算平台中,每个网格计算节点有一个或多个儿子节点,但仅有一个父亲节点.我们考虑主/从模型(master-slave)网格任务调度问题,即任务只在根节点处理器产生,并由根节点负责传输任务给它的各个儿子节点.儿子节点接收到任务后,在开始处理任务的同时,继续转发部分任务给它的儿子节点,它接收父亲节点传输任务的同时可以转发任务给儿子,但只能给其中一个儿子节点传输任务,即服从单口模式(single-port model)[12].本文讨论任务调度问题的前提是:1) 树型异构的网格计算平台;2) 考虑任务迁移代价,即任务传输是需要时间的;3) 调度的任务是相同大小的独立任务;4) 一个任务只能由一个节点完成计算,一个计算节点只能同时执行一个任务;5) 采用单口主/从模式的任务调度;6) 所有需要调度的任务都在根节点上输入.图1给出一个由5个计算能力不同的计算节点组成树型网格计算平台下的简单任务调度示例.在该示例中:树的节点权表示节点计算能力,其值为节点计算单位任务所需的单位时间,即计算节点速度的倒数;树的边权表示节点间通信能力,其值为在节点间传输单位任务所需的单位时间,即两节点间网络速度的倒数.在这个调度示例中,在树型网格计算平台执行了5个大小相同的任务,所有这些任务都由担任Master的根节点n0来分配,同时,根节点也可以计算任务.在如图1所示右边的调度图中,垂直虚线表示单位时间,水平虚线表示计算节点,带箭头的水平线表示任务的执行,带箭头的斜线表示任务的传输.该任务调度示例服从单口模式,根节点n0在没2354 Journal of Software 软件学报 V ol.17, No.11, November 2006有完成一个任务传输之前不会启动另一个任务的传输,而且节点n 2在接收根节点n 0传送任务的同时,可以传输任务给一个儿子节点n 3或n 4,根节点n 0和节点n 2在传输任务的同时可以计算一个任务,但不能同时计算两个任务.在该任务调度示例中,调度5个相同大小的独立任务所需的总的执行时间为15.当然,该调度不是最优调度,在本文的后续部分中我们会对其进行更加详细的分析.Fig.1 A tree-based grid computing platform and a task scheduling example图1 树型网格计算平台和任务调度示例2 单层树型结构下任务调度模型2.1 基本模型图2给出了一般的单层树结构网格计算平台,该网格计算环境由k 个计算节点组成:n 0,n 1,…,n k −1,它们计算单位任务所需的时间分别为w 0,w 1,…,w k −1,根节点n 0作为Master,负责传输任务给各儿子节点,但一次只能与一个儿子节点通信,它传输单位任务给各儿子节点所需时间分别为c 0,c 1,…,c k −1.在该单层树型结构网格计算平台下调度M 个大小相等的独立任务,为了使完成任务的总时间最小,根节点n 0需要决定自己计算多少个任务,以及需要传输多少个任务给各儿子节点,以实现一个最优的任务分配.我们可以把该任务调度问题转化为线性规划问题:a) 我们假定每个节点n i 所执行的任务数为x i ,所有节点执行的任务之和应该等于M ,由此约束条件可以得到下面的等式(1);b) 对于任意节点,计算任务个数都小于等于总的任务个数M ,由该约束条件可以得到不等式(2);c) 根节点n 0计算任务的时间应小于等于总的任务完成时间,即有不等式(3); d) 除根节点以外的每个节点n i 计算任务的总时间必然小于等于总的任务完成时间(T )减去该节点最早启动任务计算时间(最早启动任务计算时间:单个任务从根节点到该任务计算节点的传输时间),可以得到下面的不等式(4);e) 因为根节点不能同时给几个儿子节点传输任务,所以它与各儿子节点传输任务的总时间必然小于等于总任务完成时间,即可得到下面的不等式(5);f) 由于我们这里所讨论问题的性质,有式(6).由上面的分析我们可以得到在单层树型网格计算平台下任务调度数学模型如下:Fig.2 A single level tree grid computing platform图2 单层树结构网格计算平台Minimize T 满足:≤⋅−≤≤−≤⋅≤⋅−≤≤≤≤=∑∑=−=, , , , , , )6( )5(11for (4) )3(10for 0 )2( )1(1001均为正整数i i i ij j j i i i i k i i x k w c T M Tx c k i c T x w Tx w k i M x M x林伟伟 等:树型网格计算环境下的独立任务调度2355其中:M ,c i ,w i ,k 均为已知量;x i 为变量;T 表示任务的完成时间;Minimize T 为目标函数.通过上面的分析,我们将单层树任务调度问题转化为上述线性规划问题.容易发现,该模型属于整数线性规划问题.该问题可以由Karmarkar 算法[13]在多项式时间内获得近似最优解,求解结果即为单层树任务调度的最优任务分配方案,即获得每个节点的最优分配任务数. 2.2 任务调度实例考虑一个只有4个计算节点的小型单层树型网格计算环境,各计算节点的计算能力及网络通信速度都不同,如图3所示.如果在该环境下完成8个单位任务,用上述的线性规划模型建模该任务调度问题,结果如下:在使用Linguo 或者Matlab 工具获得该问题的最优解为{x 0,x 1,x 2,x 3}={1,2,2,3}时,T 的最优值为17.Fig.3 A single-level tree grid computing platform图3 一个单层树型网格计算环境Minimize T 满足:. , , , , )7(23 )6(24 )5(35 (4)18 )3(01 )2(8 )1(321032132103210≤++−≤−≤−≤≤=+++均为正整数x x x x T Tx x x T x T x T x T x x x x x 由于该问题涉及的任务数和计算节点个数都比较小,故容易得到一个最优任务调度,如图4所示.图中每个计算节点都有两条时间轴(任务计算和通信):带箭头的粗线表示任务的执行;不带箭头的粗线表示任务通信.由图4可以看出,该最优调度方案为{x 0,x 1,x 2,x 3}={1,2,2,3},任务的总完成时间为18,它与线性规划模型得到最优值17最接近.但是,如果我们给每个计算节点平均分配任务,那么该任务调度总的完成时间至少为20.n 3 n 2n 1 n 0图4 最优任务调度2356 Journal of Software 软件学报 V ol.17, No.11, November 20063 多层树型结构下的任务调度模型3.1 相关符号说明图5为一个多层树型网格计算平台,每个网格计算节点只与父亲节点及其儿子节点通信,各计算节点的计算速度(或计算能力)和各节点之间网络通信速度都异构.下面给出在该平台下进行任务调度所用到概念的符号说明.(1) N ={n 0,n 1,…,n k −1}表示树型网格计算平台的网格计算节点(或称为树节点)集,其中,k 为树的节点总个数;(2) x i 表示给树节点n i 安排的任务数;(3) w i 表示树节点n i 计算单位任务所需要的时间,即网格计算节点处理任务的速度的倒数;(4) c i 表示节点n i 的入边传输单位任务所需要的时间,即节点n i 的入边的任务传输速度的倒数;(5) M 表示需要调度任务的总个数;(6) N ′表示树中的非叶子节点集,则有N ′⊂N ; (7) s i 表示节点n i 的最早启动任务计算时间;(8) Y i 表示节点n i 的后代节点的序号集,其中n i ∈N ; (9) Z i 表示节点n i 的儿子节点的序号集,其中n i ∈N .Fig.5 A multi-level tree grid computing platform图5 多层树型网格计算平台3.2 多层树型结构下的任务调度模型前面的单层树型结构计算平台下的任务调度相对比较简单,然而,它的一些结论可以用于多层树中.当然,两种环境下的任务调度也有不同之处:a) 首先,在多层树结构任务调度中,除了根节点外,其他非叶子节点不但要计算任务,而且同时可以传输任务给它的儿子节点;b) 对于多层树中的每个中间节点,需要考虑其任务到达的速度,即在一定的时间范围内,它所获得的任务应该等于其己身计算的任务数与传输给儿子节点的任务数之和;c) 在单层树结构中,我们只需要考虑从根节点到各儿子节点的带宽分配情况,而在多层树结构中,需要考虑每一个子树中带宽分配问题,即任意一个非叶子节点传输任务给它的儿子的总时间是一定的;d) 每个节点的最早启动任务计算时间(S i )应该是父亲节点的最早启动任务计算时间加上它与父亲节点传输单位任务的时间,因此,每个节点计算任务的时间的约束条件式必须修改为下面的线性规划模型中的不等式(4).由a),b)和c)可知,在多层树型结构的任务调度中,每个子树都有一个带宽分配的约束条件,因此有不等式(5).下面以树根节点所在的子树为例进行分析,树根节点分配给所有儿子节点的传输任务的时间之和应小于等于总的任务完成时间T ,其 中:树根节点分配给每个儿子的传输任务的时间为任务传输速度的倒数与传输任务个数的乘积,可以表示为,其中:Z ∑∑∈∈+⋅0Z j Y p p j j j x x c +∑∈j Y p j x x 0为根节点n 0的所有儿子节点的序号组成的集合;Y j 为节点n j 所有后代节点的序号组成的集合,为根节点np 0传输给儿子节点n j 的任务数,x j 为儿子节点n j 计算的任务数,为儿子节点n ∑∈jY p p x j 的后代节点计算的任务数总和.由上面的分析我们可以得到多层树型结构网格计算平台下任务调度的数学模型如下: Minimize T 满足:林伟伟 等:树型网格计算环境下的独立任务调度2357, , , , , , )6(for )5(10for (4) )3(10for 0 )2( )1(1001′∈∀−≤+⋅−≤≤−≤⋅≤⋅−≤≤≤≤=∑∑∑=∈−=均为正整数i i i ii i j Y p p j j i i i i k i i x k w c T M N n s T x x c k i s T x w Tx w k i M x M x j 其中:M ,w i ,c i ,S i ,Y i ,Z i 均为已知量;x i 为变量;T 表示任务完成时间;Minimize T 为目标函数.上面的整数线性规划问题的求解与单层树任务调度模型相同,它可以在多项式次时间内得到近似最优解,所获得的近似最优解即为多层树任务调度的最优任务分配方案. 3.3 任务调度实例考虑如图1所示的由5个计算节点组成的树型网格计算平台下的任务调度问题.用上面的线性规划模型求解该任务调度问题,我们可以得到下面的整数线性规划问题.如果在该环境下调度任务数M 为8和50,则可以很容易地获得两个任务调度问题的最优解,分别为:{x 0,x 1,x 2,x 3,x 4}={1,1,2,2,2},最优值T 为17;{x 0,x 1,x 2,x 3,x 4}= {7,9,12,8,14},最优值T 为77.Minimize T 满足:. , , , , , , )9(33 )8()(2 )7(55 )6(37 )5(26 (4)18 )3(01 )2( )1(43210434321432103210−≤+≤+++−≤−≤−≤−≤≤=+++均为正整数x x x x x M T T x x T x x x x T x T x T x T x T x M x x x x 4 基于最优任务分配方案的任务分配启发式算法经过前面的讨论,我们容易建立树型网格计算平台下任务调度的线性规划模型,且求解线性规划模型可以获得最优任务分配方案,即获得各节点的最优任务分配数.然而,各父亲节点具体以什么顺序或优先级给多个儿子节点分配任务仍然无法确定,寻找该问题的最优任务分配算法是NP 难题.但是,可以构造基于最优任务分配方案的任务分配启发式算法,即以最优任务分配数为启发信息来实现任务分配算法.下面给出基于最优任务分配方案的两个启发式算法:计算速度优先启发式算法(optimization-based priority-computation heuristic algorithm for task allocation,简称OPCHATA)和带宽优先启发式算法(optimization-based priority-bandwidth heuristic algorithm for task allocation,简称OPBHATA).在给出OPCHATA 和OPBHATA 算法之前,需要实现两种算法:一种是模型预处理算法PREModel,用来获得模型中需要的节点计算能力和节点间的通信能力.考虑到网格节点的动态性和异构性,在每批任务调度之前采用相对量化的方式来获得当前网格环境所有节点的计算能力和节点间的通信能力.PREModel 算法的具体实现是:在调度每批任务之前,将单位任务在树型网格环境的各节点上执行,以获得当前各节点的相对计算能力;将单位任务在树型网格环境的所有边上传输,以获得当前各节点间的相对通信能力;另一种是模型求解算法SoveModel,用来求解任务分配的线形规划模型,它可以参照Karmarkar 算法来实现.2358 Journal of Software软件学报 V ol.17, No.11, November 20064.1 计算速度优先启发式算法该启发式算法首先使用PREModel和SoveModel算法求得每个节点的最优任务分配数,然后按照最优任务分配数和节点计算能力来优先为节点分配任务,即对于每个非叶子节点:当有儿子节点的任务请求时,首先检查该儿子节点是否还有未分配的任务,如果有,则分配一个任务给它;当有多个儿子节点的任务请求时,首先检查这些儿子节点是否还有未分配的任务,然后按照计算节点的计算速度以从大到小顺序来分配任务,即按照w i从小到大的顺序来确定任务分配优先级.该算法的伪码描述如下:Procedure task_assign_OPCHATA()//节点n i为根的子树任务分配算法PREModel()//模型预处理算法,只需在总根节点n0部署SoveModel()//模型求解算法,只需在总根节点n0部署GetNodeTaskNum()//从树根节点获得各节点任务分配数InitNodeTaskNum(array)//初始化子树各节点任务分配数While (Receive_task())//当从父亲节点收到任务时Add_task(Queue)//将新任务放到队列中End WhileWhile (Receive_REQ())//当收到儿子节点任务请求时Add_req(Queue2(n x))//将任务请求放到队列中End WhileIf (Exist_task(Queue1))//任务队列是否存在任务If (array(n i)>0)//节点n i是否有未分配的任务Execute_task(Queue)//执行一个任务End If//给请求任务的各儿子节点分配任务Select_compute(Queue2(n x))//从任务请求队列中选择计算能力最大的节点If (array(n x)>0)//该节点是否有未分配的任务TransTask(n x)//传输任务给节点n xDel_req(Queue2(n x))//删除任务请求End IfElse//发送任务请求给父亲节点,树根节点则不需要Send_req(n i)End IfEnd4.2 带宽优先启发式算法与第1种启发式算法不同的是,当有多个儿子节点的任务请求时,首先检查这些儿子节点是否还有未分配的任务,然后按照计算节点与父亲节点的网络通信速度以从大到小的顺序来分配任务,即按照c i从小到大的顺序来确定任务分配优先级.该算法的伪码描述如下:Procedure task_assign_OPBHATA()//节点n i为根的子树任务分配算法…//与OPCHATA算法内容相同//给请求任务的各儿子节点分配任务Select_bandwidth(Queue2(n x))//从任务请求队列中选择与根节点n i网络通信速度最大的节点…//与OPCHATA算法内容相同End林伟伟 等:树型网格计算环境下的独立任务调度23595 实验与结果5.1 相关算法为了验证所提出的基于最优任务分配方案的任务分配启发式算法(OPCHATA 和OPBHATA)的性能,需要与其他任务分配算法进行比较.在同类算法中,Min-Min 算法具有较好的性能,常用作调度算法的评测基准[5,10],因此,本文另外设计了两种任务调度算法:FCFS 算法和Min-Min 算法.FCFS 算法使用所有网格计算节点,其思想是:按照任务请求的到达顺序给各儿子节点分配任务,即先请求任务的先获得任务.该算法可能使各节点获得的任务数与最优任务分配方案求解的结果不一致.Min-Min 算法使用所有网格计算节点,其思想是:尽量把更多的任务分配到执行它的速度最快并能最早完成它的机器上,当任务请求队列有多个任务请求时,首先给计算速度最快的节点分配任务. 5.2 实验方法与结果本文采用SimGrid [14]来模拟和实现以上4种任务分配启发式算法.SimGrid 提供了一系列核心函数,用以建立和模拟异构分布计算环境,并能满足特定应用需求和实现多种算法,特别适合于网格任务调度的模拟和研究.我们分别模拟了3个树型网格计算平台:(1) 图2描述的由4个节点组成的单层树型网格计算平台;(2) 图1描述的由5个节点组成的2层树型网格计算平台;(3) 图6由8个节点组成的4层树型网格计算平台.然后,在这3个平台上分别用FCFS,Min-Min,OPCHATA,OPBHATA 这4种算法实现10个、50个、250个、1250个相同大小独立任务的调度,任务执行完成的时间分别如图7、图8和图9所示.FCFS Min-Min OPCHATA OPBHATAFig.7 The results of task scheduling on the single-leveltree grid computing platform图7 单层树型网格计算平台下的任务调度结果Fig.6 A multi-level grid computing platform图6 3层树结构网格计算环境FCFS Min-Min OPCHATA OPBHATANumber of tasksNumber of tasks Number of tasksFig.8 The results of task scheduling on thetwo-level tree grid computing platform 图8 2层树型网格计算平台下任务调度结果Fig.9 The results of task scheduling on the three-level tree grid computing platform 图9 3层树型网格计算平台下任务调度结果2360 Journal of Software 软件学报 V ol.17, No.11, November 2006为了验证所提出的模型和算法的普遍性,随机生成具有50个不同拓扑结构的树型网格计算平台,其中:树节点数在[2,20]范围内;节点权的值在[10,50]范围内;边权的值在[1,10]范围内.然后,在这些平台上分别用FCFS, Min-Min,OPCHATA,OPBHATA 这4种算法实现1 000个单位任务的调度,任务执行完成时间如图10所示.2520151050N u m b e r o f n o d e sFCFS Min-Min OPCHATA 0 5000 10000 15000 20000Execution time (s)Fig.10 The experimental results of task scheduling on random tree-based grid computing platforms图10 多个随机树型网格计算平台下任务调度的实验结果5.3 实验结果的分析由实验测试结果(如图7~图10所示)可以得出下面的结论:1) 在3种模拟网格计算平台下完成独立任务调度,OPCHATA 和OPBHATA 算法的总完成时间小于FCFS 和Min-Min 算法,特别是当调度的任务数量比较大时,OPCHATA 和OPBHATA 算法性能明显优于FCFS 和Min-Min 算法.也就是说,本文提出的基于最优任务分配方案的任务分配算法有明显优势.2) 在如图6所示的8个节点组成的3层树型网格计算平台下进行任务调度时,4种算法的总处理时间比较接近,这是因为带宽对调度结果的影响.也就是说,当网络通信速度相对于任务计算速度比较快时,4种算法的性能较为接近;反之,当带宽非常有限时,由于OPCHATA 和OPBHATA 算法只使用通信速度快的计算节点,结果实现更好的调度,因此性能更加优于FCFS 和Min-Min 算法(如图7和图8调度结果).3) 从3个平台下的实验结果还可以看出,OPBHATA 性能略优于OPCHATA 算法,说明网络通信速度对任务调度结果的影响更大.因为OPBHATA 算法尽量给网络通信速度快的节点优先分配任务,所以性能更好.4) 图10的结果显示,在随机产生的多个不同结构的树型网格计算平台下进行任务调度时,本文所提出算法的性能普遍优于FCFS 和Min-Min 算法,说明了本文给出的任务调度模型和算法的普遍性. 5.4 算法评价PREModel 算法需要在n 个节点上循环执行单位任务,并在这些节点间传输单位任务,因此,它的时间复杂度为O (n ).SoveModel 算法是参照经典线性规划求解算法Karmarkar 算法[13]实现的,所以其时间复杂度为O (n 3.5L ),其中n 为计算节点个数,L 为线性方程组输入的规模.对于OPCHATA 和OPBHATA 算法,由于每个非叶子节点的最大分配任务数为m ,从请求任务的节点队列中选择一个节点任务最多需要n 次,因此,OPCHATA 和OPBHATA 算法的时间复杂度为O (n 3.5L +mn ),其中n 为主机数量,m 为需要执行的任务数量.与Min-Min 算法(调度m 个大小相同任务,其时间复杂度为O (mn ))相比,OPCHATA 和OPBHATA 算法的时间复杂度要高一些,但当 m >n 2.5L (任务数量比较大)时,它们的时间复杂度比较接近.而且,在网格环境下,任务粒度一般比较大,与任务的执行时间相比,任务调度算法的执行时间经常可以忽略.另一方面,OPCHATA 和OPBHATA 算法考虑带宽限制对任务传输时间的影响,通过线形规划模型获得最优的任务分配方案;而且在网格环境下,任务的传输时间往往对任务的最终完成时间有很大影响.因此,它们与Min-Min,Max-min,FCFS 算法相比,能够获得更好的调度性能.6 结束语为了提高网格计算的性能,高效的任务调度和分配算法是其中一个主要途径.本文讨论了在异构树型网格计算环境下独立任务的调度问题,通过对该调度问题的深入研究和分析,针对单层和多层树型网格计算平台下的最小总任务处理时间的任务调度问题分别建立了线性规划模型,并通过求解线性规划模型获得最优任务分配方案,即获得网格中各计算节点最佳的任务分配数,然后提出基于最优任务分配方案的两个启发式算法:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能网格计算环境下的任务调度算法研究
智能网格计算环境是指一个由分布式计算资源组成的计算环境。

在这个环境中,不同的计算任务会被分配给不同的计算节点,由
这些计算节点共同完成计算任务。

然而,在这样的计算环境中,
如何有效地调度这些计算任务,以达到最优的计算效果,一直是
一个非常重要的研究课题。

任务调度算法是一种将计算任务分配给不同计算节点的策略。

这个算法需要根据不同的任务特性和计算节点的资源情况,把计
算任务分配给最优的计算节点。

在智能网格计算环境中,任务调
度算法的效率对于整个计算过程的效率和性能非常重要。

任务调度算法的类型
目前有很多种任务调度算法,这些算法可以分为静态调度算法
和动态调度算法两种类型。

静态调度算法通常是在整个计算过程开始之前进行预调度。


种算法通常可以分为两种类型:基于规则的静态调度算法和基于
优化的静态调度算法。

基于规则的静态调度算法是指通过一定的
规则和约束条件将计算任务分配给不同的计算节点的算法。

而基
于优化的静态调度算法则是在保证符合一定的限制条件下,以最
佳的资源利用率为目标,设计出最优的任务分配方案。

动态调度算法则是在计算过程中进行的调度。

这种算法主要根
据不同的计算任务的特性,计算资源的情况以及其他相关因素进
行调度,以保证整个计算过程的效率和性能。

这种算法的优势是
可以动态地根据情况进行调度,但是缺点是需要大量的计算资源
来完成调度算法本身的计算。

常用的任务调度算法
目前,常用的任务调度算法主要可以分为两类:静态调度算法
和动态调度算法。

静态调度算法的优点是可以事先通过一定的规则和算法进行计算,从而获取最优的任务分配方案。

然而,该类算法的局限之处
在于对于计算环境中某些未预测到的情况,无法进行适应性调整。

动态调度算法则是一种更加自适应和动态的调度方式。

这种算
法可以根据当前计算环境的实际情况,及时调整任务分配方式,
从而提高整个计算过程的效率。

但是,动态调度算法需要更加复
杂的计算,因此需要相应的计算资源和算法复杂性的支持。

在静态调度算法中,基于遗传算法的静态任务调度算法是比较
常见的一种方法。

遗传算法是一种通过模拟自然进化方式来解决
优化问题的方法。

该算法通过模拟优胜劣汰,进化筛选等遗传原理,不断地迭代优化,最终得到最优的任务分配策略。

而在动态
调度算法中,入侵式蚁群算法是比较常见的一种方法。

该算法是
一种模拟蚂蚁寻找食物路径的生物进化算法。

该算法通过不断的搜索和进化,保证在计算过程中及时发现最优的任务分配方案。

总结
智能网格计算环境下的任务调度是一个非常重要的问题。

不同的任务调度算法在该领域中发挥着不同的作用。

静态调度算法可以预测整个计算过程中的情况,并根据规则和条件进行优化,而动态调度算法则可以更加灵活地适应计算环境的实际情况。

在实际应用过程中,需要根据不同的计算需求选取最合适的任务调度算法。

未来,随着大数据、物联网等技术的快速发展,智能计算环境将进一步发展壮大。

对于任务调度算法的研究和优化,将在智能计算领域中发挥越来越重要的作用。

相关文档
最新文档