如何在sbatch脚本中传递变量以进行多个作业提交

时间:2019-07-12 14:29:13

标签: bash matlab slurm sbatch

我需要一次提交多个SLURM作业,但是所有这些都需要具有一些我希望能够从命令行传递的公用变量。我想到的是这样的: 命令行输入类似

bash MasterScript.sh -variable1 var1 -variable2 var2

MasterScript.sh所在的位置

sbatch JobSubmitter.sh -variable1in var1 -variable2in var2 -version 1
sbatch JobSubmitter.sh -variable1in var1 -variable2in var2 -version 2
sbatch JobSubmitter.sh -variable1in var1 -variable2in var2 -version 3

,然后jobsubmitter.sh看起来

#!/bin/bash
# Prepare
#SBATCH --partition=devq
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=40
#SBATCH --mem=1g
#SBATCH --time=00:02:00
# Load modules
module purge
module load matlab-uon/r2018b
#
matlab -nodesktop  -r "parpool('local',40);MyFun(variable1inin,variable2in,version)"; 

现在,对于每个“版本”(共有六个),我都有一个不同的SLURM脚本,每次我想更改输入参数时,都必须在所有六个脚本中进行编辑,然后从一个主脚本,无需输入。在这里我不知道怎么做的一件事就是转换输入参数,这样它们仍然会出现在用于Matlab命令的逐字环境中。

0 个答案:

没有答案