首页> 中国专利> 网格环境下动态在线式任务调度系统及其调度方法

网格环境下动态在线式任务调度系统及其调度方法

摘要

本发明提供一种网格环境下动态在线式任务调度系统及其调度方法,包括任务调度器、资源管理者、网格资源分配管理模块、网格资源信息服务模块、网格信息目录服务模块。所述任务调度器包括任务池、任务接收者、任务调度者和任务管理者,所述任务调度器包括任务池、任务接收者、任务调度者和任务管理者,所述任务接收者将收到的任务放入所述任务池中,所述任务调度者负责采用调度策略调度任务池中的任务,并为每个任务创建一个任务管理者,所述任务管理者相当于客户代理,根据客户的需求管理任务。本发明技术方案运行于Globus Toolkit 2计算网格平台之上,基于Globus Toolkit 2的元计算目录服务和GRAM两大模块实现。其具有可移植性,配置方便,无需第三方软件支持的优点。

著录项

  • 公开/公告号CN1963763A

    专利类型发明专利

  • 公开/公告日2007-05-16

    原文格式PDF

  • 申请/专利权人 同济大学;

    申请/专利号CN200510110168.9

  • 申请日2005-11-09

  • 分类号G06F9/46(20060101);

  • 代理机构31219 上海光华专利事务所;

  • 代理人余明伟

  • 地址 200092 上海市杨浦区四平路1239号

  • 入库时间 2023-12-17 18:33:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-01-11

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

    专利权的终止

  • 2008-04-30

    授权

    授权

  • 2007-07-11

    实质审查的生效

    实质审查的生效

  • 2007-05-16

    公开

    公开

说明书

技术领域

本发明涉及一种网格环境下任务调度系统及其调度方法,属于计算机网格技术领域。

背景技术

网格将分布的闲散资源通过高速网络链接起来,为高性能非平凡的计算提供资源。为了合理、充分的使用资源,必须对任务进行优化调度。目前,较为著名的任务调度器有便携式批量处理系统(PBS)、毛伊调度器(Maui)、负载共享器(LSF)、秃鹫调度器(Condor)、负载平均器(Load Leveler)、负载均衡器(Load Balancer)、批量调度器(Batch)等。这些任务调度器有各自的特点,主要应用于“高性能计算”的机群系统,适合低吞吐率的大型任务计算。

PBS用于集群系统、超级计算机和大规模并行系统。为所有的资源提供统一的接口,易于配置以满足不同系统的需求,灵活的作业调度器允许不同系统采用自己的调度策略。Maui的资源和负载管理允许高级的参数配置:作业优先级、调度和分配、公平性和公平共享和预留策略。LSF可以支持异构的Unix平台和Windows NT平台,实现透明地远程执行作业、自动地收集信息实现分布负载共享、自动管理调度批处理作业等。Load Leveler将任务分布到一个工作站机群中,也可以分布到多处理器的各个节点上。可以决定何时或者如何将一个由用户或管理员设置的基于参数的任务启动。Load Balancer力求利用将工作量分布到网络上可获得的Unix系统中来优化使用计算机资源,利用空闲计算机资源来提高任务的吞吐量,通过将负载尽量均匀地分布到每个可获得的计算机上。Batch使用BSD任务控制信号来控制批作业,客户端程序则可以提供提交、检查、移动任务的功能。

任务调度是将任务合理地分配到资源上去,达到负载均衡和高吞吐率。任务调度遵循以下两个分配原则:(1)负载均衡原则。任务应该分配到完成时间较早的处理机上,使得各处理机运行时间相当。(2)高吞吐率原则。任务应该分配到执行时间较少的处理机上。

发明内容

本发明的目的在于,在网格环境的小任务条件下,实现高吞吐率的动态在线式任务调度系统及其方法,所述动态在线方式调度是指接收到任务后根据当前资源状况立即进行调度。其面向的情况是葛娄巴斯(Globus)网格环境下的小任务高吞吐率情况。该情况具有以下特点:(1)在Globus网格平台上,计算任务均是使用资源规范语言(Resource SpecificationLanguage,RSL)描述。本发明方法先解析Globus工具包第二版(Globus Toolkit 2)的RSL,然后调度。(2)Globus网格平台上,本调度器与Globus Toolkit 2的网格资源分配管理(GRAM)、元计算目录服务(MDS)相结合,充分利用Globus Toolkit 2提供的任务管理功能和网格资源信息。(3)本调度器面向小任务(计算时间约为几秒或几十秒),适合高任务到达频率。

