我正在具有 OpenMPI 的服务器上编译我的代码,但我需要知道我使用的是哪个版本,以便阅读正确的文档。是否有一个常量<mpi.h>
可以打印以显示我的当前版本?
问问题
65871 次
4 回答
38
于 2018-01-26T12:32:05.310 回答
24
使用 OpenMPI,最简单的方法是运行ompi_info
;前几行将为您提供所需的信息。在您自己的代码中,如果您不介意特定于 OpenMPI 的内容,您可以查看 mpi.h 中的 use OMPI_MAJOR_VERSION
、OMPI_MINOR_VERSION
和OMPI_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 回答