首页 / 专利库 / 电脑编程 / 高性能计算 / 面向生物基因测序计算任务的多队列回填作业调度方法

面向生物基因测序计算任务的多队列回填作业调度方法

阅读:1009发布:2020-07-23

专利汇可以提供面向生物基因测序计算任务的多队列回填作业调度方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种面向 生物 基因测序计算任务的多队列回填作业调度方法。针对生物基因测序计算任务的作业负载特性,对现有 高性能计算 系统作业调度技术的缺点与不足进行了改进,提出一个多对列回填作业调度方法。该方法提供了基于内存资源优化的回填调度,结合内存资源的需求进行作业预约与作业回填,充分利用系统的空闲资源,减少作业等待。在此 基础 上,提供了多对列负载均衡调度,以多对列的方式进行回填调度并且提供了队列级别的负载均衡,并且提出了动态选择 阈值 策略与优化迁移策略。多队列回填作业调度能够很好的适用于生物信息高性能计算系统,获得良好的系统性能。,下面是面向生物基因测序计算任务的多队列回填作业调度方法专利的具体信息内容。

1.面向生物基因测序计算任务的多队列回填作业调度方法主要包括以下步骤:
S1、基于内存资源优化的回填调度:在传统的回填(Backfilling)调度的基础上进行改进,设计基于内存资源优化的回填调度;在作业调度的过程中,充分考虑了作业的CPU与内存属性,根据这两个属性进行作业的资源预留与回填,从而尽可能地提高系统的利用率和使作业的执行效率。在利用资源预留形成的资源空隙进行回填时,保证不影响作业等待队列中第一个作业的运行;
S2、多对列负载均衡回填调度:在内存资源优化回填调度的基础上,以多对列的方式进行回填调度,并且提供了队列级别的负载均衡,主要用于解决由于多对列的划分造成的作业等待与资源浪费的问题,平衡各队列间的负载,同时提供了改进方案:动态选择阈值策略与优化迁移策略。
2.根据权利要求1所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述步骤S1中:记waitList为作业等待队列,runList为作业运行队列,resList为作业预约队列;系统资源集合为R,其中包含系统的计算节点;进行作业调度的具体流程如下:
S11:按照作业的提交时间顺序,提取waitList中的第一个作业i;
S12:判断作业i能否在R中直接运行:即在当前的系统资源中,能够找到满足当前作业资源需求的节点,也就是说该节点拥有的空闲资源(CPU以及内存)大于作业运行需要的资源;若节点已预约作业,则还需判断将该作业分配到这个节点上运行是否影响已预约的作业。
S13:若作业i不能直接运行,判断能否对i进行预约,即在R中寻找节点为i进行资源预留;
所述步骤S13中规定每个节点最多有一个作业预约;如果还有节点未预约作业,则可以进行作业预约,进入作业预约步骤。
S14:若作业i能够在某个节点上运行,则可以将该作业进行回填,进入作业回填步骤。
S15:若不能对该作业i进行预约或者回填,则遍历waitList,提取下一个作业,返回至S12继续执行。
3.根据权利要求2所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述步骤S12中判断不对预约作业造成影响的标准为:该作业在预约作业执行之前结束,或者该作业需求的资源小于预约作业执行后节点的空闲资源。
4.根据权利要求2所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述作业预约步骤流程为:
step1:计算作业i所需的资源:计算该作业运行需要的CPU核数、最大内存以及预计运行时间;
step2:遍历R的节点列表,计算未预约作业的节点能够运行作业i的最早时间;
在这些节点中,随着已运行作业的完成,节点中剩余的空闲资源越来越多,节点空闲资源开始大于该作业需求资源的时刻,即能够运行该作业的最早时间;
step3:比较各节点能够运行作业i最早时间,获取这个时间最小的节点;
step4:选择该节点为预约作业i的节点,将作业从waitList移动至resList,在节点上为作业预留资源,即将作业需求的资源预先分配到节点上,记录能够运行该作业的最早时间;
step5:返回主程序。
5.根据权利要求2所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述作业回填步骤流程为:
(1):计算作业i所需的资源;
(2):遍历R的节点列表:遍历节点列表之前,首先将节点列表按节点的CPU负载大小排序,即按照节点当前的CPU利用率排序,将节点按照CPU负载排序,能够保证作业优先在负载较低的节点上运行,有利于系统的负载均衡;
(3):获取负载最小的节点,将作业i回填至该节点,在节点上为作业分配资源,将作业从waitList移动至runList;
(4):返回主程序。
6.根据权利要求1所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述步骤S2中:定义队列k的负载 其中jri表示队列中运行作业i使用的资源,nrj表示队列包含的节点j的资源总量,选取一个大小在区间(0,1)的阈值Lthres,多对列负载均衡调度策略为:
当Lk>Lthres时,停止向队列k投递作业,遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列;当Lk<Lthres时,允许继续向队列k投递作业。
7.根据权利要求1所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述步骤S2中定义:队列k的作业迁移代价Cmk=Σjtrijriw;队列k的作业等待代价Cwk=Σjtwijri;
其中jtri表示作业i的预计执行时间,该值由用户预估的作业执行时间获得,w表示作业迁移代价的权重,jtwi表示队列不采用负载均衡,没有作业迁移时,按照队列中的调度策略对作业进行调度,作业i的等待时间;jri表示作业使用的资源,由于作业还未运行,该值由提交作业的用户预估;此外,当等待队列中的作业较少时,则认为队列有空闲的资源运行这些作业;
定义队列k的等待作业长度为lk,根据历史数据,可以计算队列的等待作业的平均长度,参照这个长度定义等待作业长度阈值lthres,那么,动态选择阈值的多对列负载均衡调度策略为:
当Cmk>Cwk且lk>lthres时,停止向队列k投递作业;遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列;其他情况,则允许继续向队列k投递作业。
8.根据权利要求1所述的面向生物基因测序计算任务的多队列回填作业调度方法,其特征在于:所述步骤S2中的优化迁移策略如下:
将队列k中的等待作业按照作业使用的资源从小到大排序;
遍历等待作业,判断作业i是否能立即在队列k中运行;
若能立即运行,将作业i分配至队列k对应的节点中运行;
若不能立即运行,遍历所有队列,将作业i转为投向负载最低的队列;
按照作业使用的资源进行排序时,由于作业还没有执行,同样按照用户预估的值进行排序;作业排序的标准为先按照CPU资源进行排序,再按照内存资源进行排序。

