From adf56f482d8bcf9a8c31a1f9baa40c60c6c4f4cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 3 Oct 2025 16:30:04 +0200 Subject: [PATCH 1/4] ignore failing tests for scipy 1.10.1 on a64fx, use march=armv8.2-a for numpy 1.24.2 on a64fx --- eb_hooks.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index c8f014f2..69fc46b8 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1138,7 +1138,7 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris_float32 = 2 failed, 54409 passed, 3016 skipped, 223 xfailed, 13 xpassed, 10917 warnings in 892.04s (0:14:52) = - In version 2023.07 on a64fx, 4 failing tests in scipy 1.11.1: + In version 2023.02 + 2023.07 on a64fx, 4 failing tests in scipy (version 1.10.1, 1.11.1): FAILED scipy/optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139 FAILED scipy/optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139 FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris @@ -1200,7 +1200,7 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') scipy_bundle_versions_nv1 = ('2021.10', '2023.02', '2023.07', '2023.11') - scipy_bundle_versions_a64fx = ('2023.07', '2023.11') + scipy_bundle_versions_a64fx = ('2023.06', '2023.07', '2023.11') scipy_bundle_versions_nvidia_grace = ('2023.02', '2023.07', '2023.11') if self.name == 'SciPy-bundle': if cpu_target == CPU_TARGET_NEOVERSE_V1 and self.version in scipy_bundle_versions_nv1: @@ -1262,16 +1262,21 @@ def pre_single_extension_isoband(ext, *args, **kwargs): def pre_single_extension_numpy(ext, *args, **kwargs): """ - Pre-extension hook for numpy, to change -march=native to -march=armv8.4-a for numpy 1.24.2 - when building for aarch64/neoverse_v1 CPU target. + Pre-extension hook for numpy: + - change -march=native to -march=armv8.4-a for numpy 1.24.2 when building for aarch64/neoverse_v1 CPU target + - change -march=native to -march=armv8.2-a for numpy 1.24.2 when building for aarch64/a64fx CPU target """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target == CPU_TARGET_NEOVERSE_V1: + if ext.name == 'numpy' and ext.version == '1.24.2': # note: this hook is called before build environment is set up (by calling toolchain.prepare()), # so environment variables like $CFLAGS are not defined yet # unsure which of these actually matter for numpy, so changing all of them - ext.orig_optarch = build_option('optarch') - update_build_option('optarch', 'march=armv8.4-a') + if cpu_target == CPU_TARGET_NEOVERSE_V1: + ext.orig_optarch = build_option('optarch') + update_build_option('optarch', 'march=armv8.4-a') + if cpu_target == CPU_TARGET_A64FX: + ext.orig_optarch = build_option('optarch') + update_build_option('optarch', 'march=armv8.2-a') def post_single_extension_numpy(ext, *args, **kwargs): @@ -1279,7 +1284,7 @@ def post_single_extension_numpy(ext, *args, **kwargs): Post-extension hook for numpy, to reset 'optarch' build option. """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target == CPU_TARGET_NEOVERSE_V1: + if ext.name == 'numpy' and ext.version == '1.24.2' and cpu_target in [CPU_TARGET_A64FX, CPU_TARGET_NEOVERSE_V1]: update_build_option('optarch', ext.orig_optarch) From fc8d64aa9f7c482c9a4dca3ee5fff8879b4e5fba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 3 Oct 2025 16:32:10 +0200 Subject: [PATCH 2/4] use correct 2023.02 version number --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 69fc46b8..e84ce938 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -1200,7 +1200,7 @@ def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') scipy_bundle_versions_nv1 = ('2021.10', '2023.02', '2023.07', '2023.11') - scipy_bundle_versions_a64fx = ('2023.06', '2023.07', '2023.11') + scipy_bundle_versions_a64fx = ('2023.02', '2023.07', '2023.11') scipy_bundle_versions_nvidia_grace = ('2023.02', '2023.07', '2023.11') if self.name == 'SciPy-bundle': if cpu_target == CPU_TARGET_NEOVERSE_V1 and self.version in scipy_bundle_versions_nv1: From 1a1ac1c95a2d74d2113b3e4b17850a3f2b2df450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 3 Oct 2025 16:34:14 +0200 Subject: [PATCH 3/4] add easystack for testing --- .../2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml diff --git a/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml new file mode 100644 index 00000000..fdacd95c --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml @@ -0,0 +1,2 @@ +easyconfigs: + - SciPy-bundle-2023.02-gfbf-2022b.eb From 944f631baa45b597bce229b77240f71b7c1308aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bob=20Dr=C3=B6ge?= Date: Fri, 3 Oct 2025 19:43:46 +0200 Subject: [PATCH 4/4] remove easystack --- .../2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml diff --git a/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml deleted file mode 100644 index fdacd95c..00000000 --- a/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.4-2022b.yml +++ /dev/null @@ -1,2 +0,0 @@ -easyconfigs: - - SciPy-bundle-2023.02-gfbf-2022b.eb