取消在某个日期之前提交或 JOBID 低于给定整数的作业
Cancel jobs submitted previous to a date or with JOBID lower than a given integer
我发现使用我的软件的早期版本提交的作业由于存在错误而无法使用,因此我想取消它们。但是,我也有新的工作想保留 运行。所有作业都具有相同的作业名称,并且 运行 在同一分区中。
我编写了以下脚本来取消 ID 低于给定 ID 的作业。
#!\bin\bash
if [ ]
then
MAX_JOBID=
else
echo "An integer value is needed"
exit
fi
JOBIDLIST=$(squeue -u $USER -o "%F")
for JOBID in $JOBIDLIST
do
if [ "$JOBID" -lt "$MAX_JOBID" ]
then
echo "Cancelling job "$JOBID
scancel $JOBID
fi
done
我想说这是开发软件的人经常遇到的情况,我想知道是否有使用 slurm 命令的直接方法。或者,您是否使用一些技巧,例如将软件提交 ID 附加到作业名称来克服这种情况?
遗憾的是,在这种情况下没有直接的方法取消作业。
或者,正如您所指出的,通过添加软件 version/commit 和作业名称来命名作业很有用。在这种情况下,您可以使用 scancel --name=JOB_NAME_VERSION
取消具有该作业名称的所有作业。
此外,如果可以使用 scontrol hold <jobid>
hold
新提交的作业,然后可以使用 scancel --state=PENDING
取消所有 PENDING
作业
在我的例子中,我使用了类似的方法(就像你的方法),通过 squeue
将输出通过管道传输到 awk
并取消了我想要删除的前 N 个作业。它是一个 one-liner 脚本。
像这样:
例如:squeue arguments | awk 'NR>=2 && NR<=N{print }' | xargs /usr/bin/scancel
除了@j23 的建议之外,您还可以使用
来组织您的工作
job arrays;如果您的所有作业在提交脚本方面都相似,请将它们设为一个作业数组,并为每个软件版本提交一个作业数组。然后你可以只用一个scancel
命令
取消整个作业数组
一个工作流管理系统;它们可以轻松提交和管理作业集(可能在不同的集群上)
我发现使用我的软件的早期版本提交的作业由于存在错误而无法使用,因此我想取消它们。但是,我也有新的工作想保留 运行。所有作业都具有相同的作业名称,并且 运行 在同一分区中。
我编写了以下脚本来取消 ID 低于给定 ID 的作业。
#!\bin\bash
if [ ]
then
MAX_JOBID=
else
echo "An integer value is needed"
exit
fi
JOBIDLIST=$(squeue -u $USER -o "%F")
for JOBID in $JOBIDLIST
do
if [ "$JOBID" -lt "$MAX_JOBID" ]
then
echo "Cancelling job "$JOBID
scancel $JOBID
fi
done
我想说这是开发软件的人经常遇到的情况,我想知道是否有使用 slurm 命令的直接方法。或者,您是否使用一些技巧,例如将软件提交 ID 附加到作业名称来克服这种情况?
遗憾的是,在这种情况下没有直接的方法取消作业。
或者,正如您所指出的,通过添加软件 version/commit 和作业名称来命名作业很有用。在这种情况下,您可以使用 scancel --name=JOB_NAME_VERSION
取消具有该作业名称的所有作业。
此外,如果可以使用 scontrol hold <jobid>
hold
新提交的作业,然后可以使用 scancel --state=PENDING
PENDING
作业
在我的例子中,我使用了类似的方法(就像你的方法),通过 squeue
将输出通过管道传输到 awk
并取消了我想要删除的前 N 个作业。它是一个 one-liner 脚本。
像这样:
例如:squeue arguments | awk 'NR>=2 && NR<=N{print }' | xargs /usr/bin/scancel
除了@j23 的建议之外,您还可以使用
来组织您的工作job arrays;如果您的所有作业在提交脚本方面都相似,请将它们设为一个作业数组,并为每个软件版本提交一个作业数组。然后你可以只用一个
取消整个作业数组scancel
命令一个工作流管理系统;它们可以轻松提交和管理作业集(可能在不同的集群上)