该问题与Princeton Research Computing 的文章 Introducing SLURM有关。
例如,
#SBATCH --job-name=slurm-test # create a short name for your job
SBATCH
在第一个之后#
将被执行,create
在第二个之后#
将被视为注释。这是因为第二个有空格#
吗?我通常认为#
是评论。但在某些情况下,它确实会被执行。
该问题与Princeton Research Computing 的文章 Introducing SLURM有关。
例如,
#SBATCH --job-name=slurm-test # create a short name for your job
SBATCH
在第一个之后#
将被执行,create
在第二个之后#
将被视为注释。这是因为第二个有空格#
吗?我通常认为#
是评论。但在某些情况下,它确实会被执行。
使用 提交 SLURM 作业
sbatch
时,作业脚本中以确切字符串开头的任何行都#SBATCH
将被视为作业调度程序的特殊处理指令。该字符串
#SBATCH
称为“魔术饼干”,必须作为行中的第一件事出现,和之间没有#
空格SBATCH
。如果由
bash
其他常见的 POSIX shell 执行,这些行将被视为注释并被完全忽略。sbatch
从文档中不清楚是否普遍支持该行的进一步#
作为对当前#SBATCH
行发表评论的一种方式。如果#SBATCH
一行需要注释,通常的做法是在该行上方的行上提供一个普通注释,如###
(除了使评论突出一点之外,三元组没有什么特别的意思)。也可以看看:
#
用于在 bash 中发表评论,因此您不应my_job.slurm
使用./my_job.slurm
or运行,bash ./my_job.slurm
因为之后的所有内容#
都将被忽略。但是当你用 运行它时
sbatch
,它会识别以 SBATCH 开头的注释作为参数。https://support.ceci-hpc.be/doc/_contents/QuickStart/SubmittingJobs/SlurmTutorial.html#creating-a-job