“#”(注释)是 SLURM 作业提交

“#”(注释)是 SLURM 作业提交

问题与文章相关普林斯顿研究计算公司推出 SLURM

例如,

#SBATCH --job-name=slurm-test    # create a short name for your job

SBATCH第一个之后#将被执行,create第二个之后#将被视为注释。这是因为第二个有空格吗#?我通常将其视为#评论。但在某些情况下,它确实会被执行。

答案1

使用 提交 SLURM 作业时sbatch,作业脚本中以确切字符串开头的任何行都#SBATCH将被视为作业调度程序的特殊处理指令。

该字符串#SBATCH称为“magic cookie”,必须作为该行的第一个内容出现,并且#和之间没有空格SBATCH

bash如果由其他常见 POSIX shell执行,这些行将被视为注释并被完全忽略。

从中并不清楚sbatch文档那一个更远 #普遍支持在该行上作为对当前行进行注释的一种方式#SBATCH。如果#SBATCH一行需要注释,通常的做法是在该行上方提供普通注释,如下所示

### Job name
#SBATCH --job-name=MYJOB

(三元组###除了让评论更加突出之外没有什么特别的意义)。

也可以看看:

答案2

#是 bash 中的注释,所以你不应该my_job.slurm使用./my_job.slurmor运行,bash ./my_job.slurm因为后面的所有内容#都会被忽略。

但是当您使用 运行它时sbatch,它会将以 SBATCH 开头的注释识别为参数。

https://support.ceci-hpc.be/doc/_contents/QuickStart/SubmittingJobs/SlurmTutorial.html#creating-a-job

提交脚本是一个shell脚本,例如Bash脚本,其评论, 如果他们是以 SBATCH 为前缀,被 Slurm 理解为描述资源请求和其他提交选项的参数。

相关内容