首页> 中国专利> 基于QoS约束的双向分级网格资源调度方法

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

摘要

本发明涉及一种基于QoS约束的双向分级网格资源调度方法,其调度方法是:1.根据任务提交的QoS请求对所有可用机器提供的QoS服务进行测试,以矩阵形式记录测试的结果,可执行则记录执行时间,不可执行做相应标识;2.对测试结果矩阵按指定的原则变形,并对变形后的矩阵按水平方向和垂直方向累加,计算出两个向量;3.按计算所得的两个向量对任务和资源进行非降序分组;4.按任务分组结果进行优先级调度,分组值小的优先级高先调度,分组内部按Min-min算法原则进行调度;5.调度中若出现任务对不同资源有相同的最小完成时间,则按资源分组结果进行调度,分组值小的优先级高先调度;6.重复执行第四步骤到第五步骤,直到所有任务调度完成。

著录项

  • 公开/公告号CN101271405A

    专利类型发明专利

  • 公开/公告日2008-09-24

    原文格式PDF

  • 申请/专利权人 武汉理工大学;

    申请/专利号CN200810047691.5

  • 申请日2008-05-13

  • 分类号G06F9/46(20060101);G06F15/16(20060101);H04L29/08(20060101);

  • 代理机构武汉开元专利代理有限责任公司;

  • 代理人潘杰

  • 地址 430070 湖北省武汉市武昌珞狮路122号

  • 入库时间 2023-12-17 20:49:36

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-07-03

    未缴年费专利权终止 IPC(主分类):G06F9/46 授权公告日:20091230 终止日期:20120513 申请日:20080513

    专利权的终止

  • 2009-12-30

    授权

    授权

  • 2008-11-19

    实质审查的生效

    实质审查的生效

  • 2008-09-24

    公开

    公开

说明书

技术领域

本发明属于一种网格资源调度方法,特别是一种基于QoS约束的双向分级网格资源调度方法。

背景技术

网格计算就是将地理上分布的、异构的资源连接在一起,形成一台高性能的超级计算机,为用户提供随处可得并且可靠的计算能力。网格提供了共享网络资源和协同解决问题的平台,由于网格建立在异构环境下,网络上的资源为不同的组织所有,有各自不同的管理方式,因此网格环境下跨域的资源管理极具挑战性,如何在网格环境下映射一组任务到一组资源已被证明是NP完全问题。网格资源调度算法的研究是网格资源管理的一个重要的课题,目前国内外已经提出了很多调度算法,现有的网格资源调度方法可简单分为两类:静态调度方法和动态调度方法。

静态调度方法是较早出现的调度方法,它相对较为简单,运行开销小,数据依赖性小,因而是在网格计算中最早被研究的方法。目前常见的静态调度方法包括:OLB、MET、MCT、Min-Min、Max-Min、Duplex、GA、SA、GSA、Tabu、A*等十多种。在网格计算环境中,由于各个处理器处理速度不同,给设计静态调度算法带来了难以平衡负载的困难,使得静态调度方法难以设计和实现。异构平台上的静态调度策略遇到了很多的问题:设计最优的调度方法被证明是NP完全问题;难以准确评价任务执行时间和通信延迟;无法应对处理器速度的多样性。相比之下,动态调度方法有很多优势。

动态调度方法能够有效地解决负载评估、效应测定、作业传输、矢量计算、任务选择和任务迁移等问题。动态调度方法可分为在线模式和批模式,在线模式是指只要任务到来就映射到机器,该模式对每一个任务的映射只考虑一次,即一旦任务被映射就不会再改变,常见的在线模式启发式调度方法有:OLB、MCT、MET、SA和KPB等,在线模式较简单,但总体性能不高。批模式是指网格中元任务到来并不立即映射到机器,而是把任务收集起来组成一个任务集合,等映射事件到来后才对该集合中的任务进行集中映射。批模式下,调度方法执行前已获得任务的请求信息和大量任务的实际执行时间,故能做出更好的调度决策。常见的批模式调度方法有:Min-min、Max-min和Sufferage等,其中,Min-min方法思路简单,性能稳定,在绝大多数环境下都有良好的表现,是目前网格调度算法的研究基础之一。

