在我目前的项目中,我遇到了slurm multiprog conf中超长命令的问题(它有256个字符的限制)。
为了避免这种情况,我想在批处理文件中定义变量(paths,userdata,filenames),并在multiprog配置文件中使用它们。
谷歌阿姨谷歌和相当简陋的文件没有给我提示。我研究了使用环境变量,但还没有找到一种方法来设置我自己的。任何提示?
答案 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个额外的字符。