【发布时间】:2017-10-01 17:55:24
【问题描述】:
我试图了解 SLURM 的 srun 和 sbatch 命令之间的区别。我会对一般性的解释感到满意,而不是对以下问题的具体答案,但这里有一些具体的混淆点,可以作为起点,让我了解我在寻找什么。
根据documentation,srun 用于提交作业,sbatch 用于提交作业以供以后执行,但我不清楚实际区别,它们的行为似乎是相同的。例如,我有一个有 2 个节点的集群,每个节点有 2 个 CPU。如果我连续执行srun testjob.sh & 5x,它将很好地排队第五个作业,直到 CPU 可用,执行sbatch testjob.sh 也是如此。
为了使问题更具体,我认为一个好的起点可能是:哪些事情我可以用一个做而我不能用另一个做,为什么? p>
这两个命令的许多参数是相同的。似乎最相关的是--ntasks、--nodes、--cpus-per-task、--ntasks-per-node。 它们之间有何关联,srun 与 sbatch 有何不同?
一个特别的区别是,如果testjob.sh 没有可执行权限,即chmod +x testjob.sh,srun 将导致错误,而sbatch 会愉快地运行它。 “幕后”发生了什么导致这种情况发生?
文档还提到srun 经常在sbatch 脚本中使用。这就引出了一个问题:它们如何相互交互,它们各自的“规范”用例是什么?具体来说,我会单独使用srun 吗?
【问题讨论】:
标签: parallel-processing scheduler jobs slurm sbatch