Computing : openmpi-intel

In addition to plain openmpi, intel-compiled openmpi libraries and corresponding compilers are available (thanks to DV-Zeuthen). The setup is mostly identical to the one for openmpi.

To initialize the environment use the module command:

[pal]$ module avail                           # show available module; if module is undefined (bash) source /etc/profile.d/modules.sh 
[pal]$ module load openmpi-x86_64-intel       # initialize environment
[el7]% module load mpi/openmpi-x86_64-intel   # on EL7 nodes the setup differs slightly
                                              # there is no need to load the intel-module. it gets loaded together with the openmpi module
[el7]$ which mpicc
/usr/lib64/openmpi-intel/bin/mpicc
[el7]$ module list
  1) mpi/openmpi-x86_64-intel   2) intel/2016 

Loading the openmpi-intel module will also load the module of the intel-compilers used to compile this particular version of openmpi. In some cases, the full intel-setup is required:

[el7]$ source /usr/local/bin/intel-setup-2016.sh intel64   # make sure to initialize the same version as loaded by the module

Be aware that the intel setup will also invoke the Intel-MPI-setup!  mpirun will actually be loaded from /opt/intel/2016/compilers_and_libraries_2016.3.210/linux/mpi/intel64/bin/mpirun. If you don't want to use Intel MPI (and you probably don't) make sure to load the openmpi-module after setting up intel:

[el7]$ source /usr/local/bin/intel-setup-2016.sh intel64
[el7]% module load mpi/openmpi-x86_64-intel

Better, just load the environment needed. If you also need MKL:

[el7]$ module load mpi/openmpi-x86_64-intel
[el7]$ source /opt/intel/2017/mkl/bin/mklvars.sh  intel64

openmpi-intel will work on HPC and BIRD. 

 

Documentation:

openmpi has (like mpich, mvapich) an exhaustive number of options to tune compilation and runtime behavior. Please consult the openMPI documentations and FAQ: