MPI-Enabled Software#
MPI implementations and MPI-enabled libraries are available in both NLR-provided toolchain and CPE workflows.
MPI Libraries Available#
MPI-enabled software modules use a -mpi suffix. Like compiler-dependent modules, MPI-enabled modules are not visible by default. They appear after loading an MPI implementation (for example, openmpi, mpich, or intelmpi).
Discovering MPI Variants#
Find all versions of a package#
ml spider hdf5
Example output:
hdf5:
--------------------------------------------
Versions:
hdf5/1.14.5 (serial version)
hdf5/1.14.5-mpi (MPI-parallel version)
Check dependencies for the MPI variant#
ml spider hdf5/1.14.5-mpi
Example output showing dependencies:
hdf5:
--------------------------------------------
You will need to load all module(s) on one of the lines below before the
'hdf5/1.14.5-mpi' module is available to load.
gcc/14.2.0 openmpi/5.0.5
oneapi/2025.1.3 oneapi/mpi-2021.14.0
oneapi/2025.1.3 openmpi/5.0.5
NLR-Provided Toolchains: Loading MPI Software#
With GCC and OpenMPI#
module reset
module load gcc/14.2.0
module load openmpi/5.0.5
module avail hdf5
Output showing MPI variant now visible:
----------- [ gcc/14.2.0, openmpi/5.0.5 ] -----------
hdf5/1.14.5-mpi
----------- [ gcc/14.2.0 ] -----------
hdf5/1.14.5
CPE: Loading MPI Software#
CPE comes with integrated MPI implementations per PrgEnv. For example, with PrgEnv-gnu:
module reset
module load cpe-stack/25.03
module load PrgEnv-gnu
module avail # Shows MPI-aware libraries
The MPI library (typically cray-mpich) is already included in the PrgEnv.
Discovery Strategy#
To determine whether software is available, use module spider. It lists all versions and configurations, including modules hidden from module avail in the current environment.
To find prerequisites for a specific configuration, run module spider with the full module name and version:
module spider fftw/3.3.10
module spider netcdf/4.9.2-mpi
Important Notes#
- MPI selection affects visibility: Loading an MPI implementation changes which packages are visible.
- Both NLR toolchains and CPE support MPI: Choose your workflow (NLR or CPE) first, then add MPI.
- Use
module spiderto check dependencies: Always verify what MPI library a package expects before loading it.