场景就是这个,我用salloc分配资源(2个节点,64个CPU):
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
因为我为我的工作创建了比可用cpus更多的步骤,所以步骤“待定”直到空闲CPU。
当我使用squeue
和-s选项列出步骤时,我只能查看正在运行的步骤。
squeue -s -O stepid:12,stepname:10,stepstate:9
1720.0 sleep RUNNING
[...]
1720.63 sleep RUNNING
我的问题是,步骤的状态是否与 RUNNING 的状态不同,如果是,是否有办法查看带有squeue(或其他命令)的那些?
答案 0 :(得分:1)
不确定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的输出应列出RUNNING和PENDING步骤。
N.B。不确定BTW
是否需要--jobid=
选项