已有的网格调度方法都是由分布式计算经典算法演化而来,虽然在分布式环境中有较好的性能,但对于非集中管理的网格异构环境却都有局限性:首先,对于任务完成时间最小化问题没有很好的解决;其次,网格环境中异构机器的负载平衡也得不到保证;此外,对于有QoS约束的网格资源调度问题,上述方法都不能很好的解决,造成了不合理的调度。针对已有方法的这些不足很多研究者提出了改进方案,主要分为以下几类:以改进任务完成时间为目的的算法;对原有方法加入QoS约束的方法;改进负载均衡能力的方法;按照经济原则考虑调度问题的方法等。这些方法在解决某一特定的网格调度问题方面有较好的表现,但是综合性能不强,不适用于现实的网格环境。因此,寻找一种适用于网格环境的最优算法仍是现在网格计算领域研究的重要课题之一。

发明内容

本发明的目的是提供一种在异构环境下实现多QoS约束下的多种资源的调度,缩短作业完成时间,增强网格资源调度的负载平衡能力的基于QoS约束的双向分级网格资源调度方法。

为了实现上述目的,本发明在描述具体方法前先作出如下定义:

对网格环境中任务定义:m个异构的独立任务,表示为T={t0,t1,...,tm},设定网格环境下提交的任务为元任务,满足如下3个条件:

(1)每个任务都是原子的和独立的,任务之间没有通讯和数据依赖;

(2)每个机器都是独占的,即当一个任务分配给一个机器时,该任务占有该机器直到运行完毕;

(3)静态运行时间,即在分配任务之前任务在每个机器上的期望运行时间都是预先可知的。

对网格环境中资源的定义:把网格中的资源具体为某一种机器,简称机器,它表示可提供一定的计算能力、网络存储能力、精密仪器及一些特殊的资源。假设网格异构环境中有n个异构机器,它们表示为M={m0,m1,...,mn},网格中的机器在同一时间内只能执行网格环境中的一个任务,直到任务完成才能执行其他的任务,即为任务独占。

对参数的定义:

双向分级调度方法使用的三个矩阵和两个向量分别定义如下:

定义1预期执行时间EET(Expected Execution Time)矩阵:每个元素EETij表示资源mj在没有负载的情况下,执行任务ti所需要的时间,若任务不能在机器上执行则为系统定义的最大值,EET是一个m×n的矩阵,它在调度前由网格管理系统测试并记录。

定义2预期完成时间ECT(Expected Completion Time)矩阵:每个元素ECTij表示资源mj完成任务ti的时间(在ti之前分配到mj的所有作业都被执行完毕),它也是一个m×n的矩阵。

定义3机器的可执行矩阵CoE(Capability of Execution)矩阵:由EET矩阵计算得出,每个元素CoEij表示资源对任务的可执行情况,它也是一个m×n的矩阵。

此外还要定义两个向量:每个任务的可执行机器数量的向量NoM(Number of Machines),它的每个分量值为可执行该任务的机器数量;每个机器可执行任务数量的矩阵NoT(Number of Tasks),它的每个分量表示相应机器的可执行任务的数量。

设定作业ti的到达时间是ai,开始运行的时间是dj,则由以上的定义可以得出:

ECTij=dj+EETij.......................................(1)

如果作业ti分配给了资源mj运行,令ECTi来表示ECTij,那么,最大执行时间就等于最大的任务完成时间与调度起始时间之间的差值,即从第一个作业开始执行到最后一个作业被执行完毕所花的时间,若设起始时间为零则有:

Makespan=Max(ECTi),ti∈T..............................(2)

Makespan是异构计算系统的一个衡量标准,网格资源调度的主要目的就是要减小Makespan。

本发明首先对任务和资源分别分级,对分级后的任务和资源进行调度,其调度方法是:

第一步骤:根据任务提交的QoS请求对所有可用机器提供的QoS服务进行测试,以矩阵形式记录测试的结果,可执行则记录执行时间,不可执行做相应标识;

第二步骤:对测试结果矩阵按指定的原则变形,并对变形后的矩阵按水平方向和垂直方向累加,计算出两个向量:

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服务都是多种多样的,这使得网格环境中任务和资源的对应情况变的复杂。很大一部分资源只能满足任务的某些QoS需求,而不是全部,它们就不能分配给该任务。这就要求在调度前要测试资源对任务的满足情况,根据任务QoS需求的苛刻程度及资源的性能区别制定合理的调度方案。

