Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{2023.06}[foss/2021b] LAMMPS 23Jun2022 #360

Merged
merged 14 commits into from
Nov 17, 2023
17 changes: 17 additions & 0 deletions eb_hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,22 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs):
raise EasyBuildError("WRF-specific hook triggered for non-WRF easyconfig?!")


def pre_configure_hook_PLUMED_aarch64(self, *args, **kwargs):
"""
pre-configure hook for PLUMED:
- remove unsupported --enable-asmjit option on aarch64
"""

if self.name == 'PLUMED':
if get_cpu_architecture() == AARCH64:
configopts = self.cfg['configopts']
regex = re.compile(r'--enable-asmjit')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wouldn't it be better to update the PLUMED easyconfigs in EasyBuild to only use --enable-asmjit on x86_64 (kinda similar to easybuilders/easybuild-easyconfigs#19000)?

if ARCH == 'x86_64':
    configopts += '--enable-asmjit '

according to plumed/plumed2#982, there's even no need to explicitly use --enable-asmjit, we should be able to rely on the configure script auto-enabling it?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree with Kenneth, I think we should basically do this, i.e. in the EasyConfig:

  • for Plumed < 2.8, put configopts += '--enable-asmjit' only for x86_64
  • for Plumed >= 2.8, rely on configure script to auto-enable it

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so @casparvl for >= 2.8 I should just remove the flag in the easyconfig?

if re.search(regex, configopts):
self.cfg['configopts'] = regex.sub('', configopts)
else:
raise EasyBuildError("PLUMED-specific hook triggered for non-PLUMED easyconfig?!")


def pre_test_hook(self,*args, **kwargs):
"""Main pre-test hook: trigger custom functions based on software name."""
if self.name in PRE_TEST_HOOKS:
Expand Down Expand Up @@ -346,6 +362,7 @@ def pre_single_extension_isoband(ext, *args, **kwargs):
'MetaBAT': pre_configure_hook_metabat_filtered_zlib_dep,
'OpenBLAS': pre_configure_hook_openblas_optarch_generic,
'WRF': pre_configure_hook_wrf_aarch64,
'PLUMED': pre_configure_hook_PLUMED_aarch64,
}

PRE_TEST_HOOKS = {
Expand Down
4 changes: 4 additions & 0 deletions eessi-2023.06-eb-4.8.1-2021b.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,7 @@ easyconfigs:
options:
from-pr: 18834
- R-4.2.0-foss-2021b.eb
- LAMMPS-23Jun2022-foss-2021b-kokkos.eb:
# TBB is an optional dependency when building on Intel arch
options:
from-pr: 19000
Loading