说明书全文

面向生物基因测序计算任务的多队列回填作业调度方法

技术领域

[0001] 本发明涉及高性能计算领域,特别涉及一种面向生物基因测序计算任务的多队列回填作业调度方法。

背景技术

[0002] 在高性能计算系统特别是高性能计算集群中,作业调度扮演着极其重要的作业。作业调度按照不同的用户需求采用合适的调度策略,分配合适的资源去执行作业。作业调度关系到作业的整个生命周期,涉及集群的各组成部分,直接影响着作业的运行效率与系统的吞吐率及资源利用。为了充分利用高性能计算集群的系统资源,保证作业迅速而又高效的执行,采用合适的方法进行作业调度显得十分必要。
[0003] 基因测序是对目标DNA进行基的序列测定,并进行各种相关分析。基因测序已经广泛应用于快速疾病诊断、疫情检测、大规模物种群体进化及个性化医疗等。基因测序的大部分计算任务如基因重测序、基因组关联分析等需要大量计算,利用高性能计算系统进行基因数据分析已经成为许多科研机构和公司采用的方式。基于基因测序的应用特性,其计算任务通常具有以下特点:(1)高通量(High-through):作业规模很大,大部分为串行作业,少量并行作业。并行作业大多数为单节点的多线程任务;(2)资源需求大:除了对CPU资源有较大需求外,对内存、I/O等资源的需求也较大;(3)作业流程复杂:有些作业具有自己的工作流,有些作业采用分布式的消息传递机制。用户在提交作业时,需要预估作业使用的资源,并自己控制工作流程或者并行机制。这些作业特性导致采用传统的作业调度方式不能获得很好的效果,系统的资源利用率较低。因此,设计一种面向基因测序高性能计算系统的作业调度方法,提高作业的运行效率与系统的资源利用,是十分必要的。
[0004] 在大规模并行系统作业调度领域,资源预留与回填(简称回填,Backfilling)技术得到了广泛的应用,已成为并行作业调度的基本方法。它一方面为作业提前预留处理机以保证能够尽快执行该作业;另一方面,在不造成预留的作业被延迟的前提下,按照先后顺序将那些需要处理机数量较少的后续等待作业分配到当前空闲的处理机上。与传统的作业调度方法相比,资源预留与回填在保持基本的先来先服务特征的基础上,充分利用了系统的空闲资源,同时减少了作业的等待,具有更好的性能。本发明主要针对基因测序的应用环境及具体需求,对资源预留与回填进行改进。

发明内容

