如何检查MPICH的版本?

18

如题,有哪个命令可以列出当前MPICH版本?我正在运行CentOS。

答:您可以使用以下命令在CentOS上列出当前安装的MPICH版本:

mpirun -version

尝试阅读man手册。我首选的第一个猜测是 $prog --version,其中 $prog 是您用来调用MPICH的名称。 - icedwater
当我执行 man mpich 时,它会显示“mpich没有手册条目”。 - Isopycnal Oscillation
你安装了文档包吗?mpich 是你使用的命令吗?那么我建议尝试 mpich -vmpich --version 或者甚至是 mpich --help 来获取更多信息。 - icedwater
1
我能理解你的困惑。MPICH(以及所有其他MPI实现)不会生成名为mpich的可执行文件,而是创建mpirun/mpiexec/许多其他东西,其中没有一个被命名为mpich。 - Wesley Bland
5个回答

20

你在使用MPICH启动应用程序时要运行的命令是mpiexec,因此检查版本的方法是:

mpiexec --version

如果您不熟悉如何使用MPI(或特定的MPICH),那么有很多好的网站可以找到教程。关于如何编译和运行程序的具体信息,请从MPICH src目录中的README开始。如果您是通过软件包管理器(如yum、apt-get、brew等)安装的,您可以在MPICH网站上找到该信息:http://www.mpich.org/documentation/guides/。 - Wesley Bland
invalid "local" arg: --version - Mr_and_Mrs_D
@Mr_and_Mrs_D,你们使用的MPI实现不支持“--version”吗? - Wesley Bland
在学校的Linux实验室中安装的那个 - 也就是说,不太确定 :) 请参见我下面的回答:链接 - Mr_and_Mrs_D
如果两者都安装了,这可能会给您提供openmpi版本。因此,下面的答案可能更可取。 - HongboZhu

7

我发现在与mpicc相同的目录下,mpichversion提供了非常有用的信息。例如,在我的笔记本电脑上,它显示:

$ mpichversion
MPICH Version:      3.2b1
MPICH Release date: unreleased development copy
MPICH Device:       ch3:nemesis
MPICH configure:    CC=gcc-4.9 CXX=g++-4.9 FC=gfortran-4.9 F77=gfortran-4.9 
                    --enable-cxx --enable-fortran --enable-threads=runtime 
                    --enable-g=dbg --with-pm=hydra 
                    --prefix=/opt/mpich/dev/gcc/default 
                    --enable-wrapper-rpath --enable-static --enable-shared
MPICH CC:   gcc-4.9    -g -O2
MPICH CXX:  g++-4.9   -g -O2
MPICH F77:  gfortran-4.9   -g -O2
MPICH FC:   gfortran-4.9   -g -O2

请注意,我稍微重新格式化了输出(只添加了空格),以便它可以适应固定列格式而不需要滑块。
请注意,这提供的信息比之前建议的mpiexec --version要少一些,但是配置标志以稍微不太有用的格式给出,至少对于我的目的来说(将其复制并粘贴到新的配置调用中)。
$ mpiexec --version
HYDRA build details:
    Version:                                 3.2b1
    Release Date:                            unreleased development copy
    CC:                              gcc-4.9    
    CXX:                             g++-4.9    
    F77:                             gfortran-4.9   
    F90:                             gfortran-4.9   
    Configure options:                       '--disable-option-checking' '--prefix=/opt/mpich/dev/gcc/default' 'CC=gcc-4.9' 'CXX=g++-4.9' 'FC=gfortran-4.9' 'F77=gfortran-4.9' '--enable-cxx' '--enable-fortran' '--enable-threads=runtime' '--enable-g=dbg' '--with-pm=hydra' '--enable-wrapper-rpath' '--enable-static' '--enable-shared' '--cache-file=/dev/null' '--srcdir=../../../../src/pm/hydra' 'CFLAGS= -g -O2' 'LDFLAGS= ' 'LIBS=-lpthread ' 'CPPFLAGS= -I/Users/jrhammon/Work/MPI/MPICH/git/build/src/mpl/include -I/Users/jrhammon/Work/MPI/MPICH/git/src/mpl/include -I/Users/jrhammon/Work/MPI/MPICH/git/src/openpa/src -I/Users/jrhammon/Work/MPI/MPICH/git/build/src/openpa/src -D_REENTRANT -I/Users/jrhammon/Work/MPI/MPICH/git/build/src/mpi/romio/include'
    Process Manager:                         pmi
    Launchers available:                     ssh rsh fork slurm ll lsf sge manual persist
    Topology libraries available:            hwloc
    Resource management kernels available:   user slurm ll lsf sge pbs cobalt
    Checkpointing libraries available:       
    Demux engines available:                 poll select
< p >(我没有重新格式化此输出。)< / p > < p > mpichversion 的一个好处是,因为它专门针对MPICH(可能是一些MPICH衍生品),所以您可以编写更具体的解析器。 我不知道在OpenMPI或其他非MPICH MPI实现中,< code > mpiexec --version < / code >是否有什么可用信息。


那应该是被接受的答案。 - rbeucher

6

对我来说,这个命令是 mpicc -v

mpicc for 1.1.1p1
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
Thread model: posix
gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)

HTH


2
哇。那看起来像是一个非常老的版本 MPICH。虽然每个实现都不同,但对于最近版本的 MPICH、Open MPI 及其所有衍生版本,你应该可以直接运行 mpiexec --version。例如,在一个相对较新的 Open MPI 版本(1.4.3)上运行 mpicc -v,你会得到 GCC 的版本信息,因为参数只是通过传递的。而在 MPICH 上,你仍将看到 MPICH 的版本信息,因为它获取了该标志。 - Wesley Bland

2

根据您的权限,您可以检查yum(或sudo yum):

$> yum info mpich2
...
Name        : mpich2
Arch        : x86_64 
Version     : 1.2.1
Release     : 2.3.el6
Size        : 3.7 M
Repo        : base
...

显示我机器上相关的部分。Repo : base对于你已安装的版本将是Repo : installed

或者你可以检查mpirunmpiexec

$> mpirun --version
mpirun (Open MPI) 1.6.3

1
这里简单说明一下,最新版本的MPICH不再称为MPICH2,而是只叫做MPICH。一些软件包管理器可能仍然使用旧名称,但更近期的更新可能无法匹配。 - Wesley Bland

2

在mpi.h中有一个名为MPICH_VERSION的字符串,用于设置版本。例如,Cray提供了自己的应用程序启动器,因此没有标准的可执行文件集来查询MPICH版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接