云环境中DAG调度算法的设计与实现资料.docx

上传人:b****5 文档编号:8031243 上传时间:2023-01-28 格式:DOCX 页数:41 大小:634.70KB
下载 相关 举报
云环境中DAG调度算法的设计与实现资料.docx_第1页
第1页 / 共41页
云环境中DAG调度算法的设计与实现资料.docx_第2页
第2页 / 共41页
云环境中DAG调度算法的设计与实现资料.docx_第3页
第3页 / 共41页
云环境中DAG调度算法的设计与实现资料.docx_第4页
第4页 / 共41页
云环境中DAG调度算法的设计与实现资料.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

云环境中DAG调度算法的设计与实现资料.docx

《云环境中DAG调度算法的设计与实现资料.docx》由会员分享,可在线阅读,更多相关《云环境中DAG调度算法的设计与实现资料.docx(41页珍藏版)》请在冰豆网上搜索。

云环境中DAG调度算法的设计与实现资料.docx

云环境中DAG调度算法的设计与实现资料

大连理工大学本科毕业设计(论文)

云环境中DAG调度算法的设计与实现

DesignandImplementationofDAGSchedulingAlgorithms

inCloudEnvironment

学院(系):

计算机科学与技术学院

专业:

计算机科学与技术

学生姓名:

xxx

学号:

xxxxxxxx

指导教师:

xxx

评阅教师:

完成日期:

 

大连理工大学

DalianUniversityofTechnology

摘要

近年来随着网格、云计算工作流等异构分布式计算技术的发展,关于多DAG共享异构分布式资源的调度问题逐渐成为备受关注的研究热点。

目前,尽管有关多DAG共享异构分布式资源调度的研究取得了一定进展,但仍有很多问题亟待进一步研究和解决。

本文围绕多DAG共享异构分布式资源调度的若干问题展开了研究,这些问题包括:

具有多优先级的多DAG调度和具有期限约束的多DAG调度吞吐量最大化、费用优化以及费用优化的公平性等。

对这些问题的解决将有利于提高网格、云计算工作流等异构分布式计算系统的资源利用率、合理处理多个DAG应用之间的调度关系和有效降低用户DAG应用的费用,因此有着重要的理论意义和应用价值。

关于DAG共享异构分布式资源调度的研究主要是关于DAG调度算法的研究。

本文使用Java语言实现了经典DAG静态调度算法HEFT、CPOP和LBP,还实现了侧重公平性的E-Fairness算法,最后实现了混合调度算法MMHS。

在实现这些算法的基础上,还测试这些算法的相关性能,如调度时间和公平性等。

同时实现了DAG调度仿真器,在仿真器基础上,可以方便地进行各种算法的研究,而且方便做算法性能的实验测试。

关键词:

多DAG调度;多优先级;公平性;仿真器

DesignandImplementationofDAGSchedulingAlgorithms

inCloudEnvironment

Abstract

Inrecentyears,withthegrid,cloudcomputingworkflowsandotherheterogeneousdistributedcomputingtechnology,schedulingofmultipleDAGssharingonheterogeneousdistributedresourcesisbecomingahottopicofconcern.Atpresent,despiteaboutmultipleDAGssharingonHeterogeneousDistributedResourceSchedulerhasmadesomeprogress,buttherearestillmanyproblemstobefurtherstudiedandresolved.

ThispaperfocusesonanumberofissuesmoreDAGsharingonHeterogeneousDistributedResourceScheduling.Theseissuesinclude:

amulti-priorityDAGschedulinganddeadlineconstraintshavemultipleDAGsschedulingtomaximizethroughput,costoptimizationandcostoptimizationofthefairandsoon.Solvingtheseproblemswillhelpimprovegrid,cloudcomputingresourceutilization,workflowandotherheterogeneousdistributedcomputingsystems,rationaltreatmentofmultipleDAGsschedulingrelationshipbetweenapplicationsandreduceuserDAGapplicationfee,sotherearetheoreticalsignificanceandapplicationvalue.

