From fc4c213d3ea81c21cfd289bb26b15ee02936041b Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen Date: Wed, 13 Aug 2025 11:26:26 +0200 Subject: [PATCH 1/2] Allow superlu tests to oversubscribe --- easybuild/easyblocks/s/superlu.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/easybuild/easyblocks/s/superlu.py b/easybuild/easyblocks/s/superlu.py index 8b387e1797f..b2106a9eee3 100644 --- a/easybuild/easyblocks/s/superlu.py +++ b/easybuild/easyblocks/s/superlu.py @@ -139,6 +139,17 @@ def test_step(self): """ if self.cfg['runtest'] is None: self.cfg['runtest'] = 'test' + + # allow oversubscription of number of processes over number of available cores with OpenMPI 3.0 & newer, + # to avoid that some tests fail if only a handful of cores are available + ompi_ver = get_software_version('OpenMPI') + if LooseVersion(ompi_ver) >= LooseVersion('3.0') and LooseVersion(ompi_ver) < LooseVersion('5.0'): + if 'OMPI_MCA_rmaps_base_oversubscribe' not in self.cfg['pretestopts']: + self.cfg.update('pretestopts', "export OMPI_MCA_rmaps_base_oversubscribe=true && ") + if LooseVersion(ompi_ver) >= LooseVersion('5.0'): + if 'PRTE_MCA_rmaps_default_mapping_policy' not in self.cfg['pretestopts']: + self.cfg.update('pretestopts', "export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe && ") + super().test_step() def install_step(self): From 5ade88b0fa0ea1549892353feb0abe4632f2130e Mon Sep 17 00:00:00 2001 From: Caspar van Leeuwen <33718780+casparvl@users.noreply.github.com> Date: Wed, 13 Aug 2025 13:03:29 +0200 Subject: [PATCH 2/2] Update easybuild/easyblocks/s/superlu.py Co-authored-by: Simon Branford <4967+branfosj@users.noreply.github.com> --- easybuild/easyblocks/s/superlu.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/easybuild/easyblocks/s/superlu.py b/easybuild/easyblocks/s/superlu.py index b2106a9eee3..7f25636a127 100644 --- a/easybuild/easyblocks/s/superlu.py +++ b/easybuild/easyblocks/s/superlu.py @@ -143,12 +143,12 @@ def test_step(self): # allow oversubscription of number of processes over number of available cores with OpenMPI 3.0 & newer, # to avoid that some tests fail if only a handful of cores are available ompi_ver = get_software_version('OpenMPI') - if LooseVersion(ompi_ver) >= LooseVersion('3.0') and LooseVersion(ompi_ver) < LooseVersion('5.0'): - if 'OMPI_MCA_rmaps_base_oversubscribe' not in self.cfg['pretestopts']: - self.cfg.update('pretestopts', "export OMPI_MCA_rmaps_base_oversubscribe=true && ") if LooseVersion(ompi_ver) >= LooseVersion('5.0'): if 'PRTE_MCA_rmaps_default_mapping_policy' not in self.cfg['pretestopts']: self.cfg.update('pretestopts', "export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe && ") + elif LooseVersion(ompi_ver) >= LooseVersion('3.0'): + if 'OMPI_MCA_rmaps_base_oversubscribe' not in self.cfg['pretestopts']: + self.cfg.update('pretestopts', "export OMPI_MCA_rmaps_base_oversubscribe=true && ") super().test_step()