From fb6d16050b264ebc838ff90bfed62c6c3c8b523b Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 30 Jun 2023 09:41:03 +0200 Subject: [PATCH 1/4] add missing packages for foss/2021b --- eessi-2023.06-eb-4.7.2-2021b.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eessi-2023.06-eb-4.7.2-2021b.yml b/eessi-2023.06-eb-4.7.2-2021b.yml index d7eb59901d..dc564692dd 100644 --- a/eessi-2023.06-eb-4.7.2-2021b.yml +++ b/eessi-2023.06-eb-4.7.2-2021b.yml @@ -6,6 +6,7 @@ easyconfigs: - OpenMPI-4.1.1-GCC-11.2.0.eb - FFTW-3.3.10-gompi-2021b.eb - BLIS-0.8.1-GCC-11.2.0.eb + - foss-2021b.eb # - CMake-3.22.1-GCCcore-11.2.0.eb: # options: # include-easyblocks-from-pr: 2248 From 2aeef70fd6ac212063fae99eddfec587c6b1fc70 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 30 Jun 2023 11:49:22 +0200 Subject: [PATCH 2/4] use parse_hook to relax failing numerical LAPACK tests --- eb_hooks.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index 787e990e75..bff45e540b 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -159,6 +159,21 @@ def parse_hook_fontconfig_add_fonts(ec, eprefix): raise EasyBuildError("fontconfig-specific hook triggered for non-fontconfig easyconfig?!") +def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): + """Relax number of failing numerical LAPACK tests.""" + if ec.name == 'OpenBLAS': + if get_cpu_architecture() == AARCH64: + # relax number of failed numerical LAPACK tests + num_errors = '302' + cfg_option = 'max_failing_lapack_tests_num_errors' + ec[cfg_option] = num_errors + print_msg("Set '%s = %s' in easyconfig for %s on AARCH64", cfg_option, num_errors, ec.name) + else: + print_msg("Not changing option %s for %s on non-AARCH64", cfg_option, ec.name) + else: + raise EasyBuildError("OpenBLAS-specific hook triggered for non-OpenBLAS easyconfig?!") + + def parse_hook_ucx_eprefix(ec, eprefix): """Make UCX aware of compatibility layer via additional configuration options.""" if ec.name == 'UCX': @@ -232,6 +247,7 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs): PARSE_HOOKS = { 'CGAL': parse_hook_cgal_toolchainopts_precise, 'fontconfig': parse_hook_fontconfig_add_fonts, + 'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors, 'UCX': parse_hook_ucx_eprefix, } From fa729bbb3f3f5299a74df6416ec5df951033a4f7 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 30 Jun 2023 14:09:11 +0200 Subject: [PATCH 3/4] value of max_failing... must be int --- eb_hooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index bff45e540b..18b27498de 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -164,10 +164,10 @@ def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): if ec.name == 'OpenBLAS': if get_cpu_architecture() == AARCH64: # relax number of failed numerical LAPACK tests - num_errors = '302' + num_errors = 302 cfg_option = 'max_failing_lapack_tests_num_errors' ec[cfg_option] = num_errors - print_msg("Set '%s = %s' in easyconfig for %s on AARCH64", cfg_option, num_errors, ec.name) + print_msg("Set '%s = %d' in easyconfig for %s on AARCH64", cfg_option, num_errors, ec.name) else: print_msg("Not changing option %s for %s on non-AARCH64", cfg_option, ec.name) else: From cb82d1771161ce4c172d818f6e782706d8b35298 Mon Sep 17 00:00:00 2001 From: Thomas Roeblitz Date: Fri, 30 Jun 2023 17:31:59 +0200 Subject: [PATCH 4/4] define variables before if block or some won't be set in else branch --- eb_hooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 18b27498de..1c18fdf274 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -162,10 +162,10 @@ def parse_hook_fontconfig_add_fonts(ec, eprefix): def parse_hook_openblas_relax_lapack_tests_num_errors(ec, eprefix): """Relax number of failing numerical LAPACK tests.""" if ec.name == 'OpenBLAS': + cfg_option = 'max_failing_lapack_tests_num_errors' + num_errors = 302 if get_cpu_architecture() == AARCH64: # relax number of failed numerical LAPACK tests - num_errors = 302 - cfg_option = 'max_failing_lapack_tests_num_errors' ec[cfg_option] = num_errors print_msg("Set '%s = %d' in easyconfig for %s on AARCH64", cfg_option, num_errors, ec.name) else: