【发布时间】: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 10 和 sleep 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