Skip to content

Commit

Permalink
Merge pull request EESSI#298 from trz42/add_hook_for_lammps
Browse files Browse the repository at this point in the history
add hook for LAMMPS
  • Loading branch information
poksumdo authored Apr 5, 2024
2 parents dbdf9ae + 404ded5 commit 0a7ac9b
Showing 1 changed file with 18 additions and 19 deletions.
37 changes: 18 additions & 19 deletions eb_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,23 @@ def parse_hook_ucx_eprefix(ec, eprefix):
raise EasyBuildError("UCX-specific hook triggered for non-UCX easyconfig?!")


def parse_hook_lammps_remove_deps_for_CI_aarch64(ec, *args, **kwargs):
"""
Remove x86_64 specific dependencies for the CI to pass on aarch64
"""
if ec.name == 'LAMMPS' and ec.version in ('2Aug2023_update2',):
if os.getenv('EESSI_CPU_FAMILY') == 'aarch64':
# ScaFaCoS and tbb are not compatible with aarch64/* CPU targets,
# so remove them as dependencies for LAMMPS (they're optional);
# see also https://github.com/easybuilders/easybuild-easyconfigs/pull/19164 +
# https://github.com/easybuilders/easybuild-easyconfigs/pull/19000;
# we need this hook because we check for missing installations for all CPU targets
# on an x86_64 VM in GitHub Actions (so condition based on ARCH in LAMMPS easyconfig is always true)
ec['dependencies'] = [dep for dep in ec['dependencies'] if dep[0] not in ('ScaFaCoS', 'tbb')]
else:
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")


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 @@ -363,24 +380,6 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs):
raise EasyBuildError("WRF-specific hook triggered for non-WRF easyconfig?!")


def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs):
"""
pre-configure hook for LAMMPS:
- set kokkos_arch on Aarch64
"""

cpu_target = get_eessi_envvar('EESSI_SOFTWARE_SUBDIR')
if self.name == 'LAMMPS':
if self.version == '23Jun2022':
if get_cpu_architecture() == AARCH64:
if cpu_target == CPU_TARGET_AARCH64_GENERIC:
self.cfg['kokkos_arch'] = 'ARM80'
else:
self.cfg['kokkos_arch'] = 'ARM81'
else:
raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!")


def pre_configure_hook_atspi2core_filter_ld_library_path(self, *args, **kwargs):
"""
pre-configure hook for at-spi2-core:
Expand Down Expand Up @@ -634,6 +633,7 @@ def inject_gpu_property(ec):
'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,
}

POST_PREPARE_HOOKS = {
Expand All @@ -645,7 +645,6 @@ def inject_gpu_property(ec):
'MetaBAT': pre_configure_hook_metabat_filtered_zlib_dep,
'OpenBLAS': pre_configure_hook_openblas_optarch_generic,
'WRF': pre_configure_hook_wrf_aarch64,
'LAMMPS': pre_configure_hook_LAMMPS_aarch64,
'at-spi2-core': pre_configure_hook_atspi2core_filter_ld_library_path,
}

Expand Down

0 comments on commit 0a7ac9b

Please sign in to comment.