diff --git a/eb_hooks.py b/eb_hooks.py index 787e990e75..25cc7bc02a 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -159,6 +159,23 @@ 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 on Arm 64-bit systems.""" + if ec.name == 'OpenBLAS': + # relax maximum number of failed numerical LAPACK tests on Arm 64-bit systems, + # since the default setting of 150 that works well on x86_64 is a bit too strict + cfg_option = 'max_failing_lapack_tests_num_errors' + if get_cpu_architecture() == AARCH64: + orig_value = ec[cfg_option] + ec[cfg_option] = 300 + print_msg("Maximum number of failing LAPACK tests with numerical errors for %s relaxed to %s (was %s)", + ec.name, ec[cfg_option], orig_value) + 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 +249,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, } diff --git a/eessi-2023.06-eb-4.7.2-2021b.yml b/eessi-2023.06-eb-4.7.2-2021b.yml index 6ff917f109..9427103769 100644 --- a/eessi-2023.06-eb-4.7.2-2021b.yml +++ b/eessi-2023.06-eb-4.7.2-2021b.yml @@ -9,3 +9,4 @@ easyconfigs: - zlib-1.2.11-GCCcore-11.2.0 - OpenMPI-4.1.1-GCC-11.2.0 - gompi-2021b + - FlexiBLAS-3.0.4-GCC-11.2.0.eb