如何检查OpenMPI的版本?

如何检查OpenMPI的版本?,openmpi,Openmpi,我在一个有OpenMPI的服务器上编译代码,但是我需要知道我在哪个版本上,这样我才能阅读正确的文档。中是否有常数可以打印以显示当前版本?使用OpenMPI,最简单的方法是运行ompi_info;前几行将为您提供所需的信息。在您自己的代码中,如果您不介意OpenMPI特定的内容,可以在mpi.h中查看使用OMPI\u主版本,OMPI\u次版本,以及OMPI\u发布版本。这显然不适用于MPICH2或其他MPI实现 更标准地说,作为MPI-3的一部分,有一个名为的标准MPI例程,它在运行时为您提供详细

我在一个有OpenMPI的服务器上编译代码,但是我需要知道我在哪个版本上,这样我才能阅读正确的文档。
中是否有常数可以打印以显示当前版本?

使用OpenMPI,最简单的方法是运行
ompi_info
;前几行将为您提供所需的信息。在您自己的代码中,如果您不介意OpenMPI特定的内容,可以在mpi.h中查看使用
OMPI\u主版本
OMPI\u次版本
,以及
OMPI\u发布版本
。这显然不适用于MPICH2或其他MPI实现


更标准地说,作为MPI-3的一部分,有一个名为的标准MPI例程,它在运行时为您提供详细的库信息。这足够小,足够有用,新版本的MPI实现将很快实现这一点-例如,它在OpenMPI 1.7开发主干中-但它现在并不能真正帮助您。

我不熟悉OpenMPI,但MPI有一个函数MPI_Get_Version,请检查您的mpi.h以了解类似的功能。

如中所述,您还可以检查运行以下命令的mpi版本:

mpiexec --version


在您的终端中。

您还可以获得编译器包装(例如
mpicxx
/
mpic++
/
mpicc
/
mpicc
/
mpifort
)来自的OpenMPI版本:

mpicxx --showme:version
如果(出于任何原因)您有不同版本的MPI编译器包装器和执行器,这将非常有用


(只需
mpicxx--showme
还将向您显示安装MPI的位置以及使用的编译器标志,有关详细信息,请参阅。)

这是一个开始,但只提供MPI库所遵循的标准版本;例如,今天的大多数MPI实现对于主/次版本将返回2和1(或0),但它不允许您区分(比如)OpenMPI 1.4.4和OpenMPI 1.5.3。在编写代码时,前者当然很重要,但如果您试图解决实现或配置问题,后一类信息可能非常重要。感谢您的评论,MPI_Get_version(*int,*int)以及MPI网站返回的信息是获取大量信息的关键!这正是我想要的。MPI_Get_version(*int,*int)让您知道遵循哪个MPI标准OpenMPI版本,而不是OpenMPI的实际发布版本。这是一个非常好的提示。可以轻松地在不同的平台上进行检查,而无需花费太多精力。
mpicxx --showme:version