关于任务调度相关研究文献综述
装备维修任务调度理论与策略研究现状综述

关键词:装备维修;任务调度;调度理论;调度策略;综述
犚犲狏犻犲狑狅犳犚犲狊犲犪狉犮犺犛狋犪狋狌狊狅犳犈狇狌犻狆犿犲狀狋犕犪犻狀狋犲狀犪狀犮犲犜犪狊犽犛犮犺犲犱狌犾犻狀犵
LiuYan1,ChenChunliang1,WangShengfeng2,Chen Weilong1,ZhangLijun1
(1.DepartmentofEquipmentSupportandRemanufacturing,AcademyofArmyArmoredForce,Beijing 100072,China; 2.OfficeofAcademicandScientificResearch,AcademyofArmyArmoredForce,Beijing 100072,China)
动协调的同时也便于战损装备的定位;三是先进的故障诊断设 备及故障诊断技术实现了战时战损装备故障信息实时快速地获 取;四是新型陆军部队强大的信息网络使得维修保障信息能及 时高效传达。这一系列的特点为战时合理高效安排维修任务提 供了可能。
装备维修任务的合理调度需要建立在准确地故障装备信息 基础上,而装备的故障信息地精确获取依赖于先进的故障诊断 技术,先进的测试与故障诊断技术能够对战时战损装备进行故 障定位以及故障程度分析,从而实现故障信息实时快速地获 取,为装备维修任务调度提供输入数据及基本支撑。因此下面 将综述现阶段故障诊断技术的发展现状,用以探讨装备维修任 务调度研究的前提。目前,故障诊断技术在装备维修邻域得到 极大的运用,总体来说故障诊断技术可以分为以下几类: 11 基 于 解 析 模 型 的 方 法
任务调度描述

任务调度描述
任务调度是指根据任务的属性和规则,合理地安排和分配任务的执行顺序,以确保工作的高效完成。
在各种工作场景中,任务调度都扮演着重要的角色,可以帮助组织合理分配资源,提高工作效率。
首先,任务调度可以帮助组织合理分配资源。
在一个组织中,可能会有多个任务需要执行,这些任务可能对资源有不同的需求。
通过任务调度,可以根据任务的属性和规则,合理地分配资源,确保每个任务都能按时完成,避免资源的浪费和闲置。
其次,任务调度可以提高工作效率。
在日常工作中,有些任务可能会相互依赖,需要按照一定的顺序来执行。
通过任务调度,可以合理地安排任务的执行顺序,确保任务之间的依赖关系得到满足,避免出现任务执行的混乱和冲突,从而提高工作的效率。
另外,任务调度还可以帮助组织有效地管理任务的执行过程。
通过任务调度系统,可以实时地监控任务的执行情况,及时发现和处理
任务执行中的问题,确保任务能够按照规定的时间和要求得到完成,提高工作的可控性和可预测性。
总的来说,任务调度在各种工作场景中都扮演着重要的角色。
通过合理地安排和分配任务的执行顺序,可以帮助组织合理分配资源,提高工作效率,有效地管理任务的执行过程。
因此,对于任何一个组织来说,都应该重视任务调度的工作,不断优化和改进任务调度的策略和机制,以提升工作的效率和质量。
并行计算中的任务调度技术研究

