17
votes

As stated in the question, what is the command that lists the current version of MPICH? I am running CentOS.

5
Try reading the man pages. My preferred first guess would be $prog --version where $prog is whatever name you call MPICH with.icedwater
When I do man mpich it says "No manual entry for mpich"Isopycnal Oscillation
Did you install the documentation packages? Is mpich the command you use? Then I would try mpich -v, mpich --version or even mpich --help to find out more.icedwater
I can understand the confusion. MPICH (along with all other implementation of MPI) does not generate an executable called mpich, but instead create mpirun/mpiexec/lot of other things, none of which are named mpich.Wesley Bland

5 Answers

19
votes

The command you run to start your application with MPICH is mpiexec, so the way to check the version is:

mpiexec --version
6
votes

Well for me it was 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

6
votes

I find that mpichversion, which is found in the directory as mpicc, provides very useful information. For example, on my laptop, it displays:

$ 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

Note that I reformatted the output slightly (I added whitespace, nothing else) so that it would fit nicely into the fixed column format without requiring a slider.

Note that this provides less information than the previously suggested mpiexec --version, but the configure flags are given in a slightly less useful format, at least for my purposes (copy-and-paste into new configure invocation).

$ 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

(I did not reformat this output.)

One benefit of mpichversion is that, because it is specific to MPICH (and possibly some MPICH derivatives), you can write a more specific parser for it. I do not know what, if any, information is available from mpiexec --version for OpenMPI or other non-MPICH MPI implementations.

2
votes

Depending on your rights, you can check yum (or sudo yum):

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

shows the relevant section on my machine. Repo : base would be Repo : installed for the version you have installed.

Or you can check mpirun or mpiexec:

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

There is a string called MPICH_VERSION in mpi.h that is set to the version. Cray, for example, provides their own application launcher so there isn't the standard set of executables already mentioned for querying the MPICH version.