Ticket 12377

Summary: Make PMIx required by default
Product: Slurm Reporter: Felix Abecassis <fabecassis>
Component: PMIxAssignee: Director of Support <support>
Status: OPEN --- QA Contact:
Severity: 5 - Enhancement    
Priority: --- CC: artpol84, jbernauer, jblomqvist, lyeager, smoore
Version: 21.08.0   
Hardware: Linux   
OS: Linux   
Site: NVIDIA (PSLA) Alineos Sites: ---
Atos/Eviden Sites: --- Confidential Site: ---
Coreweave sites: --- Cray Sites: ---
DS9 clusters: --- HPCnow Sites: ---
HPE Sites: --- IBM Sites: ---
NOAA SIte: --- NoveTech Sites: ---
Nvidia HWinf-CS Sites: --- OCF Sites: ---
Recursion Pharma Sites: --- SFW Sites: ---
SNIC sites: --- Tzag Elita Sites: ---
Linux Distro: --- Machine Name:
CLE Version: Version Fixed:
Target Release: --- DevPrio: ---
Emory-Cloud Sites: ---

Description Felix Abecassis 2021-08-27 15:32:25 MDT
As pointed out in https://bugs.schedmd.com/show_bug.cgi?id=12376, you can end up compiling Slurm without PMIx even if the PMIx dev package is installed. Some distros also package Slurm compiled without PMIx support.

In addition, OpenMPI master (which will become 5.0) removed support for PMI/PMI2:
$ ./configure --with-pmi
[...]
configure: WARNING: Open MPI no longer supports PMI-1 or PMI-2 libraries.
configure: WARNING: PMIx is now required. Either the internal version or an
configure: WARNING: external version of PMIx may be used, so long as the
configure: WARNING: external version is compatible with the PMIx v2.2
configure: WARNING: Standard or higher. Note that cross-version support
configure: WARNING: within the OpenPMIx library can be used by this OMPI
configure: WARNING: to interact with environments based on other PMIx
configure: WARNING: versions.
configure: error: Build cannot continue.


To avoid Slurm admins from being in the situation where they realize they need to recompile and re-deploy Slurm with PMIx support in order to support OpenMPI 5.x; we suggest that Slurm starts requiring PMIx by default. Users could still opt-out with --without-pmix if they don't intend to use OpenMPI.