33

我正在具有 OpenMPI 的服务器上编译我的代码,但我需要知道我使用的是哪个版本,以便阅读正确的文档。是否有一个常量<mpi.h>可以打印以显示我的当前版本?

4

4 回答 4

38

本教程中所述,您还可以检查运行命令的 MPI 版本:

mpiexec --version

或者

mpirun --version

在您的终端中。

于 2018-01-26T12:32:05.310 回答
24

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

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

于 2012-04-07T18:02:29.027 回答
3

我不熟悉 OpenMPI,但 MPI 有一个函数 MPI_Get_Version,请检查你的 mpi.h 以获得类似的函数。

于 2012-04-07T18:03:05.130 回答
1

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

mpicxx --showme:version

如果(出于任何原因)您有不同版本的 MPI 编译器包装器和执行器,这将很有用。

mpicxx --showme还会向您显示 MPI 的安装位置以及使用的编译器标志,请参阅手册了解更多信息。)

于 2020-08-06T20:44:05.973 回答