Open MPI

Description

Open MPI is an open source MPI-2 and MPI-3 implementation that is developed and maintained by a consortium of academic, research, and industry partners. Open MPI resulted from a merger of the code-bases from the FT-MPI, LA-MPI and LAM/MPI implementations and their respective communities and is actively developed.

User instructions

Open MPI has been compiled for both the GNU and Intel 64-bit compiler families. To use it, load the appropriate module:

$ module load openmpi/2.1.1

Compiling MPI programs is best done using the MPI programs which act as wrappers around the desired compiler:

mpif90
Fortran wrapper.
mpicc
C wrapper
mpic++, mpiCC, mpicxx
C++ wrapper

MPI-compiled programs should be run using the mpirun command, e.g. to run an MPI program on 2 processors:

$ mpirun -np 2 /path/to/program.x

Documentation can be found via the manpages.

Note

The majority of cluster workstations are good, but not suitable for highly-parallel calculations. Please investigate the College’s HPC service for running large-scale MPI calculations. Open MPI is provided on the cluster for development purposes.

License

New BSD license (free, both in terms of speech and beer).

Admin notes

I compiled the GNU version using:

$ ../openmpi-2.1.1/configure --prefix=/common/debian/9.1/Compiler/gcc/6.3/openmpi/openmpi-2.1.1 --disable-dlopen
$ (make -j4 && make check) > make.log 2>&1 &
$ make install

and the Intel version using:

$ ../openmpi-2.1.1/configure --prefix=/common/debian/9.1/Compiler/intel/2017.4/openmpi/openmpi-2.1.1 --disable-dlopen CC=icc CXX=icpc F77=ifort FC=ifort
$ (make -j4 && make check) > make.log 2>&1 &
$ make install

Memchecker support can be enabled by adding --enable-debug --enable-memchecker to the configure command. A version with this was previously installed (as an experiment when trying to track down a bug) but is not currently installed. Please ask if this is of interest.

Note the additional flag at the configure stage: --disable-dlopen is in order to allow python to work with mpi. see https://github.com/jhedev/mpi_python for details of the issue.