ResearchontheDAGshareinHeterogeneousDistributedResourceSchedulingisresearchonDAGschedulingalgorithm.ThisarticleusestheJavalanguagetoachieveaclassicDAGstaticschedulingalgorithmHEFT,CPOPandLBP,butalsotoimplementafocusedequityE-Fairnessalgorithm,andfinallyrealizethehybridschedulingalgorithmMMHS.Onthebasisofthesealgorithms,butalsotesttherelativeperformanceofthesealgorithms,suchasthescheduledtimeandequity.WhileachievingtheDAGschedulingsimulator,asimulatorbasedon,itcaneasilystudyvariousalgorithms,andeasytodoexperimentstotestthealgorithmperformance.

KeyWords:

multiDAGsscheduling;multipriority;fairness

引言

近年来,随着一些异构分布式计算环境工作流系统技术的发展(如网格、云计算或混合云计算工作流系统),作为这些工作流管理系统的关键技术之一的多个DAG任务共享异构分布式资源的调度问题引起了研究者们的关注。

很多的工作流任务及任务间的依赖约束关系都可由有向无环图DAG(DirectAcyclicGraph)来表示[1]。

目前有关多个DAG任务共享资源调度的研究在执行时间最小化(MakespanMinimization)、公平性最大化(FairnessMaximization)、吞吐量最大化(ThroughputMaximization)以及资源分配优化(ResourceAllocationOptimization)等方面已经取得了一些进展。

在网格、云计算或混合云计算等平台的工作流的研究领域中,关于有最晚完成期限约束的DAG调度问题也引起了研究者们的关注。

在这些新型异构分布式应用环境下,由于资源提供者往往会根据所提供的资源类型、服务质量QoS(QualityofService)和用户使用(或租用)资源的总时长进行计费,用户考虑到经济费用等因素,往往会根据应用的需求为DAG应用指定一个最晚完成期限Deadline,而并不要求DAG在最短时间内完成,这样就需要工作流调度系统能够根据用户指定的最晚完成期限尽可能为用户的DAG任务选择经济费用最低的资源。

针对有期限约束的DAG任务调度及其费用优化,相关研究提出了一些算法和解决方案。

这些关于有Deadline约束的DAG调度算法大多都有一个“Deadline分配”的重要步骤,也就是用不同的方法将整个DAG的Deadline分配到各任务(或任务区间)上,然后根据任务所分配的时间窗口尽可能选择较便宜(因而速度也较慢)的资源进行费用优化。

近年来,关于单个DAG在异构分布式环境下的调度研究已经取得了很大进展[2-9],但这些算法不能直接运用于多DAG的调度,针对多个DAG工作流调度的研究还处于探索阶段。

现有相关的多DAG调度模型与算法尽管提出和解决了一些重要的问题,但对更为复杂情况下的多DAG调度,如多个用户可能会在不同时间提交DAG,且用户对DAG执行时间的要求可能差异较大,如何处理好已被部分调度执行的DAG和新到达DAG中各任务之间的关系,以更好地兼顾多个DAG之间调度的公平性和资源利用率的改善等问题,还没有得到较好的解决。

适用于异构分布式环境下多个不同DAG随机提交的多优先级DAG调度模型和算法被提出。

正是在这样的研究背景下,本文围绕异构分布式计算环境下具有不同QoS需求类型的多个DAG共享资源的调度问题、具有期限约束的多DAG共享资源调度的吞吐量最大化问题、总费用优化问题和费用优化的公平性问题等四个方面的内容展开了我们的研究工作。

1绪论

1.1研究背景

任务调度问题是分布式计算领域中的基本问题。

根据被调度的任务之间是否存在相关依赖关系,任务调度可分为独立的任务调度和相关的任务调度(有时也被称为依赖任务调度)。

