首页 > 解决方案 > 如何提交具有不同输入文件的 slurm 作业数组

问题描述

我有一个需要处理的文本文件列表(约 200 个文件)。所以我试图为此任务提交一个 slurm 作业数组,但我找不到解决方案。我尝试的是通过循环文件来提交多个作业(约 200 个作业)以完成一项任务。我确信有一种方法可以为这个问题创建工作数组,你能告诉我吗?

那是我的 bash 脚本

#!/bin/bash
input_list=$1
prefix=$2

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

标签: slurm

解决方案


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

#!/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=$1
prefix=$2

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

推荐阅读