一种作业调度方法和计算装置制造方法

文档序号:6535512阅读:139来源:国知局
一种作业调度方法和计算装置制造方法
【专利摘要】本发明提供了一种作业调度方法和计算装置,该方法包括:在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗口;缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填;在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,并针对-被终止的回填作业设置检查点;并在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。采用本发明提供的作业调度方法,能够提高系统资源的利用率,减少作业的等待时间。
【专利说明】一种作业调度方法和计算装置
【技术领域】
[0001]本发明涉及计算装置【技术领域】,尤其涉及一种作业调度方法和计算装置。
【背景技术】
[0002]并行作业调度系统一直是超级计算机系统非常重要的组成部分,它根据用户的作业资源请求分配可用的计算节点给并行程序。并行作业会占用分配的计算节点一直到作业运行完成/失败,或由于作业运行时间超过运行脚本所指定的运行估计时间而被系统进程杀死。由于资源有限,并行作业在进入作业队列后一般不能立即得到所申请的计算资源,往往要等待一段时间。并行作业调度系统的主要目标是减少平均作业等待时间,并且最大化系统的资源利用率,同时对所有作业保持一定的公平性。
[0003]经过几十年的发展,并行作业调度技术已相当成熟,近年少有重大进展。尽管学术界提出了一些新策略和新算法,例如动态分割技术和组调度技术。但这些技术由于实际使用及其它因素的限制并没有得到大规模应用。到目前为止,基于先来先服务(First ComeFirst Served, FCFS)的回填算法依然是多数超级计算机和集群系统广泛采用的并行作业调度算法。该算法首先由美国阿贡国家实验室为当时的IBM SPl并行计算系统设计的,并在EASY调度系统中得以实现。该算法的基本思想非常简单:高性能计算机系统在按照作业优先级调度队列中并行作业运行的时候,系统中会留下一些难以利用的资源“孔洞”,这时系统会从等待队列中找出那些适合的低优先级短作业并在不影响高优先级作业运行的前提下得到提前运行。从而提高了系统的利用率,缩短了作业的平均等待时间。目前主流的并行作业调度系统,如LSF、Moab、Mau1、PBS/Torque和LoadLeveler所采用的默认设置都是基于FCFS回填算法的变种。
[0004]虽然回填算法能够利用低优先级的小作业填充高优先级作业留下的资源“孔洞”,提高了利用率。然而,在实际应用中用户提交的作业运行时间估计一般偏大,导致很多作业不能回填。从而造成计算机系统的利用率仍然较低,在很多资源空闲的时候,依然有很多作业在队列中等待。
[0005]可见,现有技术中的作业调度方案不能有效的利用计算机的计算资源。

【发明内容】

[0006]本发明提供了一种作业调度方法和计算装置,提高系统资源的利用率,减少作业的等待时间。
[0007]本发明提供了一种作业调度方法,包括:
[0008]在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗口 ;
[0009]缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填;
[0010]在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,并针对在被终止的回填作业中设置检查点;[0011]在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计
算任务。
[0012]优选的,所述缩短队首作业之外的其他非队首作业对应的运行时间估计,具体包括:
[0013]将所述非队首作业对应的运行时间估计乘以一个预设分割因子P,其中,0〈ρ〈1。
[0014]优选的,所述将所述非队首作业对应的运行时间估计乘以一个预设分割因子p,具体包括:
[0015]在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。
[0016]优选的,所述根据缩短后的运行时间估计判断所述非队首作业是否能够回填具体包括:
[0017]在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计小于所述回填窗口时,判定所述非队首作业可以回填。
[0018]优选的,所述根据缩短后的运行时间估计判断所述非队首作业是否能够回填具体包括:
[0019]在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计大于所述回填窗口时,判断在所述回填窗口结束时所述非队首作业和所述队首作业是否可以同时运行,若是,则判定所述非队首作业能够回填。
[0020]本发明提供了一种计算装置,包括:
[0021]回填窗口计算模块,在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗口;
[0022]回填模块,用于缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填;
[0023]计算模块,用于在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,还用于在被终止的回填作业中添加检查点,并在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。
[0024]优选的,所述回填模块,用于将所述非队首作业对应的运行时间估计乘以一个预设分割因子p,其中,0〈ρ〈1。
[0025]优选的,所述回填模块具体用于在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。
[0026]本发明中,缩短非队首作业的运行估计时间,从而利于非队首作业的回填,提高系统的资源利用率。另一方面,为了避免因缩短非队首作业的运行估计时间而导致非队首作业在回填窗口结束时仍在运行进而导致系统的计算资源不能运行队首作业的情况,本发明中,还在回填窗口结束时且果剩余计算资源不足以运行当前的队首作业时停止回填作业,从而保证队首作业的运行。另外,本发明中,能够使计算装置在再次重启所述回填作业时,仅执行未完成部分的计算任务,而无需针对一个回填作业多次执行相同的计算任务,这样也能够进一步提高系统计算资源的利用率。
【专利附图】

