Skip to content

Commit

Permalink
sync with EESSI PR 529 and 532
Browse files Browse the repository at this point in the history
  • Loading branch information
truib committed Apr 14, 2024
1 parent e482cab commit 2ef659a
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,4 @@ easyconfigs:
- LittleCMS-2.15-GCCcore-12.3.0.eb
# This easyconfig is added to overcome the failing of check_missing_installations against the development branch
- parallel-20230722-GCCcore-12.3.0.eb
- Highway-1.0.4-GCCcore-12.3.0.eb
49 changes: 47 additions & 2 deletions eb_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
from distutils.version import LooseVersion


CPU_TARGET_NEOVERSE_N1 = 'aarch64/neoverse_n1'
CPU_TARGET_NEOVERSE_V1 = 'aarch64/neoverse_v1'
CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic'
CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic'

EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs'

Expand Down Expand Up @@ -115,6 +116,9 @@ def pre_prepare_hook(self, *args, **kwargs):
print_msg("Updated rpath_override_dirs (to allow overriding MPI family %s): %s",
mpi_family, rpath_override_dirs)

if self.name in PRE_PREPARE_HOOKS:
PRE_PREPARE_HOOKS[self.name](self, *args, **kwargs)


def post_prepare_hook_gcc_prefixed_ld_rpath_wrapper(self, *args, **kwargs):
"""
Expand Down Expand Up @@ -308,6 +312,42 @@ def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs):
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")


def pre_prepare_hook_highway_handle_test_compilation_issues(self, *args, **kwargs):
"""
Solve issues with compiling or running the tests on both
neoverse_n1 and neoverse_v1 with Highway 1.0.4 and GCC 12.3.0:
- for neoverse_n1 we set optarch to GENERIC
- for neoverse_v1 we completely disable the tests
cfr. https://github.com/EESSI/software-layer/issues/469
"""
if self.name == 'Highway':
tcname, tcversion = self.toolchain.name, self.toolchain.version
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
# note: keep condition in sync with the one used in
# post_prepare_hook_highway_handle_test_compilation_issues
if self.version in ['1.0.4'] and tcname == 'GCCcore' and tcversion == '12.3.0':
if cpu_target == CPU_TARGET_NEOVERSE_V1:
self.cfg.update('configopts', '-DHWY_ENABLE_TESTS=OFF')
if cpu_target == CPU_TARGET_NEOVERSE_N1:
self.orig_optarch = build_option('optarch')
update_build_option('optarch', OPTARCH_GENERIC)
else:
raise EasyBuildError("Highway-specific hook triggered for non-Highway easyconfig?!")


def post_prepare_hook_highway_handle_test_compilation_issues(self, *args, **kwargs):
"""
Post-prepare hook for Highway to reset optarch build option.
"""
if self.name == 'Highway':
tcname, tcversion = self.toolchain.name, self.toolchain.version
cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
# note: keep condition in sync with the one used in
# pre_prepare_hook_highway_handle_test_compilation_issues
if self.version in ['1.0.4'] and tcname == 'GCCcore' and tcversion == '12.3.0':
if cpu_target == CPU_TARGET_NEOVERSE_N1:
update_build_option('optarch', self.orig_optarch)

def pre_configure_hook(self, *args, **kwargs):
"""Main pre-configure hook: trigger custom functions based on software name."""
if self.name in PRE_CONFIGURE_HOOKS:
Expand Down Expand Up @@ -628,16 +668,21 @@ def inject_gpu_property(ec):
'fontconfig': parse_hook_fontconfig_add_fonts,
'GPAW': parse_hook_gpaw_harcoded_path,
'ImageMagick': parse_hook_imagemagick_add_dependency,
'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64,
'OpenBLAS': parse_hook_openblas_relax_lapack_tests_num_errors,
'Pillow-SIMD' : parse_hook_Pillow_SIMD_harcoded_paths,
'pybind11': parse_hook_pybind11_replace_catch2,
'Qt5': parse_hook_qt5_check_qtwebengine_disable,
'UCX': parse_hook_ucx_eprefix,
'LAMMPS': parse_hook_lammps_remove_deps_for_CI_aarch64,
}

PRE_PREPARE_HOOKS = {
'Highway': pre_prepare_hook_highway_handle_test_compilation_issues,
}

POST_PREPARE_HOOKS = {
'GCCcore': post_prepare_hook_gcc_prefixed_ld_rpath_wrapper,
'Highway': post_prepare_hook_highway_handle_test_compilation_issues,
}

PRE_CONFIGURE_HOOKS = {
Expand Down
6 changes: 6 additions & 0 deletions eessi-2023.06-known-issues.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
- issue: https://github.com/EESSI/software-layer/issues/461
- info: "8 failing tests (out of 209539) on aarch64/*"
- aarch64/neoverse_n1:
- Highway-1.0.4-GCCcore-12.3.0.eb:
- issue: https://github.com/EESSI/software-layer/issues/469
- info: "failing to build the tests"
- PyTorch-2.1.2-foss-2023a:
- issue: https://github.com/EESSI/software-layer/issues/461
- info: "8 failing tests (out of 209539) on aarch64/*"
Expand All @@ -19,6 +22,9 @@
- Highway-1.0.3-GCCcore-12.2.0.eb:
- issue: https://github.com/EESSI/software-layer/issues/469
- info: "failing SVE test due to wrong expected value"
- Highway-1.0.4-GCCcore-12.3.0.eb:
- issue: https://github.com/EESSI/software-layer/issues/469
- info: "failing to build the tests"
- netCDF-4.9.2-gompi-2023a.eb:
- issue: https://github.com/EESSI/software-layer/issues/425
- info: "netCDF intermittent test failures"
Expand Down

0 comments on commit 2ef659a

Please sign in to comment.