[0005] 本发明的目的在于克服现有技术的缺点与不足,在生物信息作业负载特性分析的基础上,提出了一种面向生物基因测序计算任务的多队列回填作业调度方法,首先对每个队列实施基于内存资源优化的回填调度,在此基础上以多对列的方式进行回填调度,实现队列级别的负载均衡。采用该方法能够获得很好的调度效果,改善系统性能。
[0006] 本发明的目的通过如下技术方案实现:一种面向生物基因测序计算任务的多队列回填作业调度方法主要包括以下步骤:
[0007] S1、基于内存资源优化的回填调度:在传统的回填调度的基础上进行改进,设计基于内存资源优化的回填调度;在作业调度的过程中,充分考虑了作业的CPU与内存属性,根据这两个属性进行作业的资源预留与回填,从而尽可能的提高系统的利用率,使作业整体尽可能快的运行。在利用资源预留形成的资源空隙进行回填时,保证不影响作业等待队列中第一个作业的运行;
[0008] S2、多对列负载均衡回填调度:基于内存资源优化回填调度的基础上,以多对列的方式进行回填调度,并且提供了队列级别的负载均衡,主要用于解决由于多对列的划分造成的作业等待与资源浪费的问题,平衡各队列间的负载,同时提供了改进方案:动态选择阈值策略与优化迁移策略。
[0009] 所述步骤S1中:记waitList为作业等待队列,runList为作业运行队列,resList为作业预约队列;系统资源集合为R,其中包含系统的计算节点;进行作业调度的具体流程如下:
[0010] S11:按照作业的提交时间顺序,提取waitList中的第一个作业i;
[0011] S12:判断作业i能否在R中直接运行:即在当前的系统资源中,能够找到满足当前作业资源需求的节点,也就是说该节点拥有的空闲资源(CPU以及内存)大于作业运行需要的资源;若节点已预约作业,则还需判断将该作业分配到这个节点上运行是否影响已预约的作业。
[0012] S13:若作业i不能直接运行,判断能否对i进行预约,即在R中寻找节点为i进行资源预留;
[0013] 所述步骤S13中规定每个节点最多有一个作业预约;如果还有节点未预约作业,则可以进行作业预约,进入作业预约步骤。
[0014] S14:若作业i能够在某个节点上运行,则可以将该作业进行回填,进入作业回填步骤。
[0015] S15:若不能对该作业i进行预约或者回填,则遍历waitList,提取下一个作业,返回至S12继续执行。
[0016] 所述步骤S12中判断不对预约作业造成影响的标准为:该作业在预约作业执行之前结束,或者该作业需求的资源小于预约作业执行后节点的空闲资源。
[0017] 所述作业预约步骤流程为:
[0018] step 1:计算作业i所需的资源:计算该作业运行需要的CPU核数、最大内存以及预计运行时间;
[0019] step 2:遍历R的节点列表,计算未预约作业的节点能够运行作业i的最早时间;
[0020] 在这些节点中,随着已运行作业的完成,节点中剩余的空闲资源越来越多,节点空闲资源开始大于该作业需求资源的时刻,即能够运行该作业的最早时间;
[0021] step 3:比较各节点能够运行作业i最早时间,获取这个时间最小的节点;
[0022] step 4:选择该节点为预约作业i的节点,将作业从waitList移动至resList,在节点上为作业预留资源,即将作业需求的资源预先分配到节点上,记录能够运行该作业的最早时间;
[0023] step 5:返回主程序。
[0024] 所述作业回填步骤流程为:
[0025] (1):计算作业i所需的资源;
[0026] (2):遍历R的节点列表:遍历节点列表之前,首先将节点列表按节点的CPU负载大小排序,即按照节点当前的CPU利用率排序,将节点按照CPU负载排序,能够保证作业优先在负载较低的节点上运行,有利于系统的负载均衡;
[0027] (3):获取负载最小的节点,将作业i回填至该节点,在节点上为作业分配资源,将作业从waitList移动至runList;
[0028] (4):返回主程序。
[0029] 所述步骤S2中:定义队列k的负载 其中jri表示队列中运行作业i使用的资源,nrj表示队列包含的节点j的资源总量,选取一个大小在区间(0,1)的阈值Lthres,多对列负载均衡调度策略为:
[0030] 当Lk>Lthres时,停止向队列k投递作业,遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列;当Lk<Lthres时,允许继续向队列k投递作业。
[0031] 采用这种调度策略能够改善当某个队列负载过高时,由于队列资源不足导致作业无法立即运行,从而等待时间过长的现象;为了避免作业迁移至其他队列过于频繁,Lthres一般取大于0.8的值,同时为了减小迁移的作业对未迁移作业的影响,设置迁移作业的优先级低于未迁移作业的优先级,即未迁移的作业总是在迁移作业之前运行。
[0032] 在此基础上,提供了动态选择阈值策略,根据队列的负载,动态的、实时的选取阈值,对多对列负载均衡调度策略进行了改进。动态选择阈值的策略根据实际的队列作业情况与负载情况,动态的决定是否需要对队列进行负载均衡,能够更充分的利用队列的资源。
[0033] 所述步骤S2中定义:队列k的作业迁移代价Cmk=∑jtrijriw;队列k的作业等待代价Cwk=∑jtwijri;
[0034] 其中jtri表示作业i的预计执行时间,该值由用户预估的作业执行时间获得,w表示作业迁移代价的权重,jtwi表示队列不采用负载均衡,没有作业迁移时,按照队列中的调度策略对作业进行调度,作业i的等待时间;jri表示作业使用的资源,由于作业还未运行,该值由提交作业的用户预估;此外,当等待队列中的作业较少时,则认为队列有空闲的资源运行这些作业;
[0035] 定义队列k的等待作业长度为lk,根据历史数据,可以计算队列的等待作业的平均长度,参照这个长度定义等待作业长度阈值lthres,那么,动态选择阈值的多对列负载均衡调度策略为:
[0036] 当Cmk>Cwk且lk>lthres时,停止向队列k投递作业;遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列;其他情况,则允许继续向队列k投递作业。
[0037] 为了减少迁移作业的数目,同时充分利用队列的资源,提供了优化迁移策略。可以不将所有作业都投向其他队列,保留一部分作业在原队列中运行。当满足队列k负载均衡的条件时,进行作业迁移的优化。
[0038] 所述步骤S2中的优化迁移策略如下:
[0039] 将队列k中的等待作业按照作业使用的资源从小到大排序;
[0040] 遍历等待作业,判断作业i是否能立即在队列k中运行;
[0041] 若能立即运行,将作业i分配至队列k对应的节点中运行;
[0042] 若不能立即运行,遍历所有队列,将作业i转为投向负载最低的队列;
[0043] 按照作业使用的资源进行排序时,由于作业还没有执行,同样按照用户预估的值进行排序;作业排序的标准为先按照CPU资源进行排序,再按照内存资源进行排序。
[0044] 本发明与现有技术相比,具有如下优点和有益效果:
[0045] 1、本发明针对生物基因测序计算任务的作业特性,对现有高性能计算系统作业调度技术的缺点与不足进行了改进,提出了向生物基因测序高性能计算系统的多队列回填作业调度方法。
[0046] 2、本发明提出了内存资源的回填调度。该调度方式继承了传统回填调度的优点,能够很好的降低作业的等待,提升系统的资源利用。同时考虑了内存资源进行调度,对于生物信息应用有更好的响应。
[0047] 3、本发明提出了多对列负载均衡回填调度。在改进的回填调度的基础上,利用多对列的方式进行回填,同时提供队列级别的负载均衡。避免系统资源的浪费,减少作业的等待。附图说明
[0048] 图1为本发明中多队列回填作业调度的示意图。
[0049] 图2为本发明中基于内存资源优化的回填调度的流程图