其中相关的任务是由一组既有前后数据传递约束关系,又有并行关系的多个任务组成,一般可由有向无环图任务图来表示。

为了提高系统效率,这些DAG类型的任务中的子结点任务往往需要在多个处理单元或多个计算机所组成的资源系统上协同完成。

近些年来,随着网络和科学技术的发展,尤其是一些大型的科学计算、应用及信息处理如果仅依靠一台计算机不容易解决,就需要利用多个计算机资源来共同完成。

比如要统计过去1年间9000篇(或者更多)科技论文中的高频词,以便分析近期研究热点。

如果只有1台计算机运行这项工作任务,只能将所有论文按某种顺序遍历一遍进行统计或者编制多线程程序来并行执行以提高遍历效率。

然而,如果有N台运算能力可能互不相同的通过网络互联的计算机能同时为这项工作任务服务,这9000篇论文就可以分解成N份,让这N台计算机并行遍历统计,效率和速度将大大提高。

在这一过程中,这项工作可以分解为以下一些子任务:

在其中某台计算机上进行“所有论文遍历任务的分发”、每台计算机被分配的“遍历统计”和某台计算机的最后“汇总统计”,那么这些子任务结点及其数据传递关系就构成了一个DAG任务图。

在这个图中,多个任务的执行有一定的先后约束和数据传递的关系,如某台计算机被分配的“遍历统计任务”必须要在“论文遍历任务的分发任务”结束,并将必要的数据送达该机器后才能开始执行就是这种约束关系的体现。

类似地,在物理、天文、生物、工程等很多领域的一些大型科学计算问题也可以转化为相应的DAG任务,并且这些领域的计算规模日益增大,计算流程日益复杂,更需要多计算机资源的并行执行和协同工作来解决有关问题。

近年来,随着网格和云计算的应用和发展,为这种大型科学计算应用需要提供了良好平台。

这些平台都能通过网络为这类需要多计算机资源协同工作的应用系统提供由大量高性能的异构分布式资源所构成的资源池,使应用系统能够根据应用需要获取计算力、存储空间和各种软件服务。

尤其是目前研究和发展中的网格工作流或云计算工作流系统,不仅能够对这些大型计算的DAG任务进行构建、调度执行、监控管理,还能够利用和管理网格和云计算所提供的大量计算资源,并在一些科学计算领域实现了对这类DAG任务计算的自动化运行。

然而,实现这些系统服务和服务效率的高低很大程度上取决于DAG任务调度方法的好坏。

要将DAG中的多个子结点任务调度映射到多个计算机资源上,不仅要考虑不同计算机的处理能力不同,而且计算机资源间的网络通信速率也可能不同,因此是个复杂的问题。

如何为这些DAG任务选择合适的资源,将这些DAG任务分配映射到网络中的多个计算资源上,以达到DAG任务的完成时间最小化等调度目标,即可归结DAG任务在异构分布式计算系统上的调度问题。

关于DAG任务的调度,近年来引起了国内外研究者们的广泛关注。

目前很多关于DAG任务调度方法被提出,并且所采用的调度技术和解决问题的角度各有不同。

其中有一些已成功应用于实际的网格或云计算等工作流调度系统中,如H.Topcuoglu于2002年提出的异构分布式计算系统DAG任务调度模型及其著名的HEFT调度算法已被实际应用在了ASKALON网格工作流系统中。

然而,由于网格、云计算或混合云计算等异构分布式计算系统应用的发展及其追求更低成本和提高资源利用率的需要,必然会要涉及到处理来自多个不同用(租)户的DAG应用任务共享同一组资源的调度问题,并且这些应用的DAG结构类型、服务质量QoS要求(一般包括完成时间、经济花费、可靠性和安全性等几方面)也会多种多样,这必将会产生多个DAG对系统资源的争用、完成时间的最小化、调度的公平性、费用优化和资源利用的提高等问题。

