mpirun、mpiexec和mpiexec.hydra有什么区别和关系?
What is the difference and relationship between mpirun, mpiexec and mpiexec.hydra?
我对 3 件事感到困惑:mpirun、mpiexec 和 mpiexec.hydra
在我的集群上,它们都存在,并且都属于intel。
它们之间有什么区别和关系?尤其是mpiexec.hydra到底是什么东西?为什么mpiexec和hydra中间有个点,是什么意思?
mpirun
和 mpiexec
基本相同——许多 MPI 实现中进程启动器的名称。 MPI 标准没有说明应该如何启动和控制行列,但它建议(但不要求)如果有任何类型的启动器,则应将其命名为 mpiexec
。一些 MPI 实现以 mpirun
开头,然后采用 mpiexec
以实现兼容性。其他实现则相反。最后,大多数实现都以这两个名称提供它们的启动器。实际上,mpirun
和 mpiexec
的作用应该没有区别。
不同的 MPI 实现具有不同的启动和控制进程的方法。 MPICH 从称为 MPD(Multi-Purpose Daemon 之类)的基础设施开始。然后它切换到更新的 Hydra 进程管理器。由于 Hydra 做事的方式与 MPD 不同,基于 Hydra 的 mpiexec
采用与基于 MPD 的命令行参数不同的命令行参数,并使用户可以明确地 select 基于 Hydra 的命令行参数,它以 mpiexec.hydra
的形式提供。旧的叫mpiexec.mpd
。有可能有一个基于 MPICH 的 MPI 库只提供 Hydra 启动器,然后 mpiexec
和 mpiexec.hydra
将是相同的可执行文件。 Intel MPI 基于 MPICH,其更新版本使用 Hydra 进程管理器。
Open MPI 建立在 Open 运行-Time Environment (ORTE) 之上,它自己的进程启动器称为 orterun
。为了兼容性,orterun
也被符号链接为 mpirun
和 mpiexec
.
总结一下:
mpiexec.something
是给定实现的 MPI 进程启动器的特定版本
mpiexec
和 mpirun
是通用名称,通常是实际启动器的副本或符号链接
mpiexec
和 mpirun
应该做同样的事情
- 有些实现将其启动器命名为
mpiexec
,有些将其命名为 mpirun
,有些将两者都命名,当系统中同时存在多个 MPI 实现时,这通常是混淆的根源路径(例如,从发行包安装时)
我对 3 件事感到困惑:mpirun、mpiexec 和 mpiexec.hydra
在我的集群上,它们都存在,并且都属于intel。
它们之间有什么区别和关系?尤其是mpiexec.hydra到底是什么东西?为什么mpiexec和hydra中间有个点,是什么意思?
mpirun
和 mpiexec
基本相同——许多 MPI 实现中进程启动器的名称。 MPI 标准没有说明应该如何启动和控制行列,但它建议(但不要求)如果有任何类型的启动器,则应将其命名为 mpiexec
。一些 MPI 实现以 mpirun
开头,然后采用 mpiexec
以实现兼容性。其他实现则相反。最后,大多数实现都以这两个名称提供它们的启动器。实际上,mpirun
和 mpiexec
的作用应该没有区别。
不同的 MPI 实现具有不同的启动和控制进程的方法。 MPICH 从称为 MPD(Multi-Purpose Daemon 之类)的基础设施开始。然后它切换到更新的 Hydra 进程管理器。由于 Hydra 做事的方式与 MPD 不同,基于 Hydra 的 mpiexec
采用与基于 MPD 的命令行参数不同的命令行参数,并使用户可以明确地 select 基于 Hydra 的命令行参数,它以 mpiexec.hydra
的形式提供。旧的叫mpiexec.mpd
。有可能有一个基于 MPICH 的 MPI 库只提供 Hydra 启动器,然后 mpiexec
和 mpiexec.hydra
将是相同的可执行文件。 Intel MPI 基于 MPICH,其更新版本使用 Hydra 进程管理器。
Open MPI 建立在 Open 运行-Time Environment (ORTE) 之上,它自己的进程启动器称为 orterun
。为了兼容性,orterun
也被符号链接为 mpirun
和 mpiexec
.
总结一下:
mpiexec.something
是给定实现的 MPI 进程启动器的特定版本mpiexec
和mpirun
是通用名称,通常是实际启动器的副本或符号链接mpiexec
和mpirun
应该做同样的事情- 有些实现将其启动器命名为
mpiexec
,有些将其命名为mpirun
,有些将两者都命名,当系统中同时存在多个 MPI 实现时,这通常是混淆的根源路径(例如,从发行包安装时)