Slurm

“#”(註釋)是 SLURM 作業送出

  • November 5, 2019

該問題與Princeton Research Computing 的文章 Introducing SLURM有關。

例如,

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

SBATCH在第一個之後#將被執行,create在第二個之後#將被視為註釋。這是因為第二個有空格#嗎?我通常認為#是評論。但在某些情況下,它確實會被執行。

#用於在 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 理解為描述資源請求和其他送出選項的參數。

使用 送出 SLURM 作業sbatch時,作業腳本中以確切字元串開頭的任何行都#SBATCH將被視為作業調度程序的特殊處理指令。

該字元串#SBATCH稱為“魔術餅乾”,必須作為行中的第一件事出現,和之間沒有#空格SBATCH

如果由bash其他常見的 POSIX shell 執行,這些行將被視為註釋並被完全忽略。

sbatch從文件中不清楚是否普遍支持該行的進一步 #作為對目前#SBATCH行發表評論的一種方式。如果#SBATCH一行需要註釋,通常的做法是在該行上方的行上提供一個普通註釋,如

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

###(除了使評論突出一點之外,三元組沒有什麼特別的意思)。

也可以看看:

引用自:https://unix.stackexchange.com/questions/550390