【问题标题】:Why are my slurm job steps not launching in parallel?为什么我的 slurm 作业步骤没有同时启动?
【发布时间】:2021-06-30 09:11:03
【问题描述】:

我试图弄清楚 SLURM 中“任务”的概念是什么意思。我发现 this answer on SO 向我推荐了以下作业脚本:

#!/bin/bash

#SBATCH --ntasks=2

srun --ntasks=1 sleep 10 & 
srun --ntasks=1 sleep 12 &
wait

作者说这项工作为他运行了总共 12 秒,因为 sleep 10sleep 12 两个步骤并行运行,但我无法重现。

如果我将上述文件保存为slurm-test 并运行

sbatch -o slurm.out slurm-test,

我看到我的作业运行了 23 秒。

这是sacct --format=JobID,Start,End,Elapsed,NCPUS -S now-2minutes的输出:

       JobID               Start                 End    Elapsed      NCPUS
------------ ------------------- ------------------- ---------- ----------
645514       2021-06-30T11:05:38 2021-06-30T11:06:00   00:00:22          2
645514.batch 2021-06-30T11:05:38 2021-06-30T11:06:00   00:00:22          2
645514.exte+ 2021-06-30T11:05:38 2021-06-30T11:06:00   00:00:22          2
645514.0     2021-06-30T11:05:38 2021-06-30T11:05:48   00:00:10          2
645514.1     2021-06-30T11:05:48 2021-06-30T11:06:00   00:00:12          2

我的slurm.out 输出是

srun: Job 645514 step creation temporarily disabled, retrying (Requested nodes are busy)
srun: Step created for job 645514

sbatch 调用中显式包含-n 2 不会改变结果。我究竟做错了什么?如何让我的作业文件中的两个调用同时运行?

【问题讨论】:

    标签: slurm


    【解决方案1】:

    根据 Slurm 版本,您可能必须将 --exclusive 参数添加到 srun(其语义与 sbatch 不同):

    #!/bin/bash
    
    #SBATCH --ntasks=2
    
    srun --ntasks=1 --exclusive -c 1 sleep 10 & 
    srun --ntasks=1 --exclusive -c 1 sleep 12 &
    wait
    

    另外添加 -c 1 以更明确可能会有所帮助,这再次取决于 Slurm 版本。

    【讨论】:

      猜你喜欢
      • 2016-05-31
      • 2016-11-29
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多