如何使用 SLURM sbatch 的变量来设置输出/错误文件名?

如何使用 SLURM sbatch 的变量来设置输出/错误文件名?

我们刚刚切换到使用 SLURM,我想使用循环和sbatch.以前,我可以使用变量作为输出文件名的一部分。我一直在尝试sbatch使用--export传递变量来执行此操作,但无法为 std 错误/输出文件名插入变量。我认为它适用于工作名称 ( -J) 和--wrap零件。

for i in *fastq.gz; do sbatch \
--export=i=$i --error='$i.eo%j' --output='$i.eo%j'  \
-J trim_`basename ${i}` \
--wrap="fastq_trim_single.sh ${i}" \
; done

生成名称中带有 $i 的输出文件:$i.eo68065。可以做我想做的事吗?

注意:理想情况下,我想使用basename $i而不是$i输出文件名。

答案1

不确定这是否适合您的用例,但您是否考虑过使用作业数组?使用作业数组时,变量SLURM_ARRAY_TASK_ID将被分配给作业数组的当前索引,您可以在--error--output命令中使用该索引。

以下是一些有用的示例:https://slurm.schedmd.com/job_array.html

相关内容