为达上述目的本发明采用如下技术方案:

一种网格环境下动态在线式任务调度系统,包括任务调度器、资源管理者、网格资源分配管理(GRAM)模块、网格资源信息服务(GRIS)模块、网格信息目录服务(GIIS)模块。所述任务调度器包括任务池、任务接收者、任务调度者和任务管理者,所述任务调度器包括任务池、任务接收者、任务调度者和任务管理者,所述任务池用于暂时存放任务,所述任务接收者将收到的任务放入所述任务池中,所述资源管理者采集资源信息,供所述任务调度者使用,所述任务调度者负责采用调度策略调度任务池中的任务,并为每个任务创建一个任务管理者,所述任务管理者相当于客户代理,根据客户的需求管理任务。

网格资源分配管理(GRAM)模块、网格资源信息服务(GRIS)模块、网格信息目录服务(GIIS)模块是Globus本身提供的模块,用于采集网格资源信息。

一种网格环境下动态在线式任务调度方法,采用上述网格环境下动态在线式任务调度系统,包括以下步骤:

(1)客户使用RSL描述请求,限定所需资源,通过网络使用套接字Socket通信,将任务发送给任务接收者;

(2)任务接收步骤:判断任务池是否还有空间,若任务池为空或有空闲结点,将任务加入到任务池中任务链表的队尾,并发送信号给任务调度者,然后继续诊听端口;若任务池已满,任务接收者执行系统调用,进入挂起状态,等待唤醒;

(3)任务调度步骤:判别任务池的任务链表中是否有任务;若有待调度任务,则任务调度者从任务链表的队首取出一个任务,解析任务的RSL语句,根据任务对资源的需求,通过资源管理者为其分配网格结点计算资源,并将任务分配到资源上;创建子进程任务管理者,并将该调度任务的句柄交给该任务的管理者;

(4)任务管理步骤:监控任务当前状态,并且诊听端口等待客户请求;从任务的输出文件中读入结果,将结果返回给客户。

本发明技术方案运行于Globus Toolkit 2计算网格平台之上,基于Globus Toolkit 2的元计算目录服务(MDS,Metacomputing Directory Service)和GRAM两大模块实现。通过Globus Toolkit 2的MDS实时采集的资源信息进行调度。其具有可移植性,配置方便,无需第三方软件支持的优点。

附图说明

图1为网格环境下动态在线式任务调度系统架构图;

图2为任务调度器的任务池结构;

图3为网格环境下动态在线式任务调度方法的流程图。

具体实施方式

如图1所示,一种网格环境下动态在线式任务调度系统,包括任务调度器、资源管理者、网格资源分配管理(GRAM)模块、网格资源信息服务(GRIS)模块、网格信息目录服务(GIIS)模块,所述任务调度器包括任务池、任务接收者、任务调度者和任务管理者,所述任务池用于暂时存放任务,所述任务接收者将收到的任务放入所述任务池中,所述资源管理者采集资源信息,供所述任务调度者使用,所述任务调度者负责采用调度策略调度任务池中的任务,并为每个任务创建一个任务管理者,所述任务管理者根据客户的需求管理任务。其中,

任务池:它是任务接收者与任务调度者共享的一块内存,用于暂时存放任务。当任务的提交速度高于任务的调度速度时,任务在池内排队,等待调度。共享内存使用系统调用申请。任务池是一个结构体数组,每个结构体存放一个任务。为便于使用任务池,用两个链表管理对其进行管理。两个链表分别是任务链表(job_list)和空闲链表(idle_list)。任务链表中的结构体是存放作业的;空闲链表中的结构体是空的。如图2所示。在Globus 2计算网格中,任务使用RSL描述。RSL中指明了该任务所需资源,可执行程序的全路径名及参数,输入文件、输出文件的全路径名等。客户的一个作业包括三个部分:客户机IP、端口以及RSL。IP与端口用于确定客户程序,以便将结果发送回去。RSL阐明了客户所要求进行的计算。任务池作为临界资源,为避免竞争条件(Race Condition),受信号量保护。任务接收者和任务调度者必须在临界区内访问任务池,进入或退出临界区需要分别做P或V操作。使用系统调用申请获得信号量。

