Intel provides a commercial MPI library based on MPICH2 from Argonne National Labs.
On Linux, Intel MPI can be initialized by default. You can check the available versions and change to another version by
module avail intelmpi
module switch intelmpi intelmpi/2019.4
The loaded module set up several environment variables for further usage. The list of these variables can be obtained with
module help intelmpi
In particular, the compiler drivers mpiifort, mpifc, mpiicc, mpicc, mpiicpc and mpicxx as well as the MPI application startup scripts mpiexec and mpirun are included in the search path. The compiler drivers mpiifort, mpiicc and mpiicpc use the Intel Compilers whereas mpifc, mpicc and mpicxx are the drivers for the GCC compilers. The necessary include directory $MPI_INCLUDE and the library directory $MPI_LIBDIR are selected automatically by these compiler drivers.
We strongly recommend using the environment variables $MPIFC, $MPICC, $MPICXX and $MPIEXEC set by the module system according to last-loaded compiler module for building and running an MPI application. Example:
$MPIFC -c prog.f90
$MPIFC prog.o -o prog.exe
$MPIEXEC -np 4 ./prog.exe
- 2017.10.09: Version '2018' of Intel MPI is known to have a serious performance degradation on InfiniBand network (Bull Cluster, incl. interactive testing on MPI BackEnds). Please avoid using this version of Intel MPI on InfiniBand!
Your application is crashing from time to time on the new CLAIX nodes, but known to run well on old Bull nodes for years? Try to add '-x PSM2_KASSIST_MODE=none' to the command line,$MPIEXEC -env PSM2_KASSIST_MODE none $FLAGS_MPI_BATCH ./a.out