Slurm:为什么在 sbatch 中使用 srun?

Slurm: Why use srun inside sbatch?

在 sbatch 脚本中,您可以直接启动程序或脚本(例如可执行文件 myapp),但在许多教程中人们使用 srun myapp

尽管阅读了一些关于该主题的文档,我不明白其中的区别以及何时使用这些语法

我希望这个问题足够精确(关于 SO 的第一个问题),提前感谢您的回答。

srun命令用于创建作业'steps'。

首先,它将更好地报告资源使用情况; sstat 命令将为以 srun 启动的进程提供实时资源使用情况,并且每个步骤(对 srun 的每次调用)都将在会计中单独报告。

其次,它可用于将串行程序的多个实例(只使用一个CPU的程序)设置为单个作业,以及微调度作业分配里面的那些程序。

最后,对于并行作业,srun 还将发挥重要作用启动并行程序 并设置并行环境。它将启动与为作业分配的 CPU 上的 --ntasks 选项请求的一样多的程序实例。对于 MPI 程序,它还将处理 MPI 库和 Slurm 之间的通信。