任务接收者:它是后台端口监控进程,负责接收客户提交的任务。客户使用套接字(Socket)实现与任务接收者的通信。接收者在端口收到一个任务后,进入临界区,从任务池的idle_list摘得一个空闲结点,将任务填入结点中,将结点链入job_list,退出临界区,继续监控端口。在具体实现时,任务接收者需要根据任务池的不同情况,作不同的处理。有两种特殊情况需要注意:(1)任务池已满,任务接收者无法获得空闲结点。任务接收者使用系统调用,进入挂起状态。(2)任务池已空,任务接收者将刚收到的任务存入任务池后,使用系统调用向任务调度者发送信号,将其唤醒。

任务调度者:针对发明目的特点(高响应率、小任务),本调度器采用动态在线调度方式。当任务池中有待调度任务时:(1)任务调度者按照一定的优先级取出一个任务,解析其RSL;(2)通过资源管理者获取资源;(3)提交任务,并创建与该任务对应的任务管理者。

任务管理者:Globus Toolkit 2提供的应用程序接口(API)可以(1)获得任务的状态,Globus支持8种状态,即,未提交(Unsubmitted)、文件上传(StageIn),等待(Pending),运行(Active),Suspended(挂起),Stageout(文件下载),完成(Done);(2)取消正在执行的任务,杀死进程,回收该进程所占用的资源。另外,本调度器还实现了以下3个API,用于结果数据的返回:(1)从结果文件读取数据;(2)使用Socket发送数据;(3)打开Socket端口,接收数据。

网格任务:网格任务由3部分组成:客户端IP地址、客户端端口号、RSL。客户端IP地址、客户端端口号用于定位客户端程序。RSL用于描述客户请求的任务,指明任务所在的路径、参数、输入输出文件等。

一种网格环境下动态在线式任务的调度方法,采用上述任务调度系统,若客户向调度器提交某个请求,任务调度器的运作流程如图3所示,包括以下步骤:

(1)客户使用RSL描述请求,限定所需资源,通过网络使用套接字Socket通信,将任务发送给任务接收者;

(2)任务接收步骤:判断任务池是否还有空间,若任务池为空或有空闲结点,将任务加入到任务池中job_list的队尾,并发送信号给任务调度者;若任务池已满,任务接收者执行系统调用,进入挂起状态;然后继续诊听端口;

(3)任务接收步骤:将任务加入到任务池中的job_list的队尾;

(4)任务调度步骤:判别任务池的job_list中是否有任务;

(5)任务调度步骤:若有待调度任务,则任务调度者从job_list的队首取出一个任务;

(6)任务调度步骤:任务调度者解析任务的RSL语句,根据任务对资源的需求,通过资源管理者为其分配网格结点资源,并将任务提交到某个网格结点上;

(7)任务调度步骤:任务调度者创建子进程(任务管理者),并将该任务的句柄交给任务管理者;

(8)任务管理步骤:监控任务当前状态,并且诊听端口等待客户请求;

(9)任务管理步骤:若客户向任务管理者发出请求,要求取回计算结果,则任务管理者从任务的输出文件中读入结果,将结果返回给客户。

步骤(6)将任务提交到某个网格结点时:任务调度者在提交任务之前,需考虑任务请求的资源,分以下3种情况:(1)若该任务请求的资源过多,任何一个计算节点都无法满足其需求,则调度者将该任务删除,并告知其提交者;(2)若该任务请求的资源多于网格结点资源,则调度者将该任务退还给任务池,调度者选择下一个任务;(3)若网格结点资源可以满足该任务对资源的需求,则实现匹配。在具体实现时,若任务池中的任务被全部调度后任务池为空,此时调度者使用系统调用,进入挂起状态,等待任务接收者发信号将其唤醒;若原本任务池已满,任务调度者调度完一个任务后,任务池中有一个空闲结点。此时任务调度者必须使用系统调用向任务接收者发送信号,将其唤醒。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号