如何使用不同的输入文件提交 slurm 作业数组

how to submit slurm job array with different input files

我有一个需要处理的文本文件列表(约 200 个文件)。所以我试图为这个任务提交一个 slurm 作业数组,但我找不到解决方案。我尝试过的是通过循环遍历单个任务的文件来提交多个作业(~200 个作业)。我确定有办法为这个问题创建作业数组,你能给我建议吗?

那是我的bash脚本

#!/bin/bash
input_list=
prefix=

readarray list < $input_list
a=0
for i in "${list[@]}"
do
   file=$i
   sbatch -a1-1 -- $PWD/kscript.sh $file $prefix"_"$a
   a=`expr $a + 1`
done

我想出了解决方案,所以它比我想象的要简单,这里是:

#!/bin/bash
# Task name
#SBATCH -J myjob
# Run time limit
#SBATCH --time=4:00:00
# Standard and error output in different files
#SBATCH -o %j_%N.out.log
#SBATCH -e %j_%N.err.log
#SBATCH --ntasks=1
# Execute application code

input_list=
prefix=

readarray list < $input_list
file=${list[$SLURM_ARRAY_TASK_ID-1]}
input=$PWD"/"$file
output=$prefix"_"$SLURM_ARRAY_TASK_ID
./kscript.sh $input $output