并行计算中的任务调度技术研究并行计算已经成为现代计算机科学的重要组成部分,它可以显著提高计算机应用程序的计算速度和效率。
在并行计算中,任务调度技术是决定应用程序性能和计算机系统性能的关键因素之一。
因此,研究如何优化并行计算中的任务调度技术成为当前计算机科学中的热门研究领域之一。
一、什么是并行计算并行计算通常指的是同时执行多个计算任务的计算模式。
这些计算任务可以在同一时间内由多个处理器执行,也可以在相同的处理器上通过时间共享来执行。
并行计算的最终目的是提高计算效率。
并行计算可以通过多种方式实现。
最常见的方式是使用多个计算机节点在网络上协同工作。
在这个模型中,每个节点可以具有单个或多个处理器,这取决于节点的处理性能和可用资源。
节点之间的数据通信可以通过高速网络实现。
二、任务调度在并行计算中,任务调度是指将并行程序中的任务动态分配到不同的处理器或节点上,以实现程序的最优性能。
任务调度通常包括以下几个步骤:1.任务划分将并行程序划分成多个子任务。
由于不同的子任务在计算复杂度和计算负载上可能存在差异,因此任务划分的目的是尽可能均衡划分这些子任务。
2.任务分配将子任务分配给不同的处理器或节点。
任务分配通常需要考虑处理器和节点之间的负载均衡、任务执行时间、数据传输和通信时间等因素。
3.任务调度在任务分配之后,每个处理器或节点都会执行特定的子任务。
任务调度是指动态调整任务的执行顺序、分配计算资源和优化数据传输,以实现程序的最优性能。
三、任务调度技术为了实现并行计算中的任务调度,研究者们开发了各种各样的任务调度技术。
这些技术可以根据不同的策略,将任务分配到最合适的处理器或节点上。
1.静态任务调度静态任务调度是指在程序启动时将所有任务动态分配给处理器或节点的任务调度方式。
它通常是在任务之间相互不依赖、计算负载较为均衡的情况下使用的。
2.动态任务调度动态任务调度是指在程序运行时,通过监视不同处理器或节点的计算负载和执行情况来决定任务分配和调度的方式。
文献综述

云计算调度策略的文献综述一:研究背景及意义随着互联网和IT技术的迅猛发展,信息与数据量快速增长,导致计算机的计算能力和数据处理能力满足不了人们的需求,网络资源的需求和利用出现了失衡的状态。
但是传统的计算模式,如分布式计算、并行计算,很难解决计算资源利用的不平衡问题。
一方面某些应用需要大量的计算资源和存储资源,另一方面互联网上存在着大量的没有得到充分利用而被闲置的资源。
因此,资源的整合和优化是网络发展的必然趋势,云计算被提了出来。
作为近几年来商业机构和科研机构研究的热点,云计算正广泛用于科学和工程等领域中。
一方面,高性能计算已经成为越来越多科学和工程实践的关键技术,超级计算机被用来研究复杂的现象,但是超级计算机的造价极高,只有某些国家级的部门才有能力配置这样的设备。
另一方面,某些应用对计算的要求非常高,即使是现在最大的超级计算机也无法提供它们所需的资源。
而云计算不仅为众多闲置的计算资源提供了一种有效地共享方式,使得分布式资源给应用程序的使用者带来了很多好处。
更多地,云计算是面向企业和个人的商业模式,可以为各种类型的用户提供服务,解决大型的计算问题,或者实现信息的存储等等,而且只需要在使用的时候进行付费即可,非常安全方便。
对于一些大型企业来说,为了实现大型的各种计算和应用,需要解决以下几个方面的问题。
(1)必须购置大量的服务器和终端设备,这需要大笔的资金。
(2)系统设备的升级以及维护问题。
在很多时候,这些设备都是闲置的,造成了大量资源的浪费。
(3)对于设备的使用和维护需要特定的技术人员,对这些人员的培训也需要花费大量的人力物力。
云计算可以有效地解决大型企业所面临的问题,并且可以帮助它们节省大量的资金。
对于一些小型的企业,微软大中华区总裁梁念坚在召开的2010中国信息产业经济年会上表示,云计算可以非常有效地支持中国中小企业的发展。
他指出,中国99%的企业都是中小企业,只有17%左右利用互联网,不到5%的企业用ERP,从这些数据看,云计算可以帮助中小企业的发展。
云计算中任务调度算法的研究综述

