使用slurm sbatch为集群作业分配参数

时间:2014-04-05 13:55:15

标签: matlab cluster-computing batch-processing slurm

我正在使用slurm sbatch来parralel在群集上启动matlab功能。

为了将数字参数分配给matlab函数,我的sbatch文件中的正确语法是什么?

我尝试了以下(以及类似的):

#!/bin/bash

#SBATCH --partition=debug
#SBATCH --time=0-00:15:00
#SBATCH --cpus-per-task=12
#SBATCH -n1

VAR1=50
VAR2=40

BASE_MFILE_NAME=RUNAGT
MATLAB_MFILE=.m

  srun --exclusive --cpus-per-task=12 matlab2013b/bin/matlab -nodesktop -nosplash -nodisplay -r "RUNAGT(${SLURM_ARRAY_TASK_ID},VAR1,VAR2);exit" -logfile testV${SLURM_ARRAY_TASK_ID}.log &
wait

$ {SLURM_ARRAY_TASK_ID}正在运行,但是matlab无法识别VAR1和VAR2。

错误:未定义的函数或变量' VAR1'。

1 个答案:

答案 0 :(得分:2)

我认为它不会读取你的变量,因为你没有在它们前面加$。你的行应该是:

srun --exclusive --cpus-per-task=12 matlab2013b/bin/matlab -nodesktop -nosplash -nodisplay -r "RUNAGT(${SLURM_ARRAY_TASK_ID},${VAR1},${VAR2});exit" -logfile testV${SLURM_ARRAY_TASK_ID}.log &