具体实施方式

[0050] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0051] 如图1所示,面向生物基因测序计算任务的多队列回填作业调度方法,包括以下步骤:
[0052] S1、基于内存资源优化的回填调度:用户向系统提交作业后,保存作业的提交时间、请求资源等属性。将作业放入等待作业队列中,记为waitList。记runList为运行作业队列,指通过作业调度已经分配至节点运行作业的集合。记resList为预约作业队列,指通过作业调度已经预约节点中的资源,但还未运行作业的集合。记系统资源为R,其中包含系统的节点,以及各节点的资源属性。则进行作业调度的具体流程如下,如图2所示:
[0053] S11:按照作业的提交时间顺序,提取waitList中的第一个作业i;
[0054] S12:判断作业i能否在R中直接运行:即在当前的系统资源中,能够找到满足当前作业资源需求的节点,也就是说该节点拥有的空闲资源(CPU以及内存)大于作业运行需要的资源;若节点已预约作业,则还需判断将该作业分配到这个节点上运行是否影响已预约的作业。
[0055] S13:若作业i不能直接运行,判断能否对i进行预约,即在R中寻找节点为i进行资源预留;
[0056] 所述步骤S13中规定每个节点最多有一个作业预约;如果还有节点未预约作业,则可以进行作业预约,进入作业预约步骤。
[0057] S14:若作业i能够在某个节点上运行,则可以将该作业进行回填,进入作业回填步骤。
[0058] S15:若不能对该作业i进行预约或者回填,则遍历waitList,提取下一个作业,返回至S12继续执行。
[0059] 作业预约步骤流程为:
[0060] step 1:计算作业i所需的资源。
[0061] 在保存的作业请求资源属性中,记录了作业运行需要的CPU核数、最大内存以及预计运行时间,这些属性即作业所需资源。
[0062] step 2:遍历R的节点列表,计算未预约作业的节点能够运行作业i的最早时间。
[0063] 在这些节点中,随着已运行作业的完成,节点中剩余的空闲资源越来越多。节点空闲资源开始大于该作业需求资源的时刻,即能够运行该作业的最早时间。
[0064] step 3:比较各节点能够运行作业i最早时间,获取这个时间最小的节点。
[0065] step 4:选择该节点为预约作业i的节点,将作业从waitList移动至resList。在节点上为作业预留资源。即将作业需求的资源预先分配到节点上,记录能够运行该作业的最早时间。
[0066] step 5:返回主程序。
[0067] 所述作业回填步骤流程为:
[0068] (1):计算作业i所需的资源;
[0069] (2):遍历R的节点列表:遍历节点列表之前,首先将节点列表按节点的CPU负载大小排序,即按照节点当前的CPU利用率排序,将节点按照CPU负载排序,能够保证作业优先在负载较低的节点上运行,有利于系统的负载均衡;
[0070] (3):获取负载最小的节点,将作业i回填至该节点,在节点上为作业分配资源,将作业从waitList移动至runList;
[0071] (4):返回主程序。
[0072] S2、多对列负载均衡回填调度。利用多对列的方式管理系统中的作业与资源,是许多高性能计算系统作业调度采用的方法。本发明在基于内存资源优化回填调度的基础上,以多对列的方式进行回填调度。并且提供了队列级别的负载均衡,主要用于解决由于多对列的划分造成的作业等待与资源浪费的问题,平衡各队列间的负载,利用多对列负载均衡回填调度时,可以选择是否采用其改进方案,包括动态选择阈值策略与优化迁移策略。
[0073] 定义队列k的负载 其中jri表示队列中运行作业i使用的资源,nrj表示队列包含的节点j的资源总量。选取一个大小在区间(0,1)的阈值Lthres(Lthres一般取大于0.8的值)。多对列负载均衡调度策略为:
[0074] 当Lk>Lthres时,停止向队列k投递作业。遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列。
[0075] 当Lk<Lthres时,允许继续向队列k投递作业。
[0076] 在此基础上,可以采用动态选择阈值策略,根据队列的负载,动态的、实时的选取阈值。
[0077] 定义:
[0078] 队列k的作业迁移代价Cmk=∑jtrijriw;
[0079] 队列k的作业等待代价Cwk=∑jtwijri;
[0080] 其中jtri表示作业i的预计执行时间,该值由用户预估的作业执行时间获得。w表示作业迁移代价的权重。jtwi表示队列不采用负载均衡,没有作业迁移时,按照队列中的调度策略对作业进行调度,作业i的等待时间。jri表示作业使用的资源,由于作业还未运行,该值由提交作业的用户预估。此外,当等待队列中的作业较少时,则认为队列有空闲的资源运行这些作业。
[0081] 定义队列k的等待作业长度为lk。根据历史数据,可以计算队列的等待作业的平均长度,参照这个长度定义等待作业长度阈值lthres。
[0082] 那么,动态选择阈值的多对列负载均衡调度策略为:
[0083] 当Cmk>Cwk且lk>lthres时,停止向队列k投递作业。遍历所有队列,将原本投递至队列k的作业转为投向负载最低的队列。
[0084] 其他情况,则允许继续向队列k投递作业。
[0085] 还可以采用优化迁移策略,不将所有作业都投向其他队列,保留一部分作业在原队列中运行。当满足队列k负载均衡的条件时,进行作业迁移的优化。优化迁移策略如下:
[0086] 将队列k中的等待作业按照作业使用的资源从小到大排序。
[0087] 遍历等待作业,判断作业i是否能立即在队列k中运行。
[0088] 若能立即运行,将作业i分配至队列k对应的节点中运行。
[0089] 若不能立即运行,遍历所有队列,将作业i转为投向负载最低的队列。
[0090] 按照作业使用的资源进行排序时,由于作业还没有执行,同样按照用户预估的值进行排序。作业排序的标准为先按照CPU资源进行排序,再按照内存资源进行排序。
[0091] 采用步骤S1能够进行基于内存资源优化的单队列回填作业调度。综合步骤S1、S2即可以进行多对列的回填作业调度。
[0092] 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