通过 slurm 中的作业数组任务 ID 来 hold/release 作业的简单方法
Easy way to hold/release jobs by job array task id in slurm
我现在有一堆作业数组 运行 (SLURM)。
例如,2552376_1
、2552376_10
、2552376_20
、2552376_80
、2552377_1
、2552377_10
、2552377_20
、 2552377_80
等等。
目前,我对以 _1
结尾的感兴趣。
有没有办法在不指定作业 ID 的情况下保留所有其他作业(因为我有数百个)?
以下命令适用于保留所有作业:
squeue -r -t PD -u $USER -o "scontrol hold %i" | tail -n +2 | sh
为了释放具有所需 ID 的那个,我使用
squeue -r -u $USER -o "scontrol release %i" | tail -n +2 | grep "_1$" | sh
选择正确的工作。
可以通过滥用 squeue
:
的输出格式来完成作业的批量更新
保留所有待处理的工作:
squeue -r -t PD -u $USER -o "scontrol hold %i" | sh
然后释放所有以 _1
结尾的工作
squeue -r -t PD -u $USER -o "scontrol release %i" | grep "_1$" | sh
首先 运行 没有 | sh
部分的命令,以确保它按预期方式工作。
请注意 -r
选项每行显示一个作业数组元素。
我现在有一堆作业数组 运行 (SLURM)。
例如,2552376_1
、2552376_10
、2552376_20
、2552376_80
、2552377_1
、2552377_10
、2552377_20
、 2552377_80
等等。
目前,我对以 _1
结尾的感兴趣。
有没有办法在不指定作业 ID 的情况下保留所有其他作业(因为我有数百个)? 以下命令适用于保留所有作业:
squeue -r -t PD -u $USER -o "scontrol hold %i" | tail -n +2 | sh
为了释放具有所需 ID 的那个,我使用
squeue -r -u $USER -o "scontrol release %i" | tail -n +2 | grep "_1$" | sh
选择正确的工作。
可以通过滥用 squeue
:
保留所有待处理的工作:
squeue -r -t PD -u $USER -o "scontrol hold %i" | sh
然后释放所有以 _1
squeue -r -t PD -u $USER -o "scontrol release %i" | grep "_1$" | sh
首先 运行 没有 | sh
部分的命令,以确保它按预期方式工作。
请注意 -r
选项每行显示一个作业数组元素。