0

我正在使用 slurm sbatch 在集群上并行启动 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”。

4

1 回答 1

2

我相信它没有读取你的变量,因为你没有$在它们前面放一个。你 srun 行应该是:

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 &
于 2014-04-05T21:15:31.273 回答