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.

Warning

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.

Warning

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.

load OpenMPI:

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