云计算中任务调度算法的研究综述-电子商务论文云计算中任务调度算法的研究综述文/张艳敏摘要:云计算中任务调度算法的好坏直接影响云计算系统整体性能,也影响着云计算系统处理用户提交的任务的能力。
本文归纳了云计算调度的特点和性能指标,总结了云计算中的任务调度算法,分析了云计算任务调度算法的研究现状及其进展。
最后讨论了现有任务调度策略存在的问题,为云调度研究指明了方向和思路。
关键词:云计算;任务调度;遗传算法;蚁群算法前言云计算是一种基于互联网的新的服务模式,这种模式按使用量付费,提供可用的、便捷的、按需的网络访问,它将用户需求的计算任务分布在由大量计算机构成的数据中心,数据中心采用虚拟化技术,把各种软硬件资源抽象为虚拟化资源,再通过资源调度技术使各种应用能够根据需要获取计算能力、存储空间和信息服务。
在云计算环境中,一个大规模计算任务需要进行分布式并行处理,系统首先将逻辑上完整的一个大任务切分成多个子任务,然后根据任务的相应信息采取合适的调度算法,在不同的资源节点上运行这些子任务,所有的子任务处理完后进行汇总,最后将结果传给用户。
云计算任务调度的目的是给需要的用户分配不同的资源,在某一特定的云环境下,依据某一种规则使用资源,在不同的用户之间平衡和调整资源,在满足用户需求的前提下,使得任务完成时间尽量小,且资源利用率尽量高。
调度最终要实现时间跨度、服务质量、负载均衡、经济原则最优等目标。
云计算任务调度是云计算研究中的重点和难点。
任务调度算法的优劣会影响到云计算系统处理任务的能力。
近几年,研究者针对云环境下的资源调度做了很多研究,主要体现在以提高云计算数据中资源利用率为宗旨的资源管理与调度、以降低云计算数据中心的能耗为目标的资源分配与调度、经济学的云资源管理模型研究等方面。
本文综述了云环境下的任务调度算法,分析了近几年来典型的云计算任务调度算法的发展趋势,为相关领域的研究人员提供参考。
1、网格任务调度与云计算任务调度的比较在网格计算和云计算中,虽然系统资源都是以数据池的形式呈现给用户,但它们之间的区别是网格用户的任务是通过实际的物理资源来执行,而云计算环境下的用户任务是通过逻辑意义上的虚拟资源来执行。
资源受限项目调度问题文献综述

