如何在Slurm批处理文件中声明变量并在multiprog conf中使用它?

时间:2017-01-26 09:51:33

标签: slurm

在我目前的项目中,我遇到了slurm multiprog conf中超长命令的问题(它有256个字符的限制)。

为了避免这种情况,我想在批处理文件中定义变量(paths,userdata,filenames),并在multiprog配置文件中使用它们。

谷歌阿姨谷歌和相当简陋的文件没有给我提示。我研究了使用环境变量,但还没有找到一种方法来设置我自己的。

任何提示?

1 个答案:

答案 0 :(得分:1)

multiprog配置文件中的命令行是exec,而不是使用Bash解析,因此您需要显式调用Bash shell。

例如:

$ export VAR=VALUE

我在环境中设置VAR var,其值为VALUE,并使用以下配置文件来说明:

$ cat multi.conf
0   echo $VAR
1   bash -c 'echo $VAR'

任务0将只是exec,而任务1将首先由Bash解析。结果:

$ srun -n2 -l --multi-prog multi.conf
0: $VAR
1: VALUE

Taks 0回显变量名,而任务1回应变量的值。但要注意你需要花费10个额外的字符。