1、 华中科技大学博士学位论文任务间相互依赖的并行作业调度算法研究姓名:马丹申请学位级别:博士专业:计算机软件与理论指导教师:李庆华20070501华中科技大学博士学位论文行化研究并不是很多,因为调度算法本身固有的串行性。尽管静态启发式调度算法的时间复杂度较低,但在任务规模过大的情况下算法所花费的时间也可能很可观。根据串行算法 LBP 各步骤中数据和操作的相关性,提出了算法 LBP的并行算法PLBP,理论证明算法 PLBP与 LBP具有相同的调度性能,与文献中已有的并行化调度算法 HPMCP及 PBSA 相比,算法 PLBP的时间复杂度更低。静态调度算法受限于 DAG中各参数必须在调度之前完全获取
2、的前提条件,而在实际科学计算中这一前提并不能得到满足,DAG中任务参数一般是在其父任务执行完成时才能实例化,即 DAG中各任务是边调度边执行的。在分析已有几种典型的动态调度算法基础上,采用 DAG的参数化模型 PTG(Parameterized Task Gr aph),并对建立在 PTG模型上的动态调度算法 PTGDS进行研究,在任务调度的同步性和调度策略等方面对其进行改善,并把静态调度算法 LBP的思想融入其中,提出了改进的并行作业动态调度算法 IPTGDS。并在理论上分析算法 IPTGDS是可行的,同时试验结果说明算法 IPTGDS与 PTGDS 相比调度性能更优。把研究的基于 DAG的
3、静态调度算法和动态调度算法的成果引入到实时系统中,建立了异构环境下的动态实时调度模型,在此模型上提出了动态最早完成优先算法DEFF;同时,对实时环境下的动态调度经典算法近视算法进行分析,借鉴近视算法中的回溯思想,提出了基于有限回溯的动态调度算法 BBDS,算法 BBDS 与近视算法的不同在于:近视算法针对元任务集而算法 BBDS是针对 DAG 任务集;算法 BBDS比近视算法对回溯的控制更严格和精确;算法 BBDS采用的评估函数比近视算法有改进。为了适应实时系统单机失效容错的要求,在算法 BBDS的基础上设计了容错版本FTBBDS。理 论证明算法 BBDS和 FTBBDS的时间复杂度均较低,即
4、 O(nm3);并在仿真试验的条件下,对几种主要参数影响算法 DEFF、 BBDS和 FTBBDS调度成功率的变化情况进行了比较。关键词:任务调度算法,DAG模型,静态调度,动态调度,实时系统,容错,并行与分布式计算II华中科技大学博士学位论文AbstractThe parallel computing mode called as workstation cluster is undoubtedly animportant research focus in parallel and distributed computing field. At the same time, thepara
5、llel computing environment is expanded to wide area network from local area networkwith the development of internet technology. A new parallel and distributed computingmode named as grid computing based on the internet is becoming as popular as theworkstation cluster. However, how to schedule the ta
6、sks of the parallel job is a key factorwhich affects the successful implement of the workstation cluster or gird computing. Sothe studying on the algorithms of multi-processor or multi-computer task scheduling ismeaningful for both of theory and practicality.The problem about the task scheduling of
7、the parallel job has been studied for a longtime since the concept of the parallel processing and the parallel computing. The researchresults achieved by anterior scholars show that almost the task scheduling of parallel jobsis a NP-hard problem even under the simple model. So that acquiring an opti
8、mal solutionabout the task scheduling problem of the parallel jobs is unpractical under the premise ofthe acceptable time complexity. Reversely, the heuristic task scheduling algorithm is beingwidely adopted because it has many good attributes such as easy implement, niceperformance and low time com
9、plexity. Based on the existed classical algorithms, wepresents a series of the task scheduling algorithm include the static compile-timescheduling algorithm, the dynamic runtime scheduling algorithm and the real-timescheduling algorithm.The DAG(Directed Acycle Graph)model is adopted to describe the
10、relation betweentasks of parallel job in all proposed heuristic algorithms. This kind of model has bettercapacity to illuminate the actual state of parallel job than the other model. The factor ofdifferent processing capacity of CPU is also considered in proposed algorithms.III华中科技大学博士学位论文First, two
11、 classical static task scheduling algorithms HEFT and CPOP inheterogeneous environment are investigated and analyzed. Based on these we propose anew static scheduling algorithm LBP in which the tasks level and branches are regardedas the task priority. At present the almost static heuristic scheduli
12、ng algorithms includeHEFT and CPOP are list scheduling algorithm based on the critical path. But under theheterogeneous environment the tasks on the critical path are not always the urgent task. Sothe algorithm LBP abandons the idea about the critical path and considers the task leveland branches as
13、 the task priority. The theory proved and experiments show that thealgorithm LBP has not only the same time complexity as the algorithm HEFT and CPOPbut also better scheduling performance than them.Otherwise, the algorithm LBP has natural parallel characteristic. Because the taskscheduling algorithm
14、 is commonly inherent serial algorithm the study on the parallelizingof the static task scheduling algorithm is not often seen. Although the time complexity ofthe static heuristic scheduling algorithm is often lower, it may cost so much time toschedule the task when the scale of DAG is great. Accord
15、ing to the relativity of data andoperations in the algorithm LBP steps, we propose the parallel algorithm edition PLBP ofthe serial algorithm LBP. The algorithm PLBP has same scheduling performance as LBPproved by the relevant theory. Compare to the parallel scheduling algorithm HPMCP andPBSA in the
16、 literature, the algorithm PLBP has lower time complexity.Then, the static scheduling algorithm is limited to the premise that all parameters oftasks in DAG must be obtained before the task being scheduled. But this demand couldntbe satisfied in the scientific computation because the task parameter
17、is only instantiatedafter its all father tasks are finished. So scheduling and executing of each task in DAGgo along alternately. Analyzed on some classical dynamic scheduling algorithms, weemphasize the study on the dynamic scheduling algorithms PTGDS built on the model ofPTG (Parameterized Task Gr
18、aph). The idea of the algorithm LBP is taken in and thealgorithm PTDGS is improved at both of synchronization of task scheduling andIV华中科技大学博士学位论文scheduling strategy. Ground on these we present the dynamic task scheduling algorithmIPTGDS of parallel job. The algorithm IPTGDS is proved to be valid an
19、d the results ofsimulation test show that the algorithm IPTGDS has better scheduling performance thanPTGDS.Finally, some successful ideas of static and dynamic task scheduling algorithms basedon DAG are introduced to the real-time processing system. A dynamic real-time taskscheduling model is built
20、under the heterogeneous environment. Ground on it a dynamicreal-time scheduling algorithm DEFF is proposed. At the meantime, a classical dynamicreal-time scheduling algorithm called the myopic algorithm is investigated. We presentanother new dynamic real-time scheduling algorithm BBDS base on the re
21、strictedbacktracking according to the backtracking idea of the myopic algorithm. The algorithmBBDS differs from the myopic algorithm at: the myopic algorithm aims at the independenttask set and the algorithm aims at the DAG; the algorithm BBDS has more precise andstrict backtracking control than the
22、 myopic algorithm; the evaluation function adopted bythe algorithm BBDS is improved. For the sake of meeting the fault-tolerant need of thereal-time processing system, a fault-tolerant edition FTBBDS of the algorithm BBDS isdesigned. The theory proved shows that the time complexity both of the algor
23、ithm BBDSand FTBBDS is O(nm). In the simulation tests, several main parameters which affect the3scheduling success ratio of the algorithm DEFF, BBDS and FTBBDS are compared andanalyzed.Key words: task scheduling algorithm, directed acycle graph, static scheduling, dynamicscheduling, real-time system
24、, fault tolerant, parallel and distributed computingV独创性声明本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除文中已经标明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。学位论文作者签名:日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:学校有权保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权华
25、中科技大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。保密, 在 年解密后适用本授权书。本论文属于不保密。(请在以上方框内打“”)学位论文作者签名: 指导教师签名:日期: 年 月 日 日期: 年 月 日华中科技大学博士学位论文1绪论1.1 研究目的无论在多处理器系统、分布与并行系统以及集群系统,还是在目前引起广泛关注的网格计算系统中,并行作业的任务调度无疑是一个非常重要的问题,任务的不恰当调度会或多或少抵消并行化所带来的收益。本文的主要目的就是从几个不同的角度来研究并行作业的任务调度问题。(1)以追求整个并行作业执行时间最小为
26、目标的任务调度问题是一个强 NP难问题,而静态启发式调度算法是一种有效的近似最优解法,基于关键路径的静态启发式算法是其中最有代表性的一类算法,但这种算法并不很适合异构环境。本文尝试提出一种新的基于层次的静态启发式任务调度算法,它不仅适合异构环境,而且为算法的并行化提供了方便。以提出的串行调度算法为基础,对静态启发式调度算法进行了并行化研究,在理论模型 PRAM上提出了一种新的并行调度算法。(2)静态启发式调度算法毕竟是建立在许多假设的前提上,其中最主要的假设是在并行程序编译时就知道或估计到每个子任务的计算量和通讯量,这在现实中是很难实现的,所以静态调度算法存在一定的缺陷。而目前的动态实时调度算
27、法大多是调度独立任务集合的,较少像静态调度算法那样考虑任务之间的数据相关性。本文提出了一个基于参数化 DAG模型的动态任务调度算法,使调度理论及算法与实际应用更为靠近。(3)研究了动态实时任务调度器模型,提出了相应的动态实时调度算法及容错版本。网格计算的出现为并行作业的调度提出了新的要求,网格环境中的任务调度不仅要满足动态实时性及异构性的要求,而且其软件容错机制也是必须考虑的因素。1.2 研究背景及意义1华中科技大学博士学位论文现代科学的研究步骤一般由观察、理论、实验和数值模拟来验证,随着计算机技术的发展,数值模拟手段已经越来越受到各个领域科学家的青睐。但是,许多重要科学问题的数值模拟非常复杂
28、,需要高性能计算机或多计算机系统如 MPP、SMP、集群或计算网格才能求解。这些复杂的问题常被视为对科学的巨大挑战。这些挑战性问题涉及到以下领域:量子力学,统计力学,相对论物理宇宙学和天文物理计算流体力学和湍流材料设计和超导性生物学、药理学、基因序列、遗传工程、蛋白质结构、酶活动和细胞建模药物研制,人体器官和骨骼建模全球气候和环境模拟以全球海洋环流的数值模拟为例:美国俄亥俄州立大学的海洋学家正在从事的一项研究工作,他们的目标是搞清南部海洋怎样将热量送到南极,作为解释全球气候变暖的一个重要步骤。为了获得精确的结果,科学家们计划把海洋从东到西分为 4096个区域,从北到南分为 1024个区域。此外
29、,他们还把海洋分为 12层,较深层的海水有较大的密度。总体来说,他们的海洋模型有大约 5千万个三维单元。在此模型上对10分钟海洋环流的一次迭代模拟,大约需要 30万亿次浮点运算,而海洋学家们想用这个模型模拟数年的海洋环流。另外一个例子来自分子动力学。模拟蛋白质和它周围水分子之间一微微秒的交互作用大约需要 Gr ayx/ MP一小时的时间。而有有意 义的实际物理过程几乎经历一秒钟。在同样的机器上使用同样的算法模拟这样的物理过程,将需要 31688年。显而易见,类似于上述规模较大的问题不是常规的计算机能求解的,需要高性能计算机或多计算机系统来求解。如何才能提高计算机的性能呢?一般采取两种方法:一是
30、提高电子器件的速度来提高计算机的性能,但这种方法受到了光速与物理尺寸的限制;另一种方法是从计算机的体系结构方面引进并行处理和并行计算技术。实践证明,并行处理和并行计算技2华中科技大学博士学位论文术是进一步提高计算机性能的一种重要手段,也代表着未来计算机技术的一种发展趋势。所以并行处理与并行计算技术一直是当前计算机科学与应用中的研究热点。无论是使用由工作站或个人机组成的集群还是使用由异构的超级计算机集合组成的网格来进行并行计算,对由大型应用分解所得的并行任务进行调度都是关系到应用程序运行性能好坏的关键问题,尤其是在异构环境中对于计算密集型的并行应用。所以,在分布式并行环境或在网格环境中并行作业的
31、任务调度问题是一个关乎并行计算成败及收益大小的举足轻重的问题,几十年来,许多计算机科学研究者乐在其中,大量关于并行作业任务调度的研究文献不断涌现就足以证明并行作业任务调度问题的重要性和必要性。1. 3 问题的定义及分类并行作业任务调度可以定义为一种机制或者策略,利用这种机制或策略能够有效地管理、使用及访问系统时序上和空间上的资源,前提条件是不违反任务间优先关系限制和超越任何资源成员的能力。一般来说,并行作业任务调度问题可以划分为多处理器调度和多计算机调度问题。所谓多处理器调度指调度研究局限于多处理器硬件环境中,在该环境中所有处理单元是同构的,网络结构能保证对每个处理器的访问时间是相似的而不管各
32、个处理器上执行的任务是否相同。这种环境又称为对称多处理器,即所有处理器有相同的处理能力及访问外设的能力。处理器之间的通讯采用共享内存的方式,可以是一致性内存访问(UMA),也可以是非一致性内存访问(NUMA ),或者是缓冲式内存访问(COMA )。文献中涉及到此类的并行作业任务调度算法往往假设零通讯延迟,并且有不受限制的资源可用。多计算机调度是指在多计算机体系结构中的调度问题,传统的多计算机体系结构由许多个同构或异构的处理器组成,每个处理器带有自己独有的内存等资源,计算机之间采用交换网络或消息传递网络连接,消息传递网络在计算机之间提供了点到点的通讯方式。并行作业任务调度研究领域中绝大多数调度算
33、法属于该类范围,几乎所有的该类算法假设资源是不受限制的,它们通常会考虑任务间的通讯时间。本文3华中科技大学博士学位论文所讨论的并行作业任务调度问题即属于该类范畴。并行作业任务调度问题一般可由两个处理相来描述:一个处理相是任务分配相,亦称任务映射相,即如何把并行任务分配(或映射)到多个处理器上哪一个任务被分配(或映射)到哪一个处理器上;另一个处理相是任务调度相,即在某一个处理器上,如何对分配到其上的所有任务在时序上进行排序。需要说明的是这两个处理相只有逻辑上的关系,并没有时态上的先后关系,在时序上并不要求任务调度相一定要在任务分配相完成后才能进行,它们可以重叠进行。并行作业任务调度所追求的目标并
34、不是唯一的,有的追求目标是使整个作业在最短的时间内完成;有的追求目标是使各个处理器上的负载最均衡;而对于实时作业,可能追求的目标是满足截止期要求。本文所讨论的并行作业任务调度问题的目标主要局限于大多数情况下追求的目标,即使整个作业在最短时间内完成(亦称追求最小的 makespan),当然对实时系统必须先满足截止期的条件。1. 4相关研究1.4.1 任务调度的 NP完全性一般来说,除了三种已知的简单情形以外,并行作业任务调度问题是一个NP完全难题。这三种特殊的情形为:一、任务图为树型结构(in tree或者out tree),所有任务的计算成本为单位长度,处理器个数为任意数目1;二、任务图为间隔
35、序结构(intervalorder),所有任务的计算成本是相等的, 处理器个数为任意数目;三、任务图为任意结构,所有任务的计算成本为单位长度,但处理器个数限制为两个。对第一种情形,Hu 2提出了一个线性时间复杂度的最优 解;对第二种情形,C. H.Papadimitriou等证明了花费O(n e)时间可以得到最优解(n代表任务节点的个数,e代表任务图中边的个数);对第三种情形,Coffman等3提出了O (n4)时间复杂度(n代表任务节点的个数)的最优解,随后Sethi4对Coffman的算法进行了改进得到了O(n2)时间复杂度的最优解。上述三种情况都没有考虑任务节点之间的通信情况。4华中科技
36、大学博士学位论文另外在一些限制条件下基于任务复制的调度算法也可以得到非指数时间复杂度的最优解。相反,Ullman5证明了把单位长度计算成本的任 务图调度到 P个处理器的问题以及调度任务计算成本限于一个或两个单位组成的任务图到两个处理器的问题都是 NP完全问题;Papadimitriou等6证明了即使允许任务复制的前提下调度单位长度计算成本的任意任务图到 P个处理器的问题也是 NP完全问题。表 11列出了不同情况下(不包括任务复制的情况)并行作业任务调度问题的时间复杂度或 NP完全性。表 11不同情况下(不包括任务复制的情况)并行作业任务调度的时间复杂度或 NP完全性处理器总数 任务处理时间Ti
37、任务图结构最优解的时间复杂度(n任务节点总数,e 边的总数)mm Ti=1 树结构任意结构间隔序结构任意结构任意结构任意结构O(n)O(n2)2 Ti=1m Ti=1 O(n e)NP完全NP完全NP完全m Ti=1m=2mTi=1或 Ti=2Ti=任意值1.4.2 任务调度的启发式算法并行任务调度方法按照不同的定义有不同的分类。按照时间来分,即按调度决策何时确定进行分类,调度方法可以分成两大类:编译时调度和运行时调度。按照调度决策在具体执行时是固定不变还是可以变化的,则调度方法又可以分成两类:静态调度和动态调度。将上述两种主要分类方法综合起来,又可以细分成:编译时静态调度(一般简称静态调度)
38、、运行时动态调度和运行时静态调度。运行时调度的优点体现在于:有关应用的信息不必提前知道而只需在其实时执行时了解即可,可以实时考虑资源的可用性。动态调度的优点则更进一步,它能够在实时执行时响应资源可用性的5华中科技大学博士学位论文变化和任务负载的分布而对调度决策作出调整。运行时调度的缺点也是显而易见的,即其开销较大。另一方面,编译时静态调度方法一般具有开销较低的优点,但它需要在编译时精确地知道有关应用和资源可用性的信息。1.4.2.1 编译时静态调度(静态调度)无疑,编译时静态调度首先是一个静态调度过程。绝大多数此类调度方法关注于并行任务图的调度,所谓并行任务图是以图论为基础的对具体并行应用进行
39、适当抽象形成的调度模型。任务图的基本原则是必须反映精确的计算和通信成本,任务图中节点代表计算成本而边则代表通信成本。编译时静态调度方法是一类被研究最为广泛的方法,因此形成了许多调度技术及其算法。下面就其几种较为典型的技术及算法分别介绍。在具体介绍各种并行任务静态调度算法之前,先讨论一下几种基本的静态任务调度技术。表(List)调度表调度的基本思想是通过对任务节点的优先级别进行排序来构造一个调度列表,然后重复以下两个步骤直到任务图中所有节点被调度完毕:1)、从调度列表中顺序取出一个节点;2)、将节点分配到使它的启动时间最早的处理机器上。这是传统的静态表调度算法,一些新的表调度算法是基于动态列表的
40、调度算法,与静态方法调度列表一经构造就不会改变不同,动态列表算法在每次分配节点之后都重新计算所有未被调度节点的优先级别,并根据新的优先级别来重新安排列表中节点的顺序。这样,动态表调度算法实际分为三步:1)、确定所有未被调度节点的新优先级别;2)、选择具有最高优先级别的节点进行调度;3)、将节点分配到使它的启动时间最早的处理机上。决定节点优先级别的方法很多,有 HLF(Highest Level First)、LP(Longest Path)、CP(Critical Path)和 LPT( Longest Processing Time)等。基于任务复制的调度基于任务复制调度算法的思想主要是在一
41、些处理器上冗余地映射任务图中的一6华中科技大学博士学位论文些任务以达到减少处理器之间通信开销的目的。也就是说,它利用处理器的空闲时间复制前驱任务,这样可以避免某些前驱任务的通信数据的传输,从而减少处理器等待的时间间隙。根据选择复制任务的不同策略可以形成不同的基于任务复制的调度算法,一些算法仅仅只复制直接前驱任务,而有些算法复制所有可能的前驱任务。与其它的调度技术相比,该类算法有比较高的时间复杂度,同时大多数情况下要求不受限制的处理器数目。但它可能得到最优解。基于任务聚类(Cluster)的调度该类算法的基本思想就是把给定任务图的所有任务映射到数量不受限的任务聚类上。在算法的每一步,选择进行聚类
42、(Clustering)的任务可以是任何任务而不必是一个就绪的任务。在每个聚类循环中就是把上一步的一些聚类合并成为新的聚类。如果两个任务分配到同一个聚类,则表示它们在同一个处理器上执行。除了执行聚类的步骤外,算法还必须对完成映射的聚类进行最后的“调度”即对聚类中的任务在每个处理器上进行时间先后排序。如果处理器数目有限,在聚类步骤中还必须考虑使聚类的数目与可用的处理器数目相等。非确定性调度非确定性调度技术又称为随机搜索技术,它主要是通过有导向的随机选择来搜索问题的解空间而并不是单纯的随机搜索。这类技术组合上次搜索结果的知识和特定的随机搜索特点来产生新的结果。遗传算法是最流行和使用最广泛的该类技术
43、,它们的调度时间一般高于使用其它技术的调度算法,适合于某一种任务图的控制参数优化集并不适合于另种类型的任务图,即对新的任务图遗传算法需要长时间的训练学习。另外,模拟退火方法也属于该类型技术。除单独使用上述几种技术以外,很多静态调度算法也综合利用两种以上的基本技术。针对以上的静态调度基本技术,归纳各类静态调度技术的典型算法如下:(对所有算法:n表示任务节点数目;e表示任务图中边的数目;m 表示处理器数目)1、表调度的典型算法HLFET(Highest Level First with Estimated Time) 算法7:最简单的表调度算法,7华中科技大学博士学位论文属于BNP(Bound N
44、umber Processor)类。基本步骤是从调度列表中取出任务,然后把该任务调度到使其能最早开始执行的处理器上(不使用任务插入的方法)。算法的时间复杂度为O(n2)ISH(Insertion Scheduling Heuristic) 算法8:同样属于BNP类,它与HLFET 算法主要的不同在于:在调度除入口节点以外的所有节点时考虑能否在已调度任务的时间间隙中插入该任务。算法的时间复杂度为O(n2)。ETF(Earliest Time First)算法9:属于BNP类,主要思想是 对调度列表中的所有任务计算其在所有处理器的最早启动时间(不考虑插入方法),如何选择具有最早启动时间的任务节点-
45、处理器对进行调度。其时间复杂度为O(mn 2)。MCP(Modified Critical Path) 算法10 :属于BNP 类 ,与算法主要不同的是它采用T-Level 值而不是B-Level值来考虑任务的优 先级别,并且允许任务插入。算法的时间复杂度为O(n2lognDLS(Dynamic Level Scheduling) 算法11:该算法与ETF算法非常相似,只是它用DL(Dynamic Level)值而不是B-Level值来计算优先级别。其算法时间复杂度为O(mn)。3)。MH(Mapping Heuristic)算法12:该算法属于APN(Arbitrary Processor
46、Number)类,所以考虑了通信消息的线路竞争。调度时也是把调度列表中依次取出的任务分配到使其具有最早启动时间的处理器上,在计算处理器上最早启动时间时考虑该任务所有直接前驱节点到本节点的消息路由,所有消息路由由消息路由表维护。算法时间复杂度为O(n(mn3e))。2、基于任务复制的典型算法DSH(Duplication Scheduling Heuristic) 算法13:该 算法的基本思想是对每一个处理器,考虑该处理器上一个被调度任务的完成时间与正在调度任务的启动时间之间的间隙作为任务复制间隙,算法尽量复制正在被调度任务的未被调度前驱任务到该间隙,直至间隙用完或者被调度任务的启动时间不再被改
47、善。其时间复杂度为O (n4)。BTDH(Bottom-up Top-Down Duplication Heuristic)算法14:该算法是DSH 算法的扩展,它对DSH算法的主要改进之处在于:即使任 务复制间隙被用完,算法还是尽量不断地复制当前被调度任务的前驱任务到该间隙,这可能使当前被调度任务的启动时8华中科技大学博士学位论文间被推迟,但整个的启动时间有可能减小。其时间复杂度与DSH相同。CPFD(Critical Path Fast Duplication) 算法15 :该算法的基本思想是把任务图的任务节点分为三类节点:关键任务节点CPN、有路径到达CPN的节点IPN、既不是CPN也不
48、是IBN的节点OBN。然后把这些节点按照任务图优先关系构造出CPN支配序列,基于该序列算法尽量复制CPN及其前驱节点到同一处理器上使CPN节点尽可能早启动。其算法时间复杂度为O(n4)。PY (由Papadimitriou and Yannakakis提出)算法6:该算法定义一个称为e-value的属性值,该属性值表示任务节点启动时间的大约下届。如果被调度节点的前驱节点的通信数据到达时间大于该节点的e-value 值,则前驱节 点复制到与被调度节点相同的处理器上。算法时间复杂度为O(n2(enlogn) )。DFRN(Duplication First and Reduction Next)算
49、法16 :该算法对 Fork节点和 Join节点采取不同的策略。算法先对任务图从底向上复制所有的前驱节点到其子节点相同的处理器上,然后对不满足一定条件的复制任务进行删去操作。算法的时间复杂度为O(n3)。3、基于聚类的典型算法MD(Mobility Directed)算法10 :该算法定义一个称为 Relative Mobility的属性来跟踪任务图调度过程中的关键路径,使关键路径节点能调度到一个任务聚类中。算法的时间复杂度为 O(n3)。LC(Linear Clustering)算法17:该算法调度所有关键路径节点到一个聚类中,然后把关键路径节点及其相连的边从任务图中删去。其时间复杂度为 O (n(e n)。EZ(Edge-Zeroing)算法18 :顾名思义该算法每一步合并拥有最大权重边相连的两个聚类成一个聚类。然后对合并聚类中的每个任务根据其静态 B-Level值进行排序。算法的时间复杂度为 O(e(e n)。DSC(Dominant Sequnce Clustering)算法19:该算法利