针对多个DAG应用任务共享一组资源调度的这些问题,近几年一些研究者们提出了一些相关的解决办法,但由于这类调度问题研究才起步,有很多新问题亟待进一步研究和解决。

对这些问题的研究和解决,将会对网格、云计算或混合云计算等异构分布式计算环境下的多用(租)户DAG应用发展起到积极推动作用,不仅具有理论研究价值,也有现实的应用价值。

正是在这样的研究背景下,本文围绕异构分布式计算环境下具有不同QoS需求类型的多个DAG共享资源的调度问题、具有期限约束的多DAG共享资源调度的吞吐量最大化问题、总费用优化问题和费用优化的公平性问题等四个方面的内容展开了我们的研究工作。

1.2研究现状

各种类型的DAG任务在多个处理单元上的调度已被证明是NP(Non-deterministicPolynomial)完全难题,即完全多项式非确定性问题。

早在70年代开始就有学者针对各种类型的DAG任务模型在各种资源环境模型下调度的有关问题进行展开了研究。

目前尽管对DAG调度已经有了很多研究成果,但国内外学者仍在继续不断地对其进行深入探索和研究。

这些相关的研究成果,无论是从被调度对象的DAG任务类型、目标资源环境和调度目标等几方面的模型来看,还是从解决问题所采用的技术方法或数学模型上来看,都有很多的分类。

首先从被调度对象的DAG类型、资源环境和调度目标等方面可以做以下一些归类:

(1)从用户对DAG应用的起始和结束时间是否有限制来看,一般可分为无期限约束的DAG调度和具有期限约束的DAG调度。

如前所述,在ASKALON网格工作流系统的工作流定义工具AGWL中,作为可选项,用户可根据应用的需要来指定工作流的最晚完成时间等服务质量(QoS)。

那么这种带有确定的最晚完成时间期限约束的DAG则属于有期限约束类型的DAG。

(2)从调度目标环境的可用资源数目是否固定来说,可分为数目固定和不固定两类。

针对资源数目不固定类型的DAG调度方法和技术适用于资源数量可随DAG调度应用需要动态扩展的分布式系统。

比如针对云计算环境的动态弹性资源管理模式,以减少任务间数据传递的聚簇方法或以减少资源数量为目标的调度算法可归为这一类。

(3)从DAG图中的每个结点任务是否能够继续被分割并且能并行在任意数目机器上执行来看,DAG任务模型又可分为Moldable和Unmoldable两种类型。

一般来说,数据集的处理、Web访问日志分析等作业任务能够将任务根据并行处理资源结点数量被分为若干等分,可归为Moldable类型的DAG任务。

很多著名的算法,如DSC、HEFT算法所针对的是Unmoldable类型的DAG。

然而,两种类型DAG的调度相比,Unmoldable类型DAG的调度方法是基础,多数现有针对Moldable类型问题的方法和技术都是在Unmoldable类型DAG调度方法的基础上进行改进和扩展而来。

实际上由于现实资源数量的有限性和结点任务粒度大小的相对性,Moldable类型的DAG调度最终仍可归为Unmoldable类型DAG的调度问题。

(4)从任务的调度映射方案是否在DAG执行开始前就已确定来看,有动态调度和静态调度两类算法。

静态调度算法是指在DAG执行前依据当前有效的可用计算资源和任务的相关信息,依据一定的方法确定好调度方案和映射关系的方法。

这类算法有很多,常见的列表启发式类算法均属静态类。

而动态算法则是指系统运行过程中动态地为DAG任务进行调度和资源分配的方法。

(5)根据DAG任务是否包含必要和非必要计算成分,可分为精确计算DAG和非精确计算DAG任务的调度算法。

一般来说,在实时的视频和声音等信息处理中常见这类非精确计算DAG任务。

