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

Rom*_*ldM 9 hpc slurm

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

尽管阅读了有关该主题的一些文档,但我不了解它们的区别以及何时使用这些语法

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

dam*_*ois 9

srun命令用于创建作业“步骤”。

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

其次,它可以用于将一个串行程序(仅使用一个CPU的程序)的许多实例设置到一个作业中,并在作业分配中对这些程序进行微调度。

最后,对于并行作业,srun还将扮演启动并行程序和设置并行环境的重要角色。它会--ntasks根据为作业分配的CPU上的选项启动请求的程序实例。对于MPI程序,它还将处理MPI库和Slurm之间的通信。

  • 在设置多个串行程序实例的情况下,典型的情况是`srun -N1 -n1 myprog &`对吗?如果 sbatch 作业分配超过 > 1 个节点,那么 `srun` 是否会确保每个实例运行在独立的 CPU 上,而不是仅仅使用 `myprog &`?事实上,如果脚本只有 `myprog &` 并且分配超过 > 1 个节点会发生什么? (2认同)