我正在使用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'。
答案 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 &