多任务调度问题的研究与实现

多任务调度问题的研究与实现

论文摘要

本课题的研究对象是分布式环境下的多任务静态调度问题。研究求解该问题的高效近似算法具有极高的理论价值和实践价值。这个问题是强NP完全的,是最难的组合优化问题之一。各国学者已对它做了十多年的深入研究,并提出了多种调度模型和算法。一般用有向无回路图(Directed Acyclic Graph, DAG)来描述有优先关系的任务集,目前文献中只给出了有向无回路图的存在性定义。本文提出了有向无回路图的两种构造性定义,使DAG直观化、可操作化。然后将问题的约束归纳为任务约束、链路约束和资源约束,给出了分布式环境下多任务静态调度问题的统一的、完整的描述和形式化的定义,证明了这个问题是可计算的但也是强NP完全的,不存在任何常数近似比的多项式时间近似算法。遵循从简单到复杂、循序渐进的研究方法,深入地研究了同构环境下的多任务静态调度问题。前人在这个问题的描述上,虽然采用加权的DAG描述问题,但没有建立问题的约束和目标的完整数学模型,尤其是允许任务复制的情况;另外对资源的数目,或者假设有无穷多,或者作为一个参数传入。本文将约束条件归纳为任务约束、链路约束和资源约束,并将资源数限定为与任务数一样多,给出了允许任务复制情况下问题的完整描述和两种数学模型。证明了对n个任务的问题,给定n个资源足够找到无穷多资源时的最优解,使对问题的认识更深入,并使问题的描述更趋于实际。采用三种不同的方法证明了问题具有可计算性,从不同的角度帮助加深对问题的理解,有利于想出好的策略。调度方法以优先级列表、任务分簇、任务复制最具代表性,其中基于任务复制的方法(Task Duplication Based, TDB)是效率最好的一种。各种TDB算法的理论基础是采用以空间换时间的策略,通过冗余地分配任务到多个资源以减少通信开销,从而减少总的调度长度。如何准确地确定应被复制的重要任务是获得较短makespan的关键,TDB算法之间的主要区别也正在于其选择复制任务的策略不同。本文基于任务复制与分簇技术,提出了两种求解同构环境下多任务静态调度问题的高效近似算法。关系演化算法(IREA)模拟人类社会的关系演化过程,是一种基于贪心分簇的启发式算法,包括前沿调度、动态分团、分离图三个子算法。IREA采用全新的优先级规则,定义并采用关系数、发展潜力、权和归并度来表示簇的优先级,定义并采用任务的发展潜力来表示任务的优先级。实验表明求解的结果颇好。目前的TDB算法中,国外学者提出的两种先进算法PY和MJD算法对任意的DAG给出了性能保证,而其它算法仅部分算法对特定的DAG给出了性能保证。动态关键前驱算法(DCP)借鉴理论上最优的MJD算法的思想,并针对其不足进行改进,采用新的选择策略来定义待复制的重要祖先集。改进了粒度的定义,理论分析表明DCP算法的优度好于其他近现代的典型TDB算法,对任意DAG和特定DAG均得到了好的性能保证;实验求解的质量很高,且有若干算例得到了好于前人的最优解。定义了DAG图的补图,讨论了对树型DAG在无任务复制情况下的2-优度的算法。另外,目前同构环境下的多任务调度问题还没有形成标准的算例集。本文对目前较为分散的算例进行了整理,并对其中一些算例的最优解进行了分析与证明,便于后续工作和相关工作的开展和比较。最后讨论了多任务调度问题的一种应用,即网格环境下的工作流调度问题。

论文目录

  • 摘要
  • Abstract
  • 1 引言
  • 1.1 课题来源及研究目的
  • 1.2 选题的背景、依据及研究意义
  • 1.3 并行计算的分类
  • 1.4 网格资源管理
  • 1.5 网格资源调度
  • 1.6 同构环境下的多任务调度算法
  • 1.7 研究内容与论文结构
  • 1.8 本章小结
  • 2 分布式环境下的多任务调度问题
  • 2.1 相关定义
  • 2.2 问题描述
  • 2.3 问题的形式化定义
  • 2.4 问题的可计算性讨论
  • 2.5 问题的复杂性分析
  • 2.6 本章小结
  • 3 同构环境下的多任务调度问题
  • 3.1 问题描述
  • 3.2 问题的形式化定义
  • 3.3 问题的0-1 线性规划描述
  • 3.4 问题的可计算性讨论
  • 3.5 资源数的讨论
  • 3.6 不允许任务复制时的讨论
  • 3.7 本章小结
  • 4 关系演化算法
  • 4.1 相关定义
  • 4.2 设计思想
  • 4.3 前沿调度算法
  • 4.4 生成初始解
  • 4.5 动态分团算法
  • 4.6 分离图算法
  • 4.7 实验结果与讨论
  • 4.8 算法分析
  • 4.9 本章小结
  • 5 动态关键前驱算法
  • 5.1 MJD算法详述
  • 5.2 设计思想
  • 5.3 计算sv的值
  • 5.4 构造调度
  • 5.5 算法的复杂度分析
  • 5.6 改进的粒度定义
  • 5.7 对任意DAG的性能分析
  • 5.8 对特定DAG的性能分析
  • 5.9 不允许任务复制时的性能讨论
  • 5.10 本章小结
  • 6 实验结果与讨论
  • 6.1 测试方法
  • 6.2 测试算例
  • 6.3 实验结果
  • 6.4 讨论
  • 6.5 本章小结
  • 7 网格工作流及其调度问题研究
  • 7.1 研究背景
  • 7.2 调度系统
  • 7.3 工作流与调度讨论
  • 7.4 网格工作流调度研究
  • 7.5 本章小结
  • 8 全文总结与展望
  • 8.1 主要工作总结
  • 8.2 主要研究成果及创新
  • 8.3 研究展望
  • 致谢
  • 参考文献
  • 附录1 攻读博士学位期间发表的学术论文目录
  • 附录2 论文中使用的一些符号的注释
  • 相关论文文献

    标签:;  ;  ;  ;  ;  

    多任务调度问题的研究与实现
    下载Doc文档

    猜你喜欢