一种优化多任务间通信能耗的作业调度方法

文档序号:6436691阅读:159来源:国知局
专利名称:一种优化多任务间通信能耗的作业调度方法
技术领域
本发明涉及一种计算机机群中多任务调度系统,特别是对具有依赖关系的任务间通信进行管理,具体是指一种优化多任务间通信能耗的作业调度方法。属于计算机机群系统领域。
背景技术
机群(cluster)系统是互相连接的多个独立计算机的集合,这些计算机可以是单机或多处理器系统(PC、工作站或SMP),每个结点都有自己的存储器、I/O设备和操作系统。 机群对用户和应用来说是一个单一的系统,它可以提供低价高效的高性能环境和快速可靠的服务。机群以其卓越的性能价格比和良好的扩展性成为了当今高性能计算的主流体系结构。作业调度系统将机群计算环境中的计算资源整合起来,合理调度作业,充分利用机群计算资源,提高系统的利用率。因此成为机群计算环境的核心和灵魂。近几年来,有关作业调度系统的研究主要集中在提高性能和降低能耗两个方面。机群中作业运行耗能主要包括作业运行在处理器上的计算耗能和处理期间作业通信耗能。对于通信密集型作业,后者占据了相当大的比重。目前,大部分的以降能耗为目的的作业调度方法集中在如何降低作业运行过程中的处理器耗能,而忽略了作业间的通信耗能。鉴于此,本发明设计并实现了一种计算机机群中多任务调度系统,特别是对具有依赖关系的多任务间通信进行管理。

发明内容
本发明的目的是提供一种优化多任务间通信能耗的作业调度方法,具体而言是一种在计算机机群系统中,对具有多任务间通信特征的作业进行调度的方法,用于解决具有依赖关系的多任务间通信因不能完全并发而进行通信资源争夺,进而使得并行应用程序调度周期增加,系统能耗增大的问题。首先定义如下定义1 在DAG(Directed Acyclic Graph,即有向无环图)图中,如果某项任务的运行依赖于另外一项任务的计算结果,则称该另外一项任务为该某项任务的前驱任务,该某项任务为该另外一项任务的后继任务。没有前驱任务的任务称为源点(source)任务,没有后继任务的任务称为汇点(sink)任务。因此一个任务可以有0或1或多个前驱任务;同样,一个任务可以有0或1或多个后继任务。标准的DAG图有且仅有一个源点任务和一个汇点任务。根据上述目的,本发明的技术方案如下将用户提交的并行应用程序(作业)划分为若干个独立的子任务,分配到机群的不同节点上。位于不同节点上的任务间通信遵循下述调度方法。本发明的调度步骤为
步骤一将用户提交的作业划分为具有依赖关系的多个独立任务,即形成标准 DAG图模型。步骤二 根据DAG图获知任务的前驱、后继信息,为每个任务设置一个信息表和一个通信队列。信息表包括该任务的前驱任务、后继任务、前驱任务运行完成标识位和前驱任务与该任务通信完成标识位。通信队列中存放等待与该任务通信的前驱任务。步骤三当系统中某任务A运行完成时,如任务A没有后继任务表示该作业运行完毕。否则将其后继任务的信息表中任务A的运行完成标识位置1,同时将该任务A插入其后继任务的通信队列中。步骤四对于某任务B,若当前通信链路空闲,从通信队列中依次调度任务B的前驱任务与任务B进行通信。通信完成后将任务B的信息表中相应前驱任务通信完成标识位置1。步骤五当某任务的信息表中所有通信完成标志位均为1时,开始运行该任务。本发明一种优化多任务间通信能耗的作业调度方法,其优势在于(1)目前大部分以降功耗为目的的作业调度方法,只考虑任务在处理器上运行产生的能耗,而忽视了分配到不同处理器上的任务间通信产生的能耗。本发明中的方法弥补了这一不足。(2)本发明中提出的通信队列使得任务间有序通信,保证了最小的作业调度长度(schedule length), 从而达到低功耗的目的。


图1是用户提交的作业划分后形成的标准DAG图。图2是本发明流程图。
具体实施例方式为了使本发明所述方法更加清晰,以下举实例并参照附图,对本发明进行进一步详细说明。步骤一,将用户提交的作业进行划分,形成标准DAG型任务关系图。如图1所示, 每个任务可以有多个前驱任务和多个后继任务。其中Al是源点(source)任务,El是汇点 (sink)任务。步骤二,根据DAG图获知任务的前驱、后继信息,为每个任务设置一张信息表。如表1所示,任务的信息表中包含四项信息。图中“_”表示任务的前驱任务和后继任务,由 DAG图得到。两项标识位均初始化为0。信息表长度由任务的实际前驱(或后继)任务个数决定。
权利要求
1. 一种优化多任务间通信能耗的作业调度方法,调度步骤为 步骤一将用户提交的作业划分为具有依赖关系的多个独立任务,即形成标准DAG图模型;步骤二 根据DAG图获知任务的前驱、后继信息,为每个任务设置一个信息表和一个通信队列;信息表包括该任务的前驱任务、后继任务、前驱任务运行完成标识位和前驱任务与该任务通信完成标识位;通信队列中存放等待与该任务通信的前驱任务;步骤三当系统中某任务A运行完成时,如任务A没有后继任务表示该作业运行完毕; 否则将其后继任务的信息表中任务A的运行完成标识位置1,同时将该任务A插入其后继任务的通信队列中;步骤四对于某任务B,若当前通信链路空闲,从通信队列中依次调度任务B的前驱任务与任务B进行通信;通信完成后将任务B的信息表中相应前驱任务通信完成标识位置1 ; 步骤五当某任务的信息表中所有通信完成标志位均为1时,开始运行该任务。
全文摘要
本发明涉及一种优化多任务间通信能耗的作业调度方法一将用户提交的作业划分为具有依赖关系的多个独立任务,形成标准DAG图模型;二根据DAG图获知任务的前驱、后继信息,为每个任务设置一个信息表和一个通信队列;三当系统中某任务A运行完成时,如任务A没有后继任务表示该作业运行完毕;否则将其后继任务的信息表中任务A的运行完成标识位置1,同时将该任务A插入其后继任务的通信队列中;四对于某任务B,若当前通信链路空闲,从通信队列中依次调度任务B的前驱任务与任务B进行通信;通信完成后将任务B的信息表中相应前驱任务通信完成标识位置1;五当某任务的信息表中所有通信完成标志位均为1时,开始运行该任务。
文档编号G06F9/46GK102364447SQ20111033320
公开日2012年2月29日 申请日期2011年10月28日 优先权日2011年10月28日
发明者庞瑜, 梁爱华, 祝明发, 肖利民, 阮利 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1