在sbatch脚本中,您可以直接启动程序或脚本(例如,可执行文件myapp),但是在许多教程中,人们会使用它们srun myapp。
尽管阅读了有关该主题的一些文档,但我不了解它们的区别以及何时使用这些语法。
我希望这个问题足够精确(关于SO的第一个问题),在此先感谢您的回答。
该srun命令用于创建作业“步骤”。
首先,它将更好地报告资源使用情况;sstat命令将为以开头的进程提供实时资源使用情况srun,并且每个步骤(对srun的每个调用)都将在记帐中单独报告。
其次,它可以用于将一个串行程序(仅使用一个CPU的程序)的许多实例设置到一个作业中,并在作业分配中对这些程序进行微调度。
最后,对于并行作业,srun还将扮演启动并行程序和设置并行环境的重要角色。它会--ntasks根据为作业分配的CPU上的选项启动请求的程序实例。对于MPI程序,它还将处理MPI库和Slurm之间的通信。