运行 通过 SLURM 连续多个文件,有个别超时

Run multiple files consecutively via SLURM with individual timeout

我在 HPC 上有一个 python 脚本 运行,它获取文本文件中的文件列表并启动多个 SBATCH 运行s:

./launch_job.sh 0_folder_file_list.txt

launch_job.sh 遍历 0_folder_file_list.txt 并为每个文件启动一个 SBATCH

SAMPLE_LIST=`cut -d "." -f 1 `

for SAMPLE in $SAMPLE_LIST
do
  echo "Getting accessions from $SAMPLE"
  sbatch get_acc.slurm $SAMPLE
  #./get_job.slurm $SAMPLE
done

get_job.slurm 拥有我所有的 SBATCH 信息、模块加载等,并执行

srun --mpi=pmi2 -n 5 python python_script.py ${SAMPLE}.txt

我不想一次启动所有作业,我希望它们连续 运行 最多 24 小时 运行 时间。我已经将我的 SBATCH -t 设置为允许最长时间,但我只希望每个作业 运行 最多 24 小时。我可以设置一个 s运行 参数来完成这个吗?还有别的吗?

您可以将 --wait 标志与 sbatch 一起使用。

-W, --wait Do not exit until the submitted job terminates. The exit code of the sbatch command will be the same as the exit code of the submitted job. If the job terminated due to a signal rather than a normal exit, the exit code will be set to 1. In the case of a job array, the exit code recorded will be the highest value for any task in the job array.

在你的情况下,

for SAMPLE in $SAMPLE_LIST
do
  echo "Getting accessions from $SAMPLE"
  sbatch --wait get_acc.slurm $SAMPLE
done

因此,下一个 sbatch 命令只会在第一个 sbatch 完成后调用(您的作业结束或达到时间限制)。