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.
Source¶
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.