(6)依据DAG任务本身大小是否具有随机性,可分为随机DAG调度和非随机DAG调度,而与随机DAG调度算法密切相关的调度目标之一则是对算法鲁棒性(Robustness)的评价。

对随机DAG调度的鲁棒性分析或旨在改善调度鲁棒性算法认为:

DAG中的任务本身由于输入条件不同或程序类型等不同(如随机搜索类的遗传算法程序),在执行前是无法确定DAG的形状、结构或运算量,或者由于资源在不同时间执行同一任务所需时间的不确定等因素,进而造成DAG任务大小的随机性,因此需要根据任务的随机分布或资源状态的分布函数来优化DAG任务调度。

(7)从系统资源管理方面来看,可以分为根据计算环境中资源的可靠性而展开的资源分配、调度算法的研究和考虑资源负载平衡而展开的调度优化的研究。

(8)根据多个DAG应用是否为共享资源,可分为单DAG和多DAG调度。

为了追求更低的成本和资源共享的需要,其中有关多用(租)户的多DAG共享资源的调度成为近几年来的热点研究问题。

DAG应用任务不同于独立的任务调度,DAG的任务结点之间的数据传递依赖关系和网络传递的时延会造成任务在各分布式资源上留下很多的空闲时隙,如果多个DAG共享资源混合调度,则这些空闲时隙能被多个DAG相互利用,将大大提高资源的利用效率。

其次,从所采用的技术方法或数学模型角度来看,主要有以下几类:

(1)Markov决策过程方法。

主要用于解决具有期限约束的单个DAG调度及其费用优化的问题。

主要思想是用Markov决策过程方法将整个DAG划分为若干任务区间,如果能保证每一个任务区间在各自的限制时间段内完成,则工作流即可在约束的期限之前完成,进而可求出最小费用的任务资源映射方案。

(2)列表启发式方法。

列表启发式方法的主要步骤是在DAG中所有的任务被赋予属性并按照属性优先级的大小降序放在任务表中,一旦任务要求被处理,高优先级的任务首先被调度。

很多文献等所提出的算法都属于这类方法,其中包括H.Topcuoglu所提出的著名HEFT算法。

其主要思想分为两个阶段,第一阶段是根据任务的执行时间以及与后继任务的数据传输时间计算得到这个任务的Ranku值(该任务结点到出口结点之间的最大距离,在有些文献中也被记为B-level),将其作为调度优先级,然后根据ranku值对DAG中的任务进行倒序排序。

第二个阶段是根据第一个阶段得到的任务排序,选取未被调度的任务中优先级最高的任务,然后遍历所有可用资源,查找到能够最早完成处理该任务的计算资源,并将该任务分配到资源上相应的空闲时隙中。

(3)遗传、进化等随机搜索类方法。

遗传算法是目前广泛使用的解决优化组合的算法之一。

它借鉴了生物学中遗传过程中“适者生存”的概念。

遗传算法首先假定潜在的资源分配或任务映射匹配解决方案可以表示为遗传参数的组合,成为染色体。

可以任意选择一定数量的染色体,然后所有染色体基于他们的值排队,通常使用轮转法选择合适的染色体,这能保证最合适的个体得到保留并作为父本。

两个被选中的染色体可以进行交叉配对复制产生后代。

染色体复制会发生突变从而产生新个体。

经过上述过程的多次重复,产生新的染色体会逐渐接近最优解。

此外,应用于DAG调度的其他随机搜索类的方法还有进化算法、蚁群、粒子群等算法。

虽然随机搜索类算法适用范围广,但一般来说时间复杂度较高。

(4)任务复制方法类。

任务的复制减少数据传输的时间,利用计算资源的空闲时间复制前驱任务,以避免某些前驱任务的数据传输时间过长,从而减小计算资源等待的空闲时隙。

(5)排队论方法类。

利用排队论的有关模型来解决DAG调度中资源优化或资源预定的相关问题。

