如何更新Slurm中的作业节点号?

时间:2018-03-21 04:28:06

标签: slurm sbatch

我有待处理的工作,我想调整它的大小。 我试过了:

    scontrol update job <jobid> NumNodes=128

它不起作用。

注意:我可以使用scontrol更改壁垒时间。但是当我尝试更改节点数时,它失败了。看起来我可以根据此页面http://www.nersc.gov/users/computational-systems/cori/running-jobs/monitoring-jobs/更改节点。

2 个答案:

答案 0 :(得分:2)

如果作业正在等待或正在运行,您可以在Slurm中调整作业大小。

根据FAQ,您可以按照后续步骤调整大小(使用示例):

展开

  1. 假设 j1 请求4个节点并提交:

    $ salloc -N4 bash
    
  2. 提交一份新作业( j2 ),其中包含 j1 的额外节点数(在本例中为10个,总共14个节点)并制作依赖于 j1 (SLURM_JOBID):

    $ salloc -N10 --dependency=expand:$SLURM_JOBID
    
  3. 取消分配 j2

    的节点
    $ scontrol update jobid=$SLURM_JOBID NumNodes=0
    
  4. 终止 j2

    $ exit
    
  5. 分配给 j1 之前发布的节点:

    $ scontrol update jobid=$SLURM_JOBID NumNodes=ALL
    
  6. 并更新 j1

    的环境变量
    $ ./slurm_job_$SLURM_JOBID_resize.sh
    
  7. 现在, j1 有14个节点。

    收缩

    1. 假设 j1 已提交:

      $ salloc -N4 bash
      
    2. j1 更新为新尺寸:

      $ scontrol update jobid=$SLURM_JOBID NumNodes=2
      $ scontrol update jobid=$SLURM_JOBID NumNodes=ALL
      
    3. 并更新 j1 的环境变量(该脚本由以前的命令创建):

      $ ./slurm_job_$SLURM_JOBID_resize.sh
      
    4. 现在, j1 有2个节点。

答案 1 :(得分:0)

以下是我从NERSC服务台获得的解决方案(致于LBNL的Woo-Sun Yang致辞):

$ scontrol update jobid=jobid numnodes=new_numnodes-new_numnodes

E.g。 $ scontrol update jobid=12345 numnodes=10-10

诀窍是拥有上述格式的numnodes。它适用于缩小和扩展节点。