是否可以通过 sbatch 将作业名称分配给 SLURM 阵列中的单独工作线程?



默认情况下,将 SLURM 作业作为数组提交时,数组中的所有作业共享相同的作业名称。 在文档中(此处:https://slurm.schedmd.com/job_array.html(,它显示数组中的每个作业都可以通过scontrol单独设置其名称(在"Scontrol 命令使用"一节中描述(。

这可以直接从sbatch脚本完成吗?

我刚刚创建了一个帐户,因为我正在尝试这样做,并且确实找到了解决方案。 您可以使用 scontrol 更改作业的名称,语法如下:

scontrol update job=<job_id> JobName=<new_name>

您可以手动执行此操作,但也可以从阵列作业中自动设置作业的名称,从而自动为阵列中的每个作业分配不同的名称。

我发现这很有用,因为我主要在不同的目录中运行计算,如果我有一个作业比其他作业运行的时间长得多,我希望能够快速检索它的运行位置以查看发生了什么。 当然,您可以根据需要将其他内容设置为您的工作名称。

就我而言,我将 scontrol 命令添加到我通过数组运行的脚本中,以便为每个目录获取以下名称:"job_name - 目录"。可以从环境变量中检索作业 ID 和作业名称。

scontrol update job=$SLURM_ARRAY_JOB_ID JobName="$SLURM_JOB_NAME - $folder"

最新更新