.. index:: Open MPI .. _Open MPI: 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: .. code-block:: bash $ 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: .. code-block:: bash $ 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 ------ http://www.openmpi.org. License ------- New BSD license (free, both in terms of speech and beer). Admin notes ----------- I compiled the GNU version using: .. code-block:: bash $ ../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: .. code-block:: bash $ ../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.