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

文档序号:9929430阅读:来源:国知局
衡,没有作业迀移时,按照队列中的调 度策略对作业进行调度,作业i的等待时间;表示作业使用的资源,由于作业还未运行, 该值由提交作业的用户预估;此外,当等待队列中的作业较少时,则认为队列有空闲的资源 运行这些作业;
[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] 按照作业使用的资源进行排序时,由于作业还没有执行,同样按照用户预估的值 进行排序;作业排序的标准为先按照CHJ资源进行排序,再按照内存资源进行排序。
[0044] 本发明与现有技术相比,具有如下优点和有益效果:
[0045] 1、本发明针对生物基因测序计算任务的作业特性,对现有高性能计算系统作业调 度技术的缺点与不足进行了改进,提出了向生物基因测序高性能计算系统的多队列回填作 业调度方法。
[0046] 2、本发明提出了内存资源的回填调度。该调度方式继承了传统回填调度的优点, 能够很好的降低作业的等待,提升系统的资源利用。同时考虑了内存资源进行调度,对于生 物信息应用有更好的响应。
[0047] 3、本发明提出了多对列负载均衡回填调度。在改进的回填调度的基础上,利用多 对列的方式进行回填,同时提供队列级别的负载均衡。避免系统资源的浪费,减少作业的等 待。
【附图说明】
[0048] 图1为本发明中多队列回填作业调度的示意图。
[0049] 图2为本发明中基于内存资源优化的回填调度的流程图。
【具体实施方式】
[0050] 下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限 于此。
[0051] 如图1所示,面向生物基因测序计算任务的多队列回填作业调度方法,包括以下步 骤:
[0052] S1、基于内存资源优化的回填调度:用户向系统提交作业后,保存作业的提交时 间、请求资源等属性。将作业放入等待作业队列中,记为waitList。记runList为运行作业队 列,指通过作业调度已经分配至节点运行作业的集合。记resList为预约作业队列,指通过 作业调度已经预约节点中的资源,但还未运行作业的集合。记系统资源为R,其中包含系统 的节点,以及各节点的资源属性。则进行作业调度的具体流程如下,如图2所示:
[0053 ] S11:按照作业的提交时间顺序,提取wa itList中的第一个作业i;
[0054] S12:判断作业i能否在R中直接运行:即在当前的系统资源中,能够找到满足当前 作业资源需求的节点,也就是说该节点拥有的空闲资源(CPU以及内存)大于作业运行需要 的资源;若节点已预约作业,则还需判断将该作业分配到这个节点上运行是否影响已预约 的作业。
[0055] S13:若作业i不能直接运行,判断能否对i进行预约,即在R中寻找节点为i进行资 源预留;
[0056] 所述步骤S13中规定每个节点最多有一个作业预约;如果还有节点未预约作业,则 可以进行作业预约,进入作业预约步骤。
[0057] S14:若作业i能够在某个节点上运行,则可以将该作业进行回填,进入作业回填步 骤。
[0058] SI 5:若不能对该作业i进行预约或者回填,贝lj遍历waitLi st,提取下一个作业,返 回至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负载大 小排序,即按照节点当前的CHJ利用率排序,将节点按照CPU负载排序,能够保证作业优先在 负载较低的节点上运行,有利于系统的负载均衡;
[0070] (3):获取负载最小的节点,将作业i回填至该节点,在节点上为作业分配资源,将 作业从waitList移动至runList;
[0071] (4):返回主程序。
[0072] S2、多对列负载均衡回填调度。利用多对列的方式管理系统中的作业与资源,是许 多高性能计算系统作业调度采用的方法。本发明在基于内存资源优化回填调度的基础上, 以多对列的方式进行回填调度。并且提供了队列级别的负载均衡,主要用于解决由于多对 列的划分造成的作业等待与资源浪费的问题,平衡各队列间的负载,利用多对列负载均衡 回填调度时,可以选择是否采用其改进方案,包括动态选择阈值策略与优化迀移策略。
[0073] 定义队列k的负载
其中jn表示队列中运行作业i使用的资源,表示队 列包含的节点j的资源总量。选取一个大小在区间(〇,1 )的阈值Lthres (Lthres-般取大于0.8 的值)。多对列负载均衡调度策略为:
[0074] 当Lk>Lthres时,停止向队列k投递作业。遍历所有队列,将原本投递至队列k的作业 转为投向负载最低的队列。
[0075] 当Lk<Lthres时,允许继续向队列k投递作业。
[0076] 在此基础上,可以采用动态选择阈值策略,根据队列的负载,动态的、实时的选取 阈值。
[0077]定义:
[0078] 队列k的作业迀移代价Cmk= 2 jtrijriw;
[0079] 队列k的作业等待代价Cwk= 2 jtwijri;
[0080] 其中九^表示作业i的预计执行时间,该值由用户预估的作业执行时间获得。w表 示作业迀移代价的权重。jtWl表示队列不采用负载均衡,没有作业迀移时,按照队列中的调 度策略对作业进行调度,作业i的等待时间。表示作业使用的资源,由于作业还未运行, 该值由提交作业的用户预估。此外,当等待队列中的作业较少时,则认为队列有空闲的资源 运行这些作业。
[0081] 定义队列k的等待作业长度为lk。根据历史数据,可以计算队列的等待作业的平均 长度,参照这个长度定义等待作业长度阈值lthres。
[0082] 那么,动态选择阈值的多对列负载均衡调度策略为:
[0083] 当Cmk>Odlk> 1 thres时,停止向队列k投递作业。遍历所有队列,将原本投递至队 列k的作业转为投向负载最低的队列。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1