双向分级调度方法是指对预期执行时间矩阵EET在垂直方向和水平方向上分别分级,根据分级的结果对任务进行调度,下面给出了调度中使用的矩阵和向量的产生方法,介绍了它们在网格资源调度中的作用。

调度中使用的矩阵和向量的产生方法:根据任务提交的QoS请求对所有可用机器提供的QoS服务进行测试,并用预期执行时间矩阵EET来描述测试的结果,其中可执行则记录预期执行时间,不可执行记录为‘X’。根据EET矩阵产生CoE矩阵,对EET矩阵中每个元素的情况进行分析:若EET矩阵中元素为数字,则CoE中相应位置置‘1’;若EET矩阵中元素为‘X’,则CoE矩阵中相应位置置‘0’。下面给出了EEC矩阵的一个设定,推导出的CoE矩阵如下:

若:EEC=8XX2354X7,可推导出CoE=100111101

然后,由CoE矩阵产生NoM向量和NoT向量,产生的方法为:CoE矩阵的每一行元素相加为NoM向量的每一个分量,分量的个数于任务数相同;CoE矩阵的每一列元素相加为NoT向量的每一个分量,分量的个数与机器数相同,公式如下:

NoMi=Σj=0m-1CoEij,(0in-1)---(3)

NoTj=Σi=0n-1CoEij,(0jm-1)---(4)

对于上面对EEC的假设,相应的NoM和NoT向量分别为:NoM={1,3,2};NoT={3,1,2},它们分别是CoE矩阵水平和垂直方向累加的结果。

利用NoM向量和NoT向量按垂直方向和水平方向分别对EET进行分级,方法如下:

垂直方向分级:对NoM向量的分量进行非降序排序,有相同值的分量分为一组,并记录每组的分量值作为每组的调度级别:若值为‘0’,表示该任务在当前硬件环境下不可完成,不予调度;若为其它值,则值越小表示分组的级别越高,任务按级别由高到底调度,若值为‘1’的分组优先级最高,最先调度。

水平方向分级:对NoT向量的分量进行非降序排序,有相同值的分量分为一组,并记录每组的分量值作为每组的调度级别:若值为‘0’,表示该机器不可完成任何任务,为无用机;若为其它值,则值越小表示分组的级别越高。

按照垂直方向分级的结果按优先级调度,可以保证最苛刻QoS约束的任务首先调度,防止较低QoS要求的任务占用较高QoS服务的机器。分组内部按Min-Min算法调度,尽力获得最小的任务完成时间。若在使用Min-Min算法调度时出现同一分组内有多个机器同时对某任务有最小完成时间,则按NoT向量分组结果中记录的机器优先级进行调度。在整个调度的过程中,每完成一个任务的调度就要更新NoT向量的值并重新分组,以保证每次使用的值为机器可执行剩余任务数量的最新值。

本发明双向分级调度方法的伪码描述如下:

(1)for作业集T中的所有作业tk

(2)for所有的机器mj

(3)ECTij=EETij+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向量中具有最小分量值的机器m1

(16)end if

(17)end for

(18)分配任务tk到具有最小完成时间的机器m1

(19)从任务集合T中删除任务tk

(20)NoT向量中对应机器m1的分量值减1

(21)更新d1

(22)对所有i的取值更新ECTi1

(23)end for

(24)end do

从上述调度过程可以看出,该调度方法先对可执行机器数目少的机器进行调度,然后再对可执行机器数目多的机器进行调度,以减弱由异构机器性能受限产生的执行任务的相关性。其中,第1行到第5行对作业集中的每个作业算出该作业在每个资源上的期望完成时间。第6行到第8行是对ECT矩阵产生机器的可执行关系矩阵CoE,可以满足任务QoS需求的机器在矩阵中标志为1,反之为0,并由CoE矩阵产生任务和机器的可执行关系向量NoM和NoT。第9行排除不可执行的任务,防止任务调度在循环过程中失效。第10行到最后是把已分组的任务对所有可用的机器以Min-min算法进行测试,找出最小完成时间的机器分配作业,其中第14行到16行是在对有相同的最小执行时间的机器进行选择,选择的原则是按照NoT矩阵分组级别分配,以减少机器对任务的向关性对makespan产生影响。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号