--- title: OpenMPI Support #tags: last_updated: 15 January 2025 keywords: software, openmpi, slurm summary: "This document describes how to use OpenMPI in the Merlin7 cluster" sidebar: merlin7_sidebar permalink: /merlin7/openmpi.html --- ## Introduction This document outlines the supported OpenMPI versions in the Merlin7 cluster. ### OpenMPI supported versionso The Merlin cluster supports OpenMPI versions across three distinct stages: stable, unstable, and deprecated. Below is an overview of each stage: #### Stable Versions in the `stable` stage are fully functional, thoroughly tested, and officially supported by the Merlin administrators. These versions are available via [Pmodules](/merlin7/pmodules.html) and [Spack](/merlin7/spack.html), ensuring compatibility and reliability for production use. #### Unstable Versions in the `unstable` stage are available for testing and early access to new OpenMPI features. While these versions can be used, their compilation and configuration are subject to change before they are promoted to the `stable` stage. Administrators recommend caution when relying on `unstable` versions for critical workloads. #### Deprecated Versions in the `deprecated` stage are no longer supported by the Merlin administrators. Typically, these include versions no longer supported by the official [OpenMPI](https://www.open-mpi.org/software/ompi/v5.0/) project. While deprecated versions may still be available for use, their functionality cannot be guaranteed, and they will not receive updates or bug fixes. ### Using srun in Merlin7 In OpenMPI versions prior to 5.0.x, using `srun` for direct task launches was faster than `mpirun`. Although this is no longer the case, `srun` remains the recommended method due to its simplicity and ease of use. Key benefits of `srun`: * Automatically handles task binding to cores. * In general, requires less configuration compared to `mpirun`. * Best suited for most users, while `mpirun` is recommended only for advanced MPI configurations. Guidelines: * Always adapt your scripts to use srun before seeking support. * For any module-related issues, please contact the Merlin7 administrators. Example Usage: ```bash srun ./app ``` {{site.data.alerts.tip}} Always run OpenMPI applications with srun for a seamless experience. {{site.data.alerts.end}} ### PMIx Support in Merlin7 Merlin7's SLURM installation includes support for multiple PMI types, including pmix. To view the available options, use the following command: ```bash 🔥 [caubet_m@login001:~]# srun --mpi=list MPI plugin types are... none pmix pmi2 cray_shasta specific pmix plugin versions available: pmix_v5,pmix_v4,pmix_v3,pmix_v2 ``` Important Notes: * For OpenMPI, always use `pmix` by specifying the appropriate version (`pmix_$version`). When loading an OpenMPI module (via [Pmodules](/merlin7/pmodules.html) or [Spack](/merlin7/spack.html)), the corresponding PMIx version will be automatically loaded. * Users do not need to manually manage PMIx compatibility. {{site.data.alerts.warning}} PMI-2 is not supported in OpenMPI 5.0.0 or later releases. Despite this, pmi2 remains the default SLURM PMI type in Merlin7 as it is the officially supported type and maintains compatibility with other MPI implementations. {{site.data.alerts.end}}