diff --git a/.github/workflows/test-software.eessi.io.yml b/.github/workflows/test-software.eessi.io.yml index 8cfb023bc6..06c02c8834 100644 --- a/.github/workflows/test-software.eessi.io.yml +++ b/.github/workflows/test-software.eessi.io.yml @@ -5,7 +5,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: check_missing: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: diff --git a/.github/workflows/test_eessi_container_script.yml b/.github/workflows/test_eessi_container_script.yml index 32120d0087..d31feb23fe 100644 --- a/.github/workflows/test_eessi_container_script.yml +++ b/.github/workflows/test_eessi_container_script.yml @@ -5,7 +5,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: eessi_container_script: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: diff --git a/.github/workflows/test_licenses.yml b/.github/workflows/test_licenses.yml index 3b9675d523..6b6387d47d 100644 --- a/.github/workflows/test_licenses.yml +++ b/.github/workflows/test_licenses.yml @@ -5,7 +5,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Check out software-layer repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index faa7eb82ff..8249e50d9b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -5,10 +5,10 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: - python: [3.6, 3.7, 3.8, 3.9, '3.10'] + python: [3.7, 3.8, 3.9, '3.10'] fail-fast: false steps: - name: checkout diff --git a/.github/workflows/tests_archdetect.yml b/.github/workflows/tests_archdetect.yml index bee348995d..4f5d3d174d 100644 --- a/.github/workflows/tests_archdetect.yml +++ b/.github/workflows/tests_archdetect.yml @@ -5,7 +5,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: proc_cpuinfo: diff --git a/.github/workflows/tests_init.yml b/.github/workflows/tests_init.yml index 053acb9730..6c356a9184 100644 --- a/.github/workflows/tests_init.yml +++ b/.github/workflows/tests_init.yml @@ -5,10 +5,10 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: matrix: - python: [3.6, 3.7, 3.8, 3.9, '3.10'] + python: [3.7, 3.8, 3.9, '3.10'] fail-fast: false steps: - name: checkout diff --git a/.github/workflows/tests_readme.yml b/.github/workflows/tests_readme.yml index efdb796e5e..76f46a8abe 100644 --- a/.github/workflows/tests_readme.yml +++ b/.github/workflows/tests_readme.yml @@ -14,7 +14,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: Check out software-layer repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/.github/workflows/tests_scripts.yml b/.github/workflows/tests_scripts.yml index 76d19d29fe..6413fcf86f 100644 --- a/.github/workflows/tests_scripts.yml +++ b/.github/workflows/tests_scripts.yml @@ -28,7 +28,7 @@ permissions: contents: read # to fetch code (actions/checkout) jobs: build: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - name: checkout uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 diff --git a/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023a.yml b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023a.yml new file mode 100644 index 0000000000..3fe1e43d3f --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023a.yml @@ -0,0 +1,5 @@ +easyconfigs: + - OpenMPI-4.1.5-GCC-12.3.0.eb + - foss-2023a.eb + - SciPy-bundle-2023.07-gfbf-2023a.eb + - ESPResSo-4.2.2-foss-2023a.eb diff --git a/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023b.yml b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023b.yml new file mode 100644 index 0000000000..c7411ada0a --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/a64fx/eessi-2023.06-eb-4.9.2-2023b.yml @@ -0,0 +1,6 @@ +easyconfigs: + - OpenBLAS-0.3.24-GCC-13.2.0.eb: + options: + # see https://github.com/easybuilders/easybuild-easyconfigs/pull/20820 + from-commit: 1fc885b35dacdeb2feef4af207a2daa2502bae08 + - foss-2023b.eb diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml new file mode 100644 index 0000000000..ade226c217 --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023a.yml @@ -0,0 +1,2 @@ +easyconfigs: + - BCFtools-1.18-GCC-12.3.0.eb diff --git a/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023b.yml b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023b.yml new file mode 100644 index 0000000000..38bfa81142 --- /dev/null +++ b/easystacks/software.eessi.io/2023.06/eessi-2023.06-eb-4.9.2-2023b.yml @@ -0,0 +1,3 @@ +easyconfigs: + - IPython-8.17.2-GCCcore-13.2.0.eb + - dlb-3.4-gompi-2023b.eb diff --git a/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml b/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml index 09f525364f..d4c70c562d 100644 --- a/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml +++ b/easystacks/software.eessi.io/2023.06/zen4/eessi-2023.06-eb-4.9.2-2023a.yml @@ -2,3 +2,4 @@ easyconfigs: - ESPResSo-4.2.2-foss-2023a.eb - TensorFlow-2.13.0-foss-2023a.eb - R-4.3.2-gfbf-2023a.eb + - ParaView-5.11.2-foss-2023a.eb diff --git a/eb_hooks.py b/eb_hooks.py index 8b0a11b0ed..e6f0cf0dd2 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -23,6 +23,7 @@ CPU_TARGET_NEOVERSE_N1 = 'aarch64/neoverse_n1' CPU_TARGET_NEOVERSE_V1 = 'aarch64/neoverse_v1' CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic' +CPU_TARGET_A64FX = 'aarch64/a64fx' EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs' @@ -335,6 +336,24 @@ def pre_configure_hook(self, *args, **kwargs): PRE_CONFIGURE_HOOKS[self.name](self, *args, **kwargs) +def pre_configure_hook_BLIS_a64fx(self, *args, **kwargs): + """ + Pre-configure hook for BLIS when building for A64FX: + - add -DCACHE_SECTOR_SIZE_READONLY to $CFLAGS for BLIS 0.9.0, cfr. https://github.com/flame/blis/issues/800 + """ + if self.name == 'BLIS': + cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') + if self.version == '0.9.0' and cpu_target == CPU_TARGET_A64FX: + # last argument of BLIS' configure command is configuration target (usually 'auto' for auto-detect), + # specifying of variables should be done before that + config_opts = self.cfg['configopts'].split(' ') + cflags_var = 'CFLAGS="$CFLAGS -DCACHE_SECTOR_SIZE_READONLY"' + config_target = config_opts[-1] + self.cfg['configopts'] = ' '.join(config_opts[:-1] + [cflags_var, config_target]) + else: + raise EasyBuildError("BLIS-specific hook triggered for non-BLIS easyconfig?!") + + def pre_configure_hook_gromacs(self, *args, **kwargs): """ Pre-configure hook for GROMACS: @@ -469,20 +488,30 @@ def pre_test_hook_ignore_failing_tests_FFTWMPI(self, *args, **kwargs): def pre_test_hook_ignore_failing_tests_SciPybundle(self, *args, **kwargs): """ Pre-test hook for SciPy-bundle: skip failing tests for selected SciPy-bundle versions - In version 2021.10, 2 failing tests in scipy 1.6.3: + In version 2021.10 on neoverse_v1, 2 failing tests in scipy 1.6.3: FAILED optimize/tests/test_linprog.py::TestLinprogIPSparse::test_bug_6139 - A... FAILED optimize/tests/test_linprog.py::TestLinprogIPSparsePresolve::test_bug_6139 = 2 failed, 30554 passed, 2064 skipped, 10992 deselected, 76 xfailed, 7 xpassed, 40 warnings in 380.27s (0:06:20) = - In versions 2023.02, 2023.07, and 2023.11, 2 failing tests in scipy (versions 1.10.1, 1.11.1, 1.11.4): + In versions 2023.02 + 2023.07 + 2023.11 on neoverse_v1, 2 failing tests in scipy (versions 1.10.1, 1.11.1, 1.11.4): 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 previous versions we were not as strict yet on the numpy/SciPy tests + In version 2023.07 on a64fx, 4 failing tests in scipy 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 + FAILED scipy/spatial/tests/test_distance.py::TestPdist::test_pdist_correlation_iris_float32 + = 4 failed, 54407 passed, 3016 skipped, 223 xfailed, 13 xpassed, 10917 warnings in 6068.43s (1:41:08) = + (in previous versions we were not as strict yet on the numpy/SciPy tests) """ cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR') - scipy_bundle_versions = ('2021.10', '2023.02', '2023.07', '2023.11') - if self.name == 'SciPy-bundle' and self.version in scipy_bundle_versions and cpu_target == CPU_TARGET_NEOVERSE_V1: - self.cfg['testopts'] = "|| echo ignoring failing tests" + scipy_bundle_versions_nv1 = ('2021.10', '2023.02', '2023.07', '2023.11') + scipy_bundle_versions_a64fx = ('2023.07', '2023.11') + if self.name == 'SciPy-bundle': + if cpu_target == CPU_TARGET_NEOVERSE_V1 and self.version in scipy_bundle_versions_nv1: + self.cfg['testopts'] = "|| echo ignoring failing tests" + elif cpu_target == CPU_TARGET_A64FX and self.version in scipy_bundle_versions_a64fx: + self.cfg['testopts'] = "|| echo ignoring failing tests" def pre_test_hook_ignore_failing_tests_netCDF(self, *args, **kwargs): """ @@ -680,12 +709,13 @@ def inject_gpu_property(ec): } PRE_CONFIGURE_HOOKS = { + 'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path, + 'BLIS': pre_configure_hook_BLIS_a64fx, 'GROMACS': pre_configure_hook_gromacs, 'libfabric': pre_configure_hook_libfabric_disable_psm3_x86_64_generic, 'MetaBAT': pre_configure_hook_metabat_filtered_zlib_dep, 'OpenBLAS': pre_configure_hook_openblas_optarch_generic, 'WRF': pre_configure_hook_wrf_aarch64, - 'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path, } PRE_TEST_HOOKS = { diff --git a/eessi-2023.06-known-issues.yml b/eessi-2023.06-known-issues.yml index 2d1256354f..c5cdc68941 100644 --- a/eessi-2023.06-known-issues.yml +++ b/eessi-2023.06-known-issues.yml @@ -1,3 +1,10 @@ +- aarch64/a64x: + - SciPy-bundle-2023.07-gfbf-2023a: + - issue: https://github.com/EESSI/software-layer/issues/318 + - info: "4 failing tests (vs 54407 passed) in scipy test suite" + - SciPy-bundle-2023.11-gfbf-2023b: + - issue: https://github.com/EESSI/software-layer/issues/318 + - info: "3 failing tests (vs 54875 passed) in scipy test suite" - aarch64/generic: - PyTorch-2.1.2-foss-2023a: - issue: https://github.com/EESSI/software-layer/issues/461