针对有时间限制网格工作流的DAG任务调度,提出了利用“M/M/1/N/∞排队论模型”和“Little公式”计算DAG中每个任务结点在每个资源上执行时间超过期限约束的概率大小,然后进行资源优化,最终确定任务和资源的映射调度方案。

(6)模糊理论及模糊聚类方法。

模糊理论一般用于随机DAG调度问题。

针对任务执行时间不确定的随机DAG调度问题展开研究,利用模糊集扩展原理推算出DAG的关键路径长度可能性的分布和可能的关键任务组合,并在调度和监控中,对那些尽管不是关键路径任务,但其隶属程度高的任务与关键路径任务一起给予同等重要的考虑。

而模糊聚类方法常见于根据DAG调度目标环境中的计算资源相关非功能属性进行聚类并进行资源优化处理。

(7)随机过程模型方法类。

利用离散时间Markov随机过程的遍历性或平稳分布的方法进行DAG吞吐量的优化,或者利用有限状态连续时间的Markov随机过程模型的有关方法对DAG中的关键区间任务进行资源状态预测和资源可靠性的优化。

(8)调度回溯方法类。

该类方法一般用于解决DAG调度的费用优化问题。

核心思想是,在对DAG中每个任务进行资源映射的过程中,如果对某任务分配了速度较慢并且花费便宜的资源后,需要计算整个DAG的完成时间是否超出了时间限制。

如果超出,则取消该任务在这较慢资源上的分配,直到选择到合适的资源为止。

以上为现有DAG调度问题研究中常见的一些技术和方法。

随着网格、云计算和混合云计算等新型异构分布式系统研究和应用的发展,根据系统的资源结构、资源管理模式、商业计费模式、资源可靠性等方面所呈现出的不同特点,现有这些解决DAG调度问题的研究基本上又以以下其中一个或若干个为调度目标:

调度长度最小化、吞吐量最大化、资源利用率最大化、费用最低化、资源负载平衡、可靠性最大化、公平性最大化、达到较好的鲁棒性或满足用户指定的期限约束要求等。

随着新技术的不断出现和研究的进一步发展,新的调度目标也将会不断地出现,并且很多调度目标往往会相互冲突,需要根据具体应用任务的需要和资源环境模型来确定或者进行一定的平衡。

目前现有DAG任务调度的研究绝大多数是针对一个DAG在多个资源上调度问题。

这些研究针对不同类型的DAG应用、不同的目标资源系统和不同的调度目标,以不同的技术方法解决了单DAG应用任务调度中各方面的问题,已基本趋于成熟。

然而,随着异构分布式计算环境下的各种应用深入和发展,尤其是随着网格和云计算工作流等应用系统追求更低成本和资源共享的需要,必然会涉及到处理来自多用(租)户的多DAG共享一组异构分布式计算资源的调度问题。

如中科院计算所的韩艳波研究员在关于互联网分布式系统的XaaS(一切皆服务)模式第三方运营与优化的论著中指出:

同一个物理平台或应用要服务尽可能多的租户,计算、存储和带宽资源在多个应用程序间进行共享和优化调度,并进一步提出了多个租户共享同一个工作流引擎,但每个租户都可以定义不相同工作流的多工作流共享资源的应用模式。

另外,PeterKacsuk也将工作流管理平台分为两大类:

如果多用户同时以协作的方式监控、控制和执行同一个任务图,则称为MC类型;如果所管理运行的多用户之间不同的多个工作流DAG任务图互相独立,则称为MI类型,即多DAG工作流系统。

因此研究和解决多DAG共享资源调度问题对异构(或互联网)分布式计算系统未来的发展具有重要的意义。

尽管很多现有的解决单DAG调度问题的技术方法能够用于多DAG的调度,如处理多DAG调度的一个最直接简单的办法是,利用传统单个DAG调度算法将这多个DAG逐次按顺序调度完毕,或者是对新到达的DAG应用执行需求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1