Arrays SLURM/sbatch:将数组ID作为可执行文件的输入参数传递
我是SLURM的新手,我尝试做一些非常自然的事情:我有一个编译好的C程序,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
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
的完整列表,谢谢!对于未来的读者,以下是手册页: