mpirun、mpiexec和mpiexec.hydra之间的区别和关系是什么?
我对三件事感到困惑:mpirun、mpiexec和mpiexec.hydra 在我的群集上,所有这些都存在,并且都属于intelmpirun、mpiexec和mpiexec.hydra之间的区别和关系是什么?,mpi,Mpi,我对三件事感到困惑:mpirun、mpiexec和mpiexec.hydra 在我的群集上,所有这些都存在,并且都属于intel 它们之间的区别和关系是什么?特别是,mpiexec.hydra到底是什么?为什么mpiexec和hydra之间有一个点,这意味着什么?mpirun和mpiexec基本上是相同的-在许多MPI实现中,进程启动器的名称。MPI标准没有说明应该如何启动和控制列组,但它建议(尽管没有要求)如果有任何类型的启动器,应该将其命名为mpiexec。一些MPI实现从mpirun开始,
它们之间的区别和关系是什么?特别是,mpiexec.hydra到底是什么?为什么mpiexec和hydra之间有一个点,这意味着什么?
mpirun
和mpiexec
基本上是相同的-在许多MPI实现中,进程启动器的名称。MPI标准没有说明应该如何启动和控制列组,但它建议(尽管没有要求)如果有任何类型的启动器,应该将其命名为mpiexec
。一些MPI实现从mpirun
开始,然后采用mpiexec
以实现兼容性。其他实现则相反。最后,大多数实现都以这两个名称提供启动器。实际上,mpirun
和mpiexec
的功能应该没有区别
不同的MPI实现有不同的启动和控制流程的方法。MPICH从一个名为MPD(多用途守护程序或其他东西)的基础结构开始。然后它切换到更新的Hydra process manager。由于Hydra的工作方式与MPD不同,因此基于Hydra的mpiexec
采用的命令行参数与基于MPD的命令行参数不同,为了使用户能够显式选择基于Hydra的参数,可以将其作为mpiexec.Hydra
提供。旧的名为mpiexec.mpd
。可以有一个基于MPICH的MPI库,该库只提供Hydra启动器,然后mpiexec
和mpiexec。Hydra
将是相同的可执行文件。“英特尔MPI”基于MPICH,其较新版本使用Hydra process manager
OpenMPI构建在开放运行时环境(ORTE)之上,它自己的进程启动器称为ORTRUN
。为了兼容性,orterun
也被符号链接为mpirun
和mpiexec
总结如下:
是针对给定实现的MPI流程启动器的特定版本mpiexec.something
和mpiexec
是通用名称,通常是实际启动器的副本或符号链接mpirun
和mpiexec
都应该这样做mpirun
- 有些实现将其启动器命名为
,有些将其命名为mpiexec
,有些同时命名为两者,当系统路径中同时存在多个MPI实现时(例如,当从发行版包安装时),这往往会引起混淆mpirun
mpirun
必须指定-n
选项,而mpiexec
和mpiexec.hydra
不必在我的骑士登陆系统上使用英特尔编译器mpiexec
是指向mpiexec.hydra
的符号链接(即它们是相同的)。但是,mpirun
是一个调用mpiexec.hydra的shell脚本。您的句子“mpiexec和mpirun应该做相同的事情”是什么意思?你是说他们应该做同样的事情?这意味着他们都在以这样或那样的方式启动MPI作业。