我试图弄清SLURM中“tasks”概念的含义。我在SO上找到了这个答案,它建议我使用以下作业脚本:
作者称这项工作总共在12秒内运行,因为
#!/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
不会改变结果。我做错了什么?如何让我的作业文件中的这两个调用同时运行?