【附图说明】[0027]图1为本发明实施例一提供的一种作业调度方法的流程示意图;
[0028]图2为本发明实施例一提供的作业调度方法的一种具体实现方式;
[0029]图3为本发明实施例提供的作业调度方法中缩短运行时间估计的一种实现方式;
[0030]图4为本发明实施例提供的作业调度方法中中止回填作业时的处理;
[0031]图5 Ca)为本发明实施例提供的作业调度方法的一种应用场景的示意图;
[0032]图5 (b)为利用现有技术中经典回填算法进行回填的效果图;
[0033]图5 (c)为利用本发明实施例提供的作业调度方法进行回填的效果图;
[0034]图6为本发明实施例提供的一种计算装置的结构示意图。
【具体实施方式】
[0035]下面结合附图和实施例,对本发明的【具体实施方式】作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0036]本发明实施例提供了一种作业调度方法,如图1所示,该方法包括:
[0037]步骤101,在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗□。
[0038]本发明中的队首作业和非队首作业分别是指对待运行的作业按照优先级进行排序后的队列中的第一个作业和除第一个作业之外的其他作业。回填窗口是指,计算装置估计的到计算装置能够提供当前的队首作业所需要的资源所需要的时间。这里的回填窗口以及队首作业的理解与现有技术中一致。
[0039]实际应用中,在步骤101之前,当有并行作业运行完成或者提交时,按照并行作业的优先级顺序安排作业队列;依次安排队首作业运行,直到作业队列空或队首作业由于计算资源不够而不能运行;如果作业队列不空(即计算资源不足以运行当前的队首作业),为队首作业预留资源。并根据系统中正在运行作业对应的运行时间估计,计算预留时间和回填窗口大小。这里的运行时间估计是指用户针对一个作业估计的该作业需要运行的时间。这个过程与现有技术中一致,在此不再详细说明。
[0040]这里的作业应为刚性作业,即作业在整个运行期间都运行在固定数量的处理器/计算节点上,每个并行作业都可以运行在满足计算需求的任意计算节点中,不受限于特定的计算节点。这个资源需求是在作业脚本中由用户指定的。
[0041]步骤102,缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填。
[0042]步骤103,在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,并针对在被终止的回填作业中设置检查点。
[0043]步骤104,再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。
[0044]在步骤103之后,被中止的回填作业被放入到作业队列中等待再次被执行,一种可能的情况是,在当前的队首作业完成时,被中止的回填作业成为队首作业,此时在步骤101之后,可能直接执行步骤104。本发明提供的作业调度方法是一个事件触发过程,在相应的条件得到满足时,执行对应的步骤,在一个事件触发过程中,步骤103或步骤104中执行并不必然要依赖于上一个步骤的执行。[0045]由于在步骤101中,计算装置计算的回填窗口是计算装置估计的到计算装置能够提供当前的队首作业所需要的资源所需要的时间,如果回填窗口结束,但是系统的剩余计算资源不足,则很可能是因为回填的作业没有结束导致,此时,将回填的作业停止,以保证队首作业的优先运行。
[0046]本发明实施例中,缩短非队首作业的运行估计时间,从而利于非队首作业的回填,提高系统的资源利用率。另一方面,为了避免因缩短非队首作业的运行估计时间而导致非队首作业在回填窗口结束时仍在运行进而导致系统的计算资源不能运行队首作业的情况,本发明中,还在回填窗口结束时如果剩余计算资源不足以运行当前的队首作业时停止回填作业,从而保证队首作业的运行。另一方面,通过针对回填作业设置检查点,并使计算装置在再次重启所述回填作业时,仅执行未完成部分的计算任务,能够使计算装置无需针对一个回填作业多次执行相同的计算任务,这样也能够进一步提高系统计算资源的利用率。
[0047]如图2是基于检查点的并行作业调度方法的形式化描述。本发明提供的作业调度方法与经典作业回填算法大致相同,其主要区别是步骤102中根据缩短后的运行时间估计而不是用户提交的运行时间估计检查是否可以回填,计算作业的预计结束时间。
[0048]优选的,上述的步骤102中的缩短非队首作业对应的运行时间估计,具体包括:
[0049]步骤1021,将所述非队首作业对应的运行时间估计乘以一个预设分割因子p,其中,0〈ρ〈1。
[0050]优选的,步骤102具体为:在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。其具体实现方式可以如图3所示。
[0051]这样做有几方面的考虑。首先,即使不调整作业的运行时间估计,短作业也相对容易被回填。其次,检查点和重启的开销对于短作业来说太大了。第三,短作业往往是用户用来测试或调试的程序。如果运行过程被分割的话,会降低用户体验。P与预设值ttto是可调整的参数,可以控制回填的激进程度。经试验和统计发现,这样的简单机制工作得很好,系统管理人员可以根据实际工作经验为参数选择一个合适的值。
[0052]优选的,在上述任一实施例中,所述步骤102中的“根据缩短后的运行时间估计判断所述非队首作业是否能够回填”,具体包括:
[0053](a),在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计小于所述回填窗口,判定所述非队首作业可以回填;或者,
[0054](b),在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计大于所述回填窗口时,判断在所述回填窗口结束时所述非队首作业和所述队首作业是否可以同时运行,若是,则判定所述非队首作业能够回填。
[0055]对于(a),可以保证回填的作业运行在回填窗口内,从而不影响队首作业的运行。对于(b),即使缩短后的运行时间估计大于所述回填窗口,即回填作业的运行可能超出回填窗口,只要回填作业的运行不会影响队首作业的运行,也可以允许该作业回填。
[0056]图4给出了步骤103的一种实现方式,当预留时间到(回填窗口结束)且没有足够的资源给队首作业运行时,该算法运行。在该算法中,回填作业做检查点并被中止运行,直到队首作业获得足够的计算资源。被抢先的作业被重新放入队列。在选择被抢先作业的时候,我们从使用计算节点多的作业开始选择,以减少被抢先和做检查点作业的数量。需要指出的是,每个回填作业使用的计算节点数都要少于队首的高优先级作业。否则,高优先级作业就会在较早的时间点被调度。因此,本发明中的抢先策略实质上是一种最优选择算法。
[0057]下面结合图5对本发明提供的作业调度方法进行详细说明,如图5所示,每个并行作业由一个矩形表示,水平和垂直维度分别表示作业的计算需求:估计运行时间和请求的处理器/节点数量。每个等待作业矩形中的灰色区域表示它的实际运行时间。在系统的某个时刻,作业A和B正在运行,同时作业C、D和E在作业队列中等待运行,如图5 (a)所示。当A运行完成后,系统没有足够的资源给队首作业C运行。调度系统根据作业B的运行时间估计为C预留计算资源。那么B运行结束的时刻就是C的“预留时间”。从A结束到B结束这个时间段构成了 “回填窗口”。
[0058]对于经典的回填算法(图5(b)),因为D和E作业的估计运行时间都超过了回填窗口,两个作业都不能被回填,尽管作业D的实际运行时间小于这个窗口。D和E作业会在C运行结束后得到运行机会,从而浪费了回填窗口中的计算资源。
[0059]对于基于检查点的回填算法(图5(c)),作业D和E都会被回填。作业D在预留时间到达之前完成了运行。而作业E在预留时间点被抢先,它的运行过程被分割成两段:El和E2。当C结束的时候,E继续运行直到结束。
[0060]这个例子展示了基于检查点调度算法的几个优点:首先,高估的作业受益于激进回填策略,缩短了等待时间并提高了系统利用率;其次,做检查点的作业也缩短了响应时间;最后,高优先级作业的预留资源得到了保证。
[0061]基于相同的构思,本发明实施例三还提供了一种计算装置,通过上述的作业调度方法对并行作业进行调度,如图6所示,该计算装置包括:
[0062]第一计算模块601,在检测到计算资源不足以运行当前的队首作业时,计算相应的
回填窗口 ;
[0063]回填模块602,用于缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填;
[0064]第二计算模块603,用于在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,还用于在被终止的回填作业中添加检查点,并在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。
[0065]优选的,回填模块602,用于将所述非队首作业对应的运行时间估计乘以一个预设分割因子P,其中,0〈ρ〈1。
[0066]优选的,回填模块602具体用于在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。
[0067]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【权利要求】
1.一种作业调度方法,其特征在于,包括: 在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗口 ; 缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填; 在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,并针对-被终止的回填作业设置检查点; 在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。
2.如权利要求1所述的方法,其特征在于,所述缩短队首作业之外的其他非队首作业对应的运行时间估计,具体包括: 将所述非队首作业对应的运行时间估计乘以一个预设分割因子P,其中,0〈ρ〈1。
3.如权利要求2所述的方法,其特征在于,所述将所述非队首作业对应的运行时间估计乘以一个预设分割因子P,具体包括: 在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。
4.如权利要求1所述的方法,其特征在于,所述根据缩短后的运行时间估计判断所述非队首作业是否能够回填具体包括: 在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计小于所述回填窗口时,判定所述非队首作业可以回填。
5.如权利要求1所述的方法,其特征在于,所述根据缩短后的运行时间估计判断所述非队首作业是否能够回填具体包括: 在判断所述非队首作业需要占用的计算资源小于当前剩余的计算资源,且缩短后的运行时间估计大于所述回填窗口时,判断在所述回填窗口结束时所述非队首作业和所述队首作业是否可以同时运行,若是,则判定所述非队首作业能够回填。
6.一种计算装置,其特征在于,包括: 第一计算模块,用于在检测到计算资源不足以运行当前的队首作业时,计算相应的回填窗口 ; 回填模块,用于缩短非队首作业对应的运行时间估计,并根据缩短后的运行时间估计判断所述非队首作业是否能够回填,并在判断为是时,将相应的非队首作业回填; 第二计算模块,用于在回填窗口结束且剩余计算资源不足以运行当前的队首作业时,停止当前运行的回填作业,还用于针对被终止的回填作业设置检查点,并在再次重启所述回填作业时,根据所述回填作业中的检查点执行未完成部分的计算任务。
7.如权利要求6所述的计算装置,其特征在于, 所述回填模块,用于将所述非队首作业对应的运行时间估计乘以一个预设分割因子P,其中,0〈ρ〈1。
8.如权利要求7所述的计算装置,其特征在于,所述回填模块具体用于在判断所述非队首作业对应的运行时间估计大于预设值时,将所述非队首作业对应的运行时间估计乘以一个预设分割因子P。
【文档编号】G06F9/48GK103810037SQ201410012660
【公开日】2014年5月21日 申请日期:2014年1月10日 优先权日:2014年1月10日
【发明者】牛双诚, 翟季冬, 陈文光, 郑纬民, 刘明亮 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1