OpenMPI

OpenMPI is the defacto standard implementation of the Message Passing Interface system. OpenMPI allows developers to create programs that scale across multiple machines.

Available versions

Several versions of OpenMPI are available for use:

  • Compiled by gcc 4.8

    • 1.10.3 (Red Hat package)
    • 1.10.6
    • 2.0.2
  • Compiled by gcc 6.2

    • 1.10.6
    • 2.0.2
    • 2.1.0
  • Compiled by icc (Intel)

    • 1.10.6
    • 2.0.2
  • Compiled by PGI

    • 1.10.6
    • 2.0.2

The implementations are either compiled with the GNU Compiler Collection (GCC), the Intel C/C++ compiler (icc) or the PGI C/C++ compiler. You can use the implementation and version based on the C/C++ compiler you’ve chosen to use. All of the GCC versions have been compiled with the RHEL7 default GCC (GCC 4.8). On request we will compile additional versions with newer versions of GCC.

Installing OpenMPI

Select a version and then run the command for that version listed below. You can install all of the different versions at the same time:

  • 1.10.3 (gcc 4.8): sudo yum install openmpi
  • 1.10.6 (gcc 4.8): sudo yum install openmpi1106
  • 1.10.6 (gcc 6.2): sudo yum install openmpi1106-gcc62
  • 1.10.6 (icc): sudo yum install openmpi1106-intel
  • 1.10.6 (pgi): sudo yum install openmpi1106-pgi
  • 2.0.2 (gcc 4.8): sudo yum install openmpi202
  • 2.0.2 (gcc 6.2): sudo yum install openmpi202-gcc62
  • 2.0.2 (icc): sudo yum install openmpi202-intel
  • 2.0.2 (pgi): sudo yum install openmpi202-pgi
  • 2.1.0 (gcc 6.2): sudo yum install openmpi210-gcc62

Using OpenMPI

All of the OpenMPI implementations use the Environment modules system. Thus to use an implementation simply module load the version you prefer:

  • 1.10.3 (gcc 4.8): module load mpi/openmpi-x86_64
  • 1.10.6 (gcc 4.8): module load openmpi/1.10.6
  • 1.10.6 (gcc 6.2): module load openmpi/1.10.6-gcc62
  • 1.10.6 (icc): module load openmpi/1.10.6-intel
  • 1.10.6 (pgi): module load openmpi/1.10.6-pgi
  • 2.0.2 (gcc 4.8): module load openmpi/2.0.2
  • 2.0.2 (gcc 6.2): module load openmpi/2.0.2-gcc62
  • 2.0.2 (icc): module load openmpi/2.0.2-intel
  • 2.0.2 (pgi): module load openmpi/2.0.2-pgi
  • 2.1.0 (gcc 6.2): module load openmpi/2.1.0-gcc62