基于QoS约束的双向分级网格资源调度方法

文档序号:6459929阅读:164来源:国知局
专利名称:基于QoS约束的双向分级网格资源调度方法
技术领域
本发明属于一种网格资源调度方法,特别是一种基于QoS约束的双向 分级网格资源调度方法。
背景技术
网格计算就是将地理上分布的、异构的资源连接在一起,形成一台 高性能的超级计算机,为用户提供随处可得并且可靠的计算能力。网格 提供了共享网络资源和协同解决问题的平台,由于网格建立在异构环境 下,网络上的资源为不同的组织所有,有各自不同的管理方式,因此网 格环境下跨域的资源管理极具挑战性,如何在网格环境下映射一组任务 到一组资源已被证明是NP完全问题。网格资源调度算法的研究是网格资 源管理的一个重要的课题,目前国内外已经提出了很多调度算法,现有 的网格资源调度方法可简单分为两类静态调度方法和动态调度方法。静态调度方法是较早出现的调度方法,它相对较为简单,运行开销 小,数据依赖性小,因而是在网格计算中最早被研究的方法。目前常见 的静态调度方法包括0LB、 MET、 MCT、 Min-Min、 Max-Min、 Duplex、 GA、 SA、 GSA、 Tabu、 A,等十多种。在网格计算环境中,由于各个处理器处理 速度不同,给设计静态调度算法带来了难以平衡负载的困难,使得静态 调度方法难以设计和实现。异构平台上的静态调度策略遇到了很多的问 题设计最优的调度方法被证明是NP完全问题;难以准确评价任务执行 时间和通信延迟;无法应对处理器速度的多样性。相比之下,动态调度 方法有很多优势。动态调度方法能够有效地解决负载评估、效应测定、作业传输、矢 量计算、任务选择和任务迁移等问题。动态调度方法可分为在线模式和 批模式,在线模式是指只要任务到来就映射到机器,该模式对每一个任 务的映射只考虑一次,即一旦任务被映射就不会再改变,常见的在线模式启发式调度方法有0LB、 MCT、 MET、 SA和KPB等,在线沖莫式较简单, 但总体性能不高。批模式是指网格中元任务到来并不立即映射到机器, 而是把任务收集起来组成一个任务集合,等映射事件到来后才对该集合 中的任务进行集中映射。批模式下,调度方法执行前已获得任务的请求 信息和大量任务的实际执行时间,故能做出更好的调度决策。常见的批 模式调度方法有Min-min、 Max-min和Sufferage等,其中,Min-min 方法思路简单,性能稳定,在绝大多数环境下都有良好的表现,是目前 网格调度算法的研究基础之一。已有的网格调度方法都是由分布式计算经典算法演化而来,虽然在 分布式环境中有较好的性能,但对于非集中管理的网格异构环境却都有 局限性首先,对于任务完成时间最小化问题没有4艮好的解决;其次, 网格环境中异构机器的负载平衡也得不到保证;此外,对于有QoS约束 的网格资源调度问题,上述方法都不能很好的解决,造成了不合理的调 度。针对已有方法的这些不足很多研究者提出了改进方案,主要分为以 下几类以改进任务完成时间为目的的算法;对原有方法加入QoS约束 的方法;改进负载均衡能力的方法;按照经济原则考虑调度问题的方法 等。这些方法在解决某一特定的网格调度问题方面有较好的表现,但是 综合性能不强,不适用于现实的网格环境。因此,寻找一种适用于网格 环境的最优算法仍是现在网格计算领域研究的重要课题之一 。发明内容本发明的目的是^是供一种在异构环境下实现多QoS约束下的多种资源的调度,缩短作业完成时间,增强网格资源调度的负载平衡能力的基于QoS约束的双向分级网格资源调度方法。为了实现上述目的,本发明在描述具体方法前先作出如下定义对网格环境中任务定义m个异构的独立任务,表示为T—t。, ti,…,tm},设定网格环境下提交的任务为元任务,满足如下3个条件(1)每个任务都是原子的和独立的,任务之间没有通讯和数据依赖;(2) 每个机器都是独占的,即当一个任务分配给一个机器时,该任 务占有该机器直到运行完毕;(3) 静态运行时间,即在分配任务之前任务在每个机器上的期望运 行时间都是预先可知的。对网格环境中资源的定义把网格中的资源具体为某一种机器,简 称机器,它表示可提供一定的计算能力、网络存储能力、精密仪器及一 些特殊的资源。假设网格异构环境中有n个异构机器,它们表示为 M-(m。,nh,…,mj ,网格中的机器在同一时间内只能执行网格环境中的一个 任务,直到任务完成才能执行其他的任务,即为任务独占。对参数的定义双向分级调度方法使用的三个矩阵和两个向量分别定义如下 定义1预期扭^亍时间EET(Expected Execution Time)矩阵每个元 素EETij表示资源nij在没有负载的情况下,执行任务ti所需要的时间,若任务不能在机器上执行则为系统定义的最大值,EET是一个m x n的矩阵, 它在调度前由网格管理系统测试并记录。定义2预期完成时间ECT (Expected Completion Time)矩阵每个 元素ECTij表示资源nij完成任务ti的时间(在ti之前分配到mj的所有作业 都被执行完毕),它也是一个mxn的矩阵。定义3才几器的可批J亍矩阵CoE (Capability of Execution)矩阵 由EET矩阵计算得出,每个元素CoEij表示资源对任务的可执行情况,它 也是一个mxn的矩阵。此外还要定义两个向量每个任务的可执行机器数量的向量NoM (Number of Machines),它的每个分量值为可执行该任务的机器数量; 每个机器可才丸行任务凌t量的矩阵NoT (Number of Tasks),它的每个分 量表示相应机器的可执行任务的数量。设定作业ti的到达时间是a"开始运行的时间是dj,则由以上的定 义可以得出£C7;y =《+ ............................................................... (1)如果作业h分配给了资源mj运行,令ECTi来表示ECTij,那么,最大执行时间就等于最大的任务完成时间与调度起始时间之间的差值,即从 第一个作业开始执行到最后一个作业被执行完毕所花的时间,若设起始时间为零则有...................................(2)Makespan是异构计算系统的一个衡量标准,网格资源调度的主要目的 就是要减小Makespan。本发明首先对任务和资源分别分级,对分级后的任务和资源进行调度,其调度方法是第一步骤根据任务提交的QoS请求对所有可用机器提供的QoS服 务进行测试,以矩阵形式记录测试的结果,可执行则记录执行时间,不 可执行估i相应标识;第二步骤对测试结果矩阵按指定的原则变形,并对变形后的矩阵按水平方向和垂直方向累加,计算出两个向量 A:可执行相应任务的资源数目向量; B:每个资源的可执行任务数目向量;第三步骤按计算所得的两个向量对任务和资源进行非降序分组; 第四步骤按任务分组结果进行优先级调度,分组值小的优先级高 先调度,分组内部按Min-min算法原则进行调度;第五步骤调度中若出现任务对不同资源有相同的最小完成时间, 则按资源分组结果进行调度,分组值小的优先级高先调度;第六步骤重复执行第四步骤到第五步骤,直到所有任务调度完成。 本发明分析了网格异构环境下资源的特殊性和多QoS约束下资源调 度的复杂性,解决了异构环境中多QoS约束下多种资源的调度问题,分 别对资源和任务进行分级,实现了网格环境下的有效调度。本调度方法 与传统网格资源调度方法相比,有以下特点1、从多QoS约束任务的需 求出发考虑异构资源的复杂性,不局限于传统调度方法只对计算资源的 调度,本专利对多种资源调度提出了相应的调度方法,更适用于网格异 构环境;2、对任务进行了详细和合理的分级,区别于原有一些调度方法 的两级调度模式,更能反应任务的特性,优先调度有"苛刻"要求的任 务,确保了总体完成时间最小;3、提出了对资源分级的思想,对网格环境中的稀少资源进行优先调度,改进由于等待某些稀少资源而产生的不必要的等待时间,并可以提高这些资源的利用率;4、该调度方法中分 别对任务和资源进行分级,综合双向分级结果对网格资源进行调度,相 对于传统调度方法有更小的任务完成时间和负载均衡性能。


图1为本发明的执行流程图。
具体实施方式
下面结合附图对本发明作进一步的详细描述。本发明基于QoS的网格资源调度模型是解决异构环境下资源调度问 题的有效途径,在此^^莫型下,任务以描述其QoS需求的方式提交,资源 以描述其可提供的QoS服务方式发布,调度要保证在QoS约束的前提下 尽量使任务有最小的完成时间(Makespan)。目前已经有很多调度方法考 虑了QoS约束的问题,但多数都只考虑一维QoS的影响简单的把任务 分为两組,使具有高QoS要求的任务为一组首先被映射;具有底QoS要 求的任务为一组后映射。这显然不符合网格环境的现实,网格环境是多 种资源构成的异构环境,任务对资源的QoS要求可以是各种形式,如 CPU性能、机器带宽、网络能力、精密仪器等特殊资源,这就要求网格资 源调度要考虑多维QoS约束。在考虑多维QoS约束的网格环境中,任务 提交的QoS需求及资源提供的QoS服务都是多种多样的,这使得网格环 境中任务和资源的对应情况变的复杂。4艮大一部分资源只能满足任务的 某些QoS需求,而不是全部,它们就不能分配给该任务。这就要求在调 度前要测试资源对任务的满足情况,根据任务QoS需求的苛刻程度及资 源的性能区别制定合理的调度方案。双向分级调度方法是指对预期执行时间矩阵EET在垂直方向和水平 方向上分别分级,根据分级的结果对任务进行调度,下面给出了调度中 使用的矩阵和向量的产生方法,介绍了它们在网格资源调度中的作用。调度中使用的矩阵和向量的产生方法根据任务提交的QoS请求对 所有可用机器提供的QoS服务进行测试,并用预期执行时间矩阵EET来 描述测试的结果,其中可执行则记录预期执行时间,不可执行记录为'X,。 根据EET矩阵产生CoE矩阵,对EET矩阵中每个元素的情况进行分析 若EET矩阵中元素为tt字,则CoE中相应位置置'l,;若EET矩阵中元 素为'X,,则CoE矩阵中相应位置置'0,。下面给出了 EEC矩阵的一个 设定,推导出的CoE矩阵如下若££c =8x1 2 3 4义 71 0 0"| 1 1 1 1 0 1产生的方法为CoE矩,可推导出。£ = 然后,由toE丧阵产生NoM向量和No—向—量; 阵的每一行元素相加为NoM向量的每一个分量,分量的个数于任务数相 同;CoE矩阵的每一列元素相加为NoT向量的每一个分量,分量的个数 与机器数相同,公式如下m—l肠m, =ZCo£,;,(0 2,^-1)................................................ (3)aw; =Zc (o".^-1)................................................ (4),=0对于上面对EEC的假设,相应的NoM和NoT向量分别为NoM={l, 3, 2}; NoT={3, 1, 2},它们分别是CoE矩阵水平和垂直方向累加的结果。利用NoM向量和NoT向量按垂直方向和水平方向分别对EET进行分 级,方法如下垂直方向分级对NoM向量的分量进行非降序排序,有相同值的分 量分为一组,并记录每组的分量值作为每组的调度级别若值为'0,,表示该任务在当前硬件环境下不可完成,不予调度;若为其它值,则值 越小表示分组的级别越高,任务按级别由高到底调度,若值为T的分 组优先级最高,最先调度。水平方向分级对NoT向量的分量进行非P争序排序,有相同值的分 量分为一组,并记录每组的分量值作为每组的调度级别若值为'O,, 表示该机器不可完成任何任务,为无用机;若为其它值,则值越小表示 分组的级别越高。按照垂直方向分级的结果按优先级调度,可以保证最苛刻QoS约束 的任务首先调度,防止较低QoS要求的任务占用较高QoS服务的机器。 分组内部按Min-Min算法调度,尽力获得最小的任务完成时间。若在使 用Min-Min算法调度时出现同一分组内有多个机器同时对某任务有最小 完成时间,则按NoT向量分组结果中记录的机器优先级进行调度。在整 个调度的过程中,每完成一个任务的调度就要更新NoT向量的值并重新 分组,以保证每次使用的值为机器可执行剩余任务数量的最新值。本发明双向分级调度方法的伪码描述如下(1) for作业集T中的所有作业tk(2) for所有的机器nij(3) ECTij = EEL + dj(4) end for(5) end for(6) 由EET矩阵计算出CoE矩阵(7) 由CoE矩阵计算出向量NoM和NoT(8) 把任务集T中的作业按NoM向量的分量值非降序分组(9) 移除T中对应NoM向量分量值为零的任务(10) do until任务集合T中所有任务被映射(11) for任务集T中所有已排序的分组(12) for每个分组中的作业,找到具有最小完成时间的机器(13) 找到具有最小的最小完成时间的任务tk(14) If如果在多个机器上有相同的最小完成时间(15) 找到在NoT向量中具有最小分量值的机器ttu(16) end if(17) end for(18) 分配任务U到具有最小完成时间的机器nh上(19) 从任务集合T中删除任务tk(20) NoT向量中对应机器m,的分量值减l(21) 更新山(22) 对所有i的取值更新ECTu(23) end for(24) end do从上述调度过程可以看出,该调度方法先对可执行机器数目少的机 器进行调度,然后再对可执行机器数目多的机器进行调度,以减弱由异 构机器性能受限产生的执行任务的相关性。其中,第l行到第5行对作 业集中的每个作业算出该作业在每个资源上的期望完成时间。第6 ;阡到 第8行是对ECT矩阵产生机器的可执行关系矩阵CoE,可以满足任务QoS 需求的机器在矩阵中标志为1,反之为0,并由CoE矩阵产生任务和^L器 的可执行关系向量NoM和NoT。第9行排除不可执行的任务,防止任务调度在循环过程中失效。第IO行到最后是把已分組的任务对所有可用的机器以Min-min算法进行测试,找出最小完成时间的机器分配作业,其中第14行到16行是在对有相同的最小执行时间的机器进行选择,选择的原则是按照NoT矩阵分组级别分配,以减少机器对任务的向关性对makes pan产生影响。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
权利要求
1、一种基于QoS约束的双向分级网格资源调度方法,该方法首先对任务和资源分别分级,对分级后的任务和资源进行调度,其调度方法是第一步骤根据任务提交的QoS请求对所有可用机器提供的QoS服务进行测试,以矩阵形式记录测试的结果,可执行则记录执行时间,不可执行做相应标识;第二步骤对测试结果矩阵按指定的原则变形,并对变形后的矩阵按水平方向和垂直方向累加,计算出两个向量A可执行相应任务的资源数目向量;B每个资源的可执行任务数目向量;第三步骤按计算所得的两个向量对任务和资源进行非降序分组;第四步骤按任务分组结果进行优先级调度,分组值小的优先级高先调度,分组内部按Min-min算法原则进行调度;第五步骤调度中若出现任务对不同资源有相同的最小完成时间,则按资源分组结果进行调度,分组值小的优先级高先调度;第六步骤重复执行第四步骤到第五步骤,直到所有任务调度完成。
全文摘要
本发明涉及一种基于QoS约束的双向分级网格资源调度方法,其调度方法是1.根据任务提交的QoS请求对所有可用机器提供的QoS服务进行测试,以矩阵形式记录测试的结果,可执行则记录执行时间,不可执行做相应标识;2.对测试结果矩阵按指定的原则变形,并对变形后的矩阵按水平方向和垂直方向累加,计算出两个向量;3.按计算所得的两个向量对任务和资源进行非降序分组;4.按任务分组结果进行优先级调度,分组值小的优先级高先调度,分组内部按Min-min算法原则进行调度;5.调度中若出现任务对不同资源有相同的最小完成时间,则按资源分组结果进行调度,分组值小的优先级高先调度;6.重复执行第四步骤到第五步骤,直到所有任务调度完成。
文档编号G06F15/16GK101271405SQ20081004769
公开日2008年9月24日 申请日期2008年5月13日 优先权日2008年5月13日
发明者张小庆, 施步青, 李春林, 蔡英华, 钟景秀 申请人:武汉理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1