OpenMPI
OpenMPI is a widely uses MPI library with good performance over shared memory and all fabrics present on the clusters. There are two variants, the offical variant from OpenMPI and the one from the Nvidia HPC SDK. The Nvidia HPC SDK variant is always built and optimized to support Nvidia GPUs, Nvidia NV-Link (used between the GPUs on some nodes), and Mellanox Infiniband. The offial variant is built to support Nvidia GPUs in the NHR Modules (nhr-lmod) software stack on the Grete nodes.
Do not mix up OpenMPI (an implementation of MPI) and OpenMP, which is a completely separate parallelization technology (it is even possible to use both at the same time). They just coincidentally have names that are really similar.
In all software stacks, the official variant’s module name is openmpi
.
The Nvidia HPC SDK variant’s module name is nvhpc
except in the HLRN Modules (hlrn-tmod) software stack where it is nvhpc-hpcx
.
The HLRN Modules (hlrn-tmod) software stack also provides the module nvhpc
, but the OpenMPI in that module does NOT support running jobs on more than one node.
It only supports intra-node communication.
For jobs that operate on a single node, it is perfectly fine to use.
But don’t use it in any job operating using more than one node.
To load OpenMPI, follow the instructions below.
For a specific version, run
module load openmpi/VERSION
and for the default version, run
module load openmpi
Substitute nvhpc
with nvhpc-hpcx
for the HLRN Modules (hlrn-tmod) software stack.
For a specific version, run
module load nvhpc/VERSION
and for the default version, run
module load nvhpc