Mpiexec -n 和-np 之间的区别?

Mpiexec difference between -n and -np?

我是 MPI 世界的新手,有一个问题让我很恼火。 -n 和 -np 之间的真正区别是什么?

MPI 标准没有指定 MPI 等级是如何开始的,而是留给特定的实现来为此提供一种机制。它仅建议(有关详细信息,请参阅 MPI 3.1 标准的 Section 8.8)提供名为 mpiexec 的启动器(如果有必要),并且 -n #procs 是指定 MPI 进程初始数量的公认方法之一。因此,除非您确切指定您正在使用哪个 MPI 实现,否则提出的问题没有意义。正如我在评论中所说,对于大多数实现,这两个选项都是同义词。

请注意,某些 MPI 实现可以与批处理调度系统(如 Slurm、Torque 等)集成,这些系统可能会提供自己的机制来启动 MPI 作业。例如,Open MPI 提供 orterun 进程启动器,符号链接为 mpirunmpiexec,它理解 -n-np 选项。但是,当 运行 在 Slurm 作业中时,会使用 srun 并且它只理解 -n (它实际上有一组完全不同的选项)。