SLURM 环境变量为空

SLURM environmental variables are empty

我尝试通过包含 --wrap 的命令行提交作业,而不是通过提交脚本提交。由于某种原因 slurm_variables 的 none 被初始化:

sbatch --job-name NVP --time 01:00:00 --nodes 1 --ntasks 1 --cpus-per-task 2 --wrap "echo "var1:" $SLURM_CPUS_PER_TASK "var2:" $SLURM_JOB_NAME"

在这种情况下,$SLURM_CPUS_PER_TASK 和 $SLURM_JOB_NAME 都是空的。 通过脚本提交完全相同的代码后,变量就会显示出来。

我无法弄清楚我的命令行提交有什么问题。

问题是您没有转义变量名称,并且在提交作业之前这些名称会扩展 bash。尝试对包装命令使用单引号,例如:

sbatch --job-name NVP --time 01:00:00 --nodes 1 --ntasks 1 --cpus-per-task 2 --wrap 'echo "var1:" $SLURM_CPUS_PER_TASK "var2:" $SLURM_JOB_NAME'

或者如果您需要使用双引号(用于其他变量扩展),只需使用 \ 转义变量,例如:

sbatch --job-name NVP --time 01:00:00 --nodes 1 --ntasks 1 --cpus-per-task 2 --wrap "echo "var1:" $SLURM_CPUS_PER_TASK "var2:" $SLURM_JOB_NAME"