资源受限项目调度问题综述摘要针对资源受限项目调度问题,总结国内外项目调度的发展过程及研究成果。
在对问题的类型进行分类的基础上,结合大量文献对常见的算法进行描述并重点介绍了关键技术的研究状况。
进一步地,将资源受限项目调度问题做进一步的拓展,简略介绍多目标、多项目、任务可拆分的项目调度问题。
最后对问题进行总结,并提出自己的看法。
0 引言现代项目越来越趋于大型化、复杂化,要求工期更短、成本更低。
再加上行业细分越来越发达这种新情况给项目管理带来了更高的要求。
如何在更短时间内、在保证质量的前提下,以更低的成本完成项目,成为项目管理人员关心的问题。
在项目运作过程中,资源受限项目调度问题RCPSP(resource-constrained project scheduling problem)是一个重要的优化问题,它是最常见的生产调度问题,是项目管理中最为经典和核心的问题之一1项目调度发展过程项目调度问题自20世纪中期被提出来,传统的计划技术有甘特图(又称横道图,Gant Chart,Gc)、关键活动图、网络计划技术。
几种典型的网络计划技术有:关键路径发(Critical Path Method,CPM)、项目计划评审技术(Program Evaluation and Review Technique,PERT)、优先图方法(PDM)、图解评审技术(Graphical Evaluation and Review,GERT)、风险评审技术(Venture Evaluation and Review Technique,VERT).最初被广泛应用于项目进度计划的工具是甘特图技术,它用二维坐标的形式,用线条在二维空间中表似乎出整个项目期间计划和实际的活动完成情况,直观表明项目中所含各项活动的执行顺序,以及每项活动的开始/结束时间和持续时间。
该方法形象直观,易于掌握,但是不能体现工作间的相互依赖关系,不能体现工作过早开始或者过完开始所造成的后果。
并行计算中的任务调度技术研究
并行计算中的任务调度技术研究随着现代计算机应用技术的不断发展,计算机并行计算已经成为越来越广泛的研究方向之一。
在并行计算中,任务调度技术占据着非常重要的位置。
它的主要功能是将所有的任务分配给各个处理器来协同完成计算任务。
任务调度技术在分布式计算系统、云计算、集群等大规模计算环境中都有广泛的应用。
它不仅能提高计算效率,还可以降低能耗、提高资源利用率等方面产生明显的效果。
下面我们逐一探讨任务调度技术在并行计算中的应用及研究进展。
一、任务调度的基本概念任务调度就是将一个大型计算任务分解成不同的小任务,通过合理分配这些小任务到各个处理器上,以达到优化整个计算任务的目的。
在完成任务调度过程中,需要考虑处理器之间的负载均衡、任务之间的依赖关系和数据的传输等问题。
通俗来说,任务调度就是管家的角色,通过合理的任务分配,完成一个超过单处理器的承载能力的大型计算任务。
二、任务调度在并行计算中的应用任务调度在分布式计算、云计算、集群等大规模计算领域有着广泛的应用。
在分布式计算系统中,每个处理器可以看作是一个计算节点,通过任务调度将计算任务合理分配到各个处理器上,以提高整个分布式计算系统的性能。
在云计算中,任务调度可以帮助云计算系统有效利用云计算资源,提高整个云计算系统的性能。
同时,任务调度还可以优化云计算系统的电源管理,并保证不同云用户的计算任务公平、高效地协作完成。
在集群计算领域,任务调度也被广泛地应用于系统集成和高性能大数据运算上。
它可以在各节点间优化数据传输、提高集群的并行处理效率。
通过合理地配置调度算法,可以大幅提升集群系统的整体性能。
三、任务调度算法的研究进展任务调度算法是任务调度领域最为核心的技术之一。
它的核心目标是实现负载均衡,即在任务调度过程中让各处理器负载均衡,从而提高并行计算的性能以及整体的运行效率。
研究发现负载均衡是目前任务调度技术中最难的问题之一。
在任务调度算法的研究过程中,人们主要探索了几种不同的算法,包括启发式算法、遗传算法、模拟退火算法和蚁群算法等。
并行计算中的任务调度与优化研究
并行计算中的任务调度与优化研究并行计算是一种将计算工作分成多个子任务进行处理的方式。
这种处理方式可以提高计算速度和工作效率。
然而,任务调度和优化是并行计算中需要解决的重要问题。
任务调度和优化的目的是将任务分配到可用的计算资源上,以最大限度地提高系统的效率。
本文将介绍并行计算中的任务调度和优化的研究现状和应用。
并行计算中的任务调度任务调度是将任务分配到可用的计算资源上的过程。
在并行计算中,任务调度的目标是最大化系统的效率和性能。
任务调度的主要目标是使计算资源的利用率最大化,同时减少响应时间和等待时间。
此外,任务调度还必须满足任务之间的依赖关系和计算资源之间的约束条件。
任务调度可以通过两种方法来实现。
第一种方法是通过静态任务调度实现。
静态任务调度使用预先指定的任务分配策略将任务分配到计算资源上。
静态任务调度的优点是实现简单。
缺点是静态任务调度不能适应系统的动态变化。
另一种方法是通过动态任务调度来实现。
动态任务调度是在系统运行时动态调整任务的分配,以适应系统的动态变化。
动态任务调度的优点是可以根据系统的运行情况进行任务的分配。
缺点是实现较为复杂。
并行计算中的任务优化任务优化是指使用调度策略或算法来优化任务的分配和执行。
任务优化的主要目标是提高系统的效率和性能,最大限度地利用计算资源。
任务优化可以通过多种方法来实现。
一种方法是使用负载均衡调度算法来实现。
负载均衡调度算法是指通过在系统中动态移动任务来平衡负载。
负载均衡调度算法的优点是能够平衡系统的负载,从而提高系统的效率和性能。
缺点是需要使用比较复杂的算法来实现。
另一种方法是使用任务合并技术来实现。
任务合并技术是指将多个小任务合并成一个大任务,以减少任务切换的开销和通信开销。
任务合并技术的优点是减少了任务的开销和通信开销,从而提高了系统的效率和性能。
缺点是难以实现任务之间的依赖关系。
结论并行计算中的任务调度和优化是实现高性能并行计算系统的关键问题。
任务调度和优化的目的是将计算任务分配到可用的计算资源上,以最大限度地提高系统的效率和性能。
边缘计算资源分配与任务调度优化综述
四、结论
本次演示提出了一种基于遗传算法的任务卸载与资源分配联合优化算法。该算 法通过建立数学模型描述任务卸载和资源分配的问题,并采用遗传算法来求解 最优解。实验结果表明,该算法能够在保证任务完成时间的前提下,有效地提 高计算资源的利用效率。因此,该算法具有一定的实用价值和应用前景。
谢谢观看
二、联合优化算法的设计
1、建立数学模型
首先,我们需要建立一个数学模型来描述任务卸载和资源分配的问题。这可以 通过定义变量、建立方程和约束条件来实现。例如,我们可以定义每个边缘节 点的计算能力、每个任务的计算需求和核心节点与边缘节点之间的通信延迟等 变量。然后,我们可以建立方程来描述任务卸载和资源分配的关系,并添加约 束条件以确保任务的完成时间和计算资源的利用效率。
随着5G和物联网技术的快速发展,移动边缘计算(MEC)已成为计算和存储领 域的研究热点。移动边缘计算将计算和存储资源从云端推向网络边缘,使得数 据处理更加靠近用户,从而降低了网络延迟并提高了服务质量。然而,如何有 效地分配移动边缘计算资源是一个具有挑战性的问题。本次演示将综述移动边 缘计算资源分配的现状、发展以及未来研究方向。
实验设计与结果
为了验证基于强化学习的方法在边缘计算资源分配与任务调度优化中的有效性 和可行性,我们设计了一系列实验。在实验中,我们选取了不同类型的任务和 不同规模的计算资源进行测试。实验结果表明,基于强化学习的方法可以在不 同场景下实现动态自适应的资源分配和任务调度优化。与传统的优化算法相比, 基于强化学习的方法具有更好的鲁棒性和适应性,可以更好地应对动态环境和 复杂任务。
二、文献综述
移动边缘计算资源分配的方法主要分为静态资源和动态资源分配两种。静态资 源分配是指预先分配给用户固定的计算和存储资源,而动态资源分配则是根据 实时需求动态地分配计算和存储资源。
《云服务中基于深度学习的任务调度方法研究》范文
《云服务中基于深度学习的任务调度方法研究》篇一摘要:本文研究了云服务中基于深度学习的任务调度方法。
通过结合深度学习模型与云服务的任务调度特性,提出了有效的调度策略。
本论文首先对相关领域进行文献综述,然后详细描述了所提出的任务调度方法,并通过实验验证了其性能和效果。
一、引言随着云计算技术的快速发展,云服务已成为现代计算资源的重要提供者。
在云服务中,任务调度是提高资源利用率和系统性能的关键环节。
传统的任务调度方法往往无法有效应对复杂多变的任务需求和动态变化的资源环境。
因此,研究基于深度学习的任务调度方法,对于提高云服务的性能和效率具有重要意义。
二、文献综述近年来,深度学习在各个领域取得了显著的成果,包括计算机视觉、自然语言处理等。
在任务调度领域,深度学习也被应用于预测任务负载、优化调度策略等。
相关研究通过深度神经网络模型学习任务的特性,从而更准确地预测任务的执行时间和资源需求,进而实现更高效的调度。
然而,现有的研究仍面临许多挑战,如模型训练的复杂度、对动态环境的适应性等。
三、基于深度学习的任务调度方法为了解决上述问题,本文提出了一种基于深度学习的任务调度方法。
该方法包括以下几个步骤:1. 数据准备与特征提取:收集云服务中的任务数据,包括任务的类型、大小、执行时间等,作为训练深度学习模型的输入特征。
2. 模型构建与训练:利用深度神经网络构建任务调度模型,通过大量历史数据训练模型,使其能够学习任务的特性及资源需求规律。
3. 预测与调度决策:利用训练好的模型对未来任务进行预测,包括任务的执行时间和资源需求。
根据预测结果和当前系统资源状况,制定调度决策。
4. 动态调整与优化:根据实际执行情况,对模型进行动态调整和优化,以适应动态变化的资源环境和任务需求。
四、实验与分析为了验证所提出的方法的有效性,我们进行了以下实验:1. 数据集与实验环境:使用真实的云服务数据集进行实验,构建了模拟的云服务环境。
2. 实验设计:将所提出的方法与传统的任务调度方法进行对比,评估其性能和效果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于任务调度相关研究文献综述随着多核处理器的出现,多核处理器任务调度已成为当前高性能处理器研究的热点之一。
任务调度是指系统为确定一系列任务的执行顺序所采取的调度策略。
随着计算机技术的不断发展,学术界对任务调度问题的讨论也逐渐深入,旨在通过减少通信开销、改变任务执行顺序,以缩短整个任务的调度长度。
近年来,由于多处理器的广泛应用,如何充分利用多处理器的计算性能成为了大家关注的焦点,针对多处理器的任务调度问题突显出来。
在多处理器任务调度算法研究的早期,P Dutot[24]等人在研究中指出,对于异构计算环境下的任务调度问题是NP 难问题,难以在多项式时间内寻求最优解。
正是该问题的重要性和复杂性,吸引了一大批专家学者对其进行研究,并提出了大量经典的算法。
一、国外研究现状计算机任务调度的研究早在上世纪60年代就已开始。
1967年,芝加哥大学的Manacher G.K在ACM期刊上第一次提出了“任务”的概念,并利用列表法和甘特图进行了基本的多核多任务调度算法研究,提出了能够保证调度稳定性的算法。
同时文章对软实时系统和硬实时系统也给出了定义和说明。
但是由于文章发表年代较为久远,文中提出的是同构多核处理器的模型,并不适用于当今迅速发展的异构多核处理器之间的任务调度。
随后,刘炯朗和Layland在已有工作基础上提出了周期任务模型的概念,该模型对任务进行了较好的抽象,对周期性任务做出了一些假设,忽略计算机体系结构的复杂性以及应用程序的具体实现,可以借助各种数学方法对任务的可调度性进行分析。
文中提出了可在单处理器上运行的三种调度算法:单调速率算法RM(rate monotonic algorithm)、最早结束优先 EDF(earliest deadline first)算法[1]以及两者的混合算法。
在 RM 算法中,1根据任务的需求速度赋予其一定的优先级,即所谓的固定优先级。
在 EDF 算法中,任务最终期限值较小的赋予更高的优先级,即动态调整任务的优先级。
而综合算法将任务分开对待,分别使用上述的算法。
文章分析了在上述几种任务调度算法下,CPU能够达到的最大利用率,并用数学方法给予了证明。
为后来的研究奠定了基础。
后续又提出了许多经典算法,包括时间片轮转(Round Robin,RR)算法、先到先服务(First Come First Served,FCFS)算法、截止期单调调度(Deadline Monotonic Scheduling, DMS) 算法等。
在这些算法中,任务的优先级都是基于任务的某些特征参数,如截止期、空闲时间或关键性等计算而得。
然而,如果优先级仅由某个特征参数来确定是不够的,因为截止期或者空闲时间短的任务不一定是最关键的。
而且这些算法主要是针对单核处理器,并不适用于多核处理器的任务调度。
对于异构计算环境下的任务调度问题是NP完全问题,难以在多项式时间内寻求最优解。
正是该问题的重要性和复杂性,吸引了一大批专家学者对其进行研究,并提出了大量经典的算法。
Haluk Topcuoglu和Salim Hariri等人通过对异构环境下的任务调度进行大量分析,在1999年提出了两种到目前为止公认的调度效率较高的算法:基于处理器关键路径算法[8] (Critical Path On a Processor,CPOP)和异构最早结束时间算法[8] (Heterogeneous Earliest Finish Time, HEFT),是异构多处理器任务调度十分经典的调度算法。
后期许多任务调度的算法都是在这两种算法的基础上提出的。
这些算法都使用有向无环图(Directed Acyclic Graph,DAG)来表示任务模型,节点上和节点间都根据时间开销赋予一个权值。
在任务排序和任务分配两个阶段采用不同的方法来提高任务调度的效率。
HEFT算法思想描述如下:在任务排序阶段,每个任务根据自身的运行时间和与后继任务的通信时间计算出一个向上排序值ranku (n),根据ranku(n)降序排列每个任务;在任务分配阶段则根据最早完成时间进行分配,这种机制降低了算法复杂度,但同时处理器的利用率有待提高。
与其它基于最早完成时间的调度算法有所不同,HEFT算法采用了区间插入技术,在同一处理器两个相邻任务间可能插入其它任务间隙处,插入一个新的任务来提高多核处理器的并行性和利用率,从而提高调度效率。
但是该算法存在一些明显的缺点:任务排序只考虑到与后继任务的通信开销,让一些向上排序值高的节点优先运行,但没有从整体的拓扑结构考虑任务的关键程度,某节点向上排序值高并不代表此节点在整体拓扑结构的关键路径上,也就是说,有些关键节点可能得不到较高的优先级;能够利用区间插入技术插入到某个空闲时段的任务可能并不多;没有考虑较大任务间的通信开销,如果两个较大任务被分配到不同的处理器,任务间的通信开销可能远远超过任务本身的运行开销。
HEFT算法的时间复杂度是O(n2*p),n表示任务个数,p表示处理器个数。
考虑到HEFT算法存在的问题,Haluk Topcuoglu等人又提出了一种CPOP算法。
该算法在任务排序阶段不仅考虑了向上排序值rank(n),而且还考虑了向下u(n),通过两者的综合加上自身运行开销,计算每个节点的优先级权排序值rankd值,并且得到一个关键路径,然后选择一个串行执行这些关键路径任务时间最短的处理器CPP。
任务分配阶段,把属于关键路径上的任务分配到CPP,非关键路径上的任务分配到具有最早完成时间的处理器上,后者结合了区间插入技术。
关键路径是任务图中距离最长的路径,关键路径长度决定了整个任务图的完成时间,所以CPOP算法的目的是给关键路径上的任务更高的优先级,保证关键任务优先调度,以此来缩短整个任务完成时间。
但CPOP算法同样存在一些不足:只考虑了提高关键路径节点的优先级,有可能忽视了某些关键节点的父节点,但这些父节点又不在关键路径上,CPOP算法中该类非关键路径节点的优先级可能很低,非关键路径节点的延迟调度将会影响关键路径的完成时间,降低整个调度算法的效率;同时,这种分配机制导致执行关键路径的处理器负载偏重,而其它处理器利用率并不一定很高,从而降低了处理器的利用率,导致处理器负载不均。
此外,在异构多处理器任务调度算法中,经典的启发式算法还有Max-min、Min-min、Sufferage等。
Tracy D.Braun等人对这些算法做了比较和实验,给出了各种算法的实际性能[12]。
Max-min算法首先计算任务的预期完成时间(Expected Earliest Completion Time, EECT),然后优先调度EECT最大的任务,优先对其进行资源分配。
这种调度方法可以保证颗粒大的任务较好地被执行,能够在一定程度上实现负载均衡。
但该方法没有考虑任务的执行频率,对于那些执行频繁的小任务,提高它的执行优先级可能会取得更好的整体性能。
同Max-min算法相似,Min-min算法也是根据任务的EECT来确定任务调度优先级。
不过,Min-min算法将EECT最小的任务对应最高的优先级,即将颗粒小的任务优先分配到最佳处理器上,依次完成任务的划分。
该算法实现简单、复杂度较低。
但算法策略单一,在按EECT从小到大顺序对任务划分时,容易引起处理器负载不平衡。
Sufferage算法在Max-min和Min-min算法的基础之上进行改进。
对于每个任务,计算其次早完成时间(放在次优处理器上执行的时间)与最早完成时间的差值,该差值命名为Sufferage值,反映出各个任务的调度代价。
Sufferage算法按Sufferage值从大到小确定任务的优先级,以保证调度所带来的代价最小。
但该算法只考虑任务单次执行的情况,没能考虑任务的执行频率,从而没有不能计算在一段时间内的总代价,不能取得很好地负载均衡。
同时没有考虑任务最早完成时间,故系统总的执行时间难以最优。
另外,Sanjoy Baruah教授及其小组在任务调度与分析领域的研究比较活跃,相继发表了一系列有影响的文章[5][6][7]。
同时,各研究者根据不同的应用需求,提出了多类调度算法。
为了减少任务之间的通信开销,许多学者提出了基于任务复制(Task Duplication Based, TDB)及分组等多种调度算法。
Kwok和Ahmed提出了关键路径快速复制(Critical Path Fast Duplication,CPFD)算法[20],Bansal等提出了有限复制的调度算法[21],Shin等人提出了最小复制算法[22]。
这些算法都属于基于任务的调度算法,通过在多个处理器之间对任务进行复制,从而减少处理器之间的通信量。
Abdelzaher和Shin在文献[23]中,根据实时任务的周期进行了分簇。
他们的方法可以处理任务的异构性,扩展性强。
传统的启发式算法无法适应所有的任务模型。
在采用传统启发式算法之前往往需要对任务进行假设,这使得一种启发式算法只能应用于特定的任务模型。
于是许多人工智能算法被运用到任务调度问题上来。
人工智能方法通过模拟各种自然活动,通过演化迭代的方式来求取问题的解,越来越多地被引入到启发式算法当中。
目前,对于人工智能方法的研究已经深入,许多方法形成自己的理论体系,为解决不同的复杂问题提供科学指导。
这些方法有遗传算法(Genetic Algorithm,GA)、模拟退火(Simulated Annealing,SA)算法、蚁群算法(Ant Colony Optimization,ACO)以及粒子群优化算法(Particle Swarm Optimization, PSO)等。
这些算法都是模拟自然环境下的各种行为,从而求解过程具有随机性,比传统算法减少了人工干预。
这些特点对于寻找全局最优解方面具有独特优势,为求解复杂问题提供了新的思路和解决方案,也广泛应用在任务调度这一复杂问题当中。
二、国内研究现状相对于国外的研究,国内在多核处理器任务调度方面的研究起步比较晚,一直处于跟踪研究阶段,但随着近年来国内专家对任务调度研究的重视,仍取得了不少成果。
中国科学院软件研究所的戴国忠、王宏安等人发表了一系列研究成果[32],采用集中式的调度方案, 考虑任务划分策略及软实时任务的服务质量,以统一方式完成对实时异构系统中硬实时和软实时任务的集成动态调度,提高了算法的调度成功率。
此外,一些研究也对多处理器调度问题提出了新的算法和见解。
针对fork-join图结构刘振英等人提出了一个新的算法TSA_FJ[34](Task Schedule Algorithm Fork-Join)。
TSA_FJ算法的原则是让Fork-join任务图中的最后一个任务节点尽早开始执行。