列出作业的待处理步骤
List job's pending steps
场景是这样的,我用salloc分配资源(2个节点,64 CPUs)给作业:
salloc -N 1-2 -n 64 -c 1 -w cluster-node[2-3] -m cyclic -t 5
salloc: Granted job allocation 1720
然后,我使用 srun
为我的工作创建步骤:
for i in (seq 70)
srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60 &
end
因为我为我的工作创建的步骤多于可用的 cpu,步骤 "pending" 直到空闲 CPU。
当我使用 squeue
和 -s 选项列出步骤时,我只能查看 运行 个步骤。
squeue -s -O stepid:12,stepname:10,stepstate:9
1720.0 sleep RUNNING
[...]
1720.63 sleep RUNNING
我的问题是,步骤的状态是否与 运行 不同,如作业,如果是,是否有办法使用 squeue(或其他命令)查看这些步骤)?
不确定 Slurm 能否提供这些信息。一种替代方法是使用 GNU Parallel,以便在 CPU 可用之前根本不会启动作业步骤。在当前设置中,所有作业步骤都立即启动,没有 CPU 可用的作业步骤正在等待。
因此,使用与您使用的相同的分配,替换
for i in (seq 70)
srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60 &
end
和
parallel -P $SLURM_NTASKS srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60
然后 squeue 的输出应该列出 运行 和 PENDING 步骤。
N.B。不确定这里是否需要 --jobid=
选项 BTW
场景是这样的,我用salloc分配资源(2个节点,64 CPUs)给作业:
salloc -N 1-2 -n 64 -c 1 -w cluster-node[2-3] -m cyclic -t 5
salloc: Granted job allocation 1720
然后,我使用 srun
为我的工作创建步骤:
for i in (seq 70)
srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60 &
end
因为我为我的工作创建的步骤多于可用的 cpu,步骤 "pending" 直到空闲 CPU。
当我使用 squeue
和 -s 选项列出步骤时,我只能查看 运行 个步骤。
squeue -s -O stepid:12,stepname:10,stepstate:9
1720.0 sleep RUNNING
[...]
1720.63 sleep RUNNING
我的问题是,步骤的状态是否与 运行 不同,如作业,如果是,是否有办法使用 squeue(或其他命令)查看这些步骤)?
不确定 Slurm 能否提供这些信息。一种替代方法是使用 GNU Parallel,以便在 CPU 可用之前根本不会启动作业步骤。在当前设置中,所有作业步骤都立即启动,没有 CPU 可用的作业步骤正在等待。
因此,使用与您使用的相同的分配,替换
for i in (seq 70)
srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60 &
end
和
parallel -P $SLURM_NTASKS srun --exclusive -N 1 -n 1 --jobid=1720 sleep 60
然后 squeue 的输出应该列出 运行 和 PENDING 步骤。
N.B。不确定这里是否需要 --jobid=
选项 BTW