我在具有OpenMPI的服务器上编译我的代码,但我需要知道我在哪个版本上,所以我可以阅读正确的文档。 <mpi.h>
中是否有常量可以打印以显示当前版本?
答案 0 :(得分:15)
使用OpenMPI,最简单的方法是运行ompi_info
;前几行将为您提供所需的信息。在您自己的代码中,如果您不介意特定于OpenMPI的内容,可以在mpi.h中查看使用OMPI_MAJOR_VERSION
,OMPI_MINOR_VERSION
和OMPI_RELEASE_VERSION
。这显然不适用于MPICH2或其他MPI实现。
更为标准的是,作为MPI-3的一部分,将有一个名为MPI_Get_library_version的标准MPI例程,它在运行时为您提供详细的库信息。这个足够小并且非常有用,以至于新版本的MPI实现可以非常快速地实现这一点 - 例如它在OpenMPI 1.7开发中心 - 但它今天并没有真正帮助你。
答案 1 :(得分:9)
答案 2 :(得分:3)
我不熟悉OpenMPI但是MPI有一个MPI Get_Version函数,请检查你的mpi.h是否有类似的功能。
答案 3 :(得分:1)
您还可以获取编译器包装器(例如mpicxx
/ mpic++
/ mpicc
/ mpifort
)提供的OpenMPI版本:
mpicxx --showme:version
如果(出于任何原因)您具有不同版本的MPI编译器包装程序和执行程序,这将很有用。
(mpicxx --showme
还会向您显示MPI的安装位置以及编译器标志的使用,有关更多信息,请参见manual。)