Arrays SLURM/sbatch:将数组ID作为可执行文件的输入参数传递

Arrays SLURM/sbatch:将数组ID作为可执行文件的输入参数传递,arrays,parallel-processing,jobs,slurm,sbatch,Arrays,Parallel Processing,Jobs,Slurm,Sbatch,我是SLURM的新手,我尝试做一些非常自然的事情:我有一个编译好的C程序,off.exe,它接受一个变量作为输入,我想并行运行它几次,每次都使用不同的输入参数值。 我想我可以使用%a数组迭代器作为输入: #!/bin/bash #SBATCH --partition=regular1,regular2 #SBATCH --time=12:00:00 # walltime #SBATCH --ntasks=1

我是SLURM的新手,我尝试做一些非常自然的事情:我有一个编译好的C程序,
off.exe
,它接受一个变量作为输入,我想并行运行它几次,每次都使用不同的输入参数值。 我想我可以使用
%a
数组迭代器作为输入:

#!/bin/bash

#SBATCH --partition=regular1,regular2
#SBATCH --time=12:00:00                                         # walltime
#SBATCH --ntasks=1                                              # number of processor cores (i.e. tasks)
#SBATCH --mem-per-cpu=512M                                      # memory per CPU core
#SBATCH --job-name="ISM"                                        # job name
#SBATCH --array=1-60                                            # job array. The item identifier is %a
#SBATCH --output=Polarization_%a_v0.4.txt                       # output file. %A is the job ID

srun ./off.exe %a
但它不起作用(好像输入参数总是零!)。
有人能帮我吗?

$a
%j
等是文件名的替换符号,例如在Slurm记录的输出和错误文件的名称中。对于作业数组,您需要使用Slurm的一个输出环境变量,可能是
$Slurm\u ARRAY\u TASK\u ID
。您可以在手册页中找到
sbatch

的完整列表,谢谢!对于未来的读者,以下是手册页: