From dcf19395faa90331709785126aeaaf0a17a412c3 Mon Sep 17 00:00:00 2001 From: Tara Drwenski Date: Mon, 24 Mar 2025 16:08:50 -0600 Subject: [PATCH] Add additional comments about logic to choose a scheduler to run MPI --- lib/spack/spack/build_systems/cached_cmake.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/spack/spack/build_systems/cached_cmake.py b/lib/spack/spack/build_systems/cached_cmake.py index 552f5433294..7d522691aa6 100644 --- a/lib/spack/spack/build_systems/cached_cmake.py +++ b/lib/spack/spack/build_systems/cached_cmake.py @@ -189,14 +189,18 @@ class Scheduler(enum.Enum): def get_scheduler(self) -> Optional[Scheduler]: spec = self.pkg.spec + + # Check for Spectrum-mpi, which always uses LSF or LSF MPI variant if spec.satisfies("^spectrum-mpi") or spec["mpi"].satisfies("schedulers=lsf"): return self.Scheduler.LSF + # Check for Slurm MPI variants slurm_checks = ["+slurm", "schedulers=slurm", "process_managers=slurm"] if any(spec["mpi"].satisfies(variant) for variant in slurm_checks): return self.Scheduler.SLURM # TODO improve this when MPI implementations support flux + # Do this check last to avoid using a flux wrapper present next to Slurm/ LSF schedulers if which_string("flux") is not None: return self.Scheduler.FLUX