From 093c01d04c9279f2c0e65d130f5fce2e668c33ee Mon Sep 17 00:00:00 2001 From: lara Date: Tue, 10 Oct 2023 08:27:03 +0200 Subject: [PATCH 01/13] {2023.06}[foss/2021b] LAMMPS 23Jun2022 --- eessi-2023.06-eb-4.8.1-2021b.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index 62f529563a..90a62ba2d6 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -5,3 +5,4 @@ easyconfigs: options: from-pr: 18834 - R-4.2.0-foss-2021b.eb + - LAMMPS-23Jun2022-foss-2021b-kokkos.eb From 6b0bcb9c00c4768614f5b9087e7f3ce2777e44d3 Mon Sep 17 00:00:00 2001 From: lara Date: Fri, 13 Oct 2023 13:59:44 +0200 Subject: [PATCH 02/13] add TBB solution for Aarch64 --- eessi-2023.06-eb-4.8.1-2021b.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index 90a62ba2d6..1414df5e44 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -5,4 +5,7 @@ easyconfigs: options: from-pr: 18834 - R-4.2.0-foss-2021b.eb - - LAMMPS-23Jun2022-foss-2021b-kokkos.eb + - LAMMPS-23Jun2022-foss-2021b-kokkos.eb: + # TBB is an optional dependency when building on Intel arch + options: + from-pr: 19000 From b26dc50b9f3a282a185466e1004071074b1ac345 Mon Sep 17 00:00:00 2001 From: lara Date: Mon, 23 Oct 2023 17:40:05 +0200 Subject: [PATCH 03/13] add PLUMED hook --- eb_hooks.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/eb_hooks.py b/eb_hooks.py index 31f2b9588d..3147fc9bf5 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -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') + 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: @@ -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 = { From 9d13aa874e1961029f0d73634351db07f5a19eb4 Mon Sep 17 00:00:00 2001 From: lara Date: Mon, 30 Oct 2023 16:12:31 +0100 Subject: [PATCH 04/13] replace plumed hook with updated easyconfig and add LAMMPS hook [context](https://gitlab.com/eessi/support/-/issues/10#note_1625972083) --- eb_hooks.py | 14 ++++++-------- eessi-2023.06-eb-4.8.1-2021b.yml | 4 ++++ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index 3147fc9bf5..28ee7907a4 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -268,18 +268,16 @@ 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): +def pre_configure_hook_LAMMPS_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') - if re.search(regex, configopts): - self.cfg['configopts'] = regex.sub('', configopts) + if self.name == 'LAMMPS': + if self.version == '23Jun2022': + if get_cpu_architecture() == AARCH64: + self.cfg['kokkos_arch'] = 'A64FX' else: raise EasyBuildError("PLUMED-specific hook triggered for non-PLUMED easyconfig?!") @@ -362,7 +360,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, + 'PLUMED': pre_configure_hook_LAMMPS_aarch64, } PRE_TEST_HOOKS = { diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index 1414df5e44..30035fa837 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -5,6 +5,10 @@ easyconfigs: options: from-pr: 18834 - R-4.2.0-foss-2021b.eb + - PLUMED-2.7.3-foss-2021b.eb: + # the --enable-asmjit is not supported on Aarch64 + options: + from-pr: 19110 - LAMMPS-23Jun2022-foss-2021b-kokkos.eb: # TBB is an optional dependency when building on Intel arch options: From 7537a7f17099c04ebd1520bc6ae093d5585e54b1 Mon Sep 17 00:00:00 2001 From: lara Date: Mon, 30 Oct 2023 16:17:13 +0100 Subject: [PATCH 05/13] small fix --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 28ee7907a4..546194111d 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -279,7 +279,7 @@ def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs): if get_cpu_architecture() == AARCH64: self.cfg['kokkos_arch'] = 'A64FX' else: - raise EasyBuildError("PLUMED-specific hook triggered for non-PLUMED easyconfig?!") + raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") def pre_test_hook(self,*args, **kwargs): From d56e0dd90132f3585f4da2eed1803f0a9191f2c6 Mon Sep 17 00:00:00 2001 From: lara Date: Mon, 30 Oct 2023 16:28:36 +0100 Subject: [PATCH 06/13] fix PRE_CONFIGURE_HOOKS --- eb_hooks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index 546194111d..ea9c3bfd48 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -360,7 +360,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_LAMMPS_aarch64, + 'LAMMPS': pre_configure_hook_LAMMPS_aarch64, } PRE_TEST_HOOKS = { From 5c9316dd86a1ceb2d2b2e5d04c8627d0da31abe1 Mon Sep 17 00:00:00 2001 From: lara Date: Mon, 30 Oct 2023 16:36:53 +0100 Subject: [PATCH 07/13] fix in description --- eb_hooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index ea9c3bfd48..a2890da75e 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -270,8 +270,8 @@ def pre_configure_hook_wrf_aarch64(self, *args, **kwargs): def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs): """ - pre-configure hook for PLUMED: - - remove unsupported --enable-asmjit option on aarch64 + pre-configure hook for LAMMPS: + - set kokkos_arch on Aarch64 """ if self.name == 'LAMMPS': From a2ab66466d882b9724eb998bf92c136fe514150b Mon Sep 17 00:00:00 2001 From: lara Date: Tue, 7 Nov 2023 11:59:04 +0100 Subject: [PATCH 08/13] update easystack --- eessi-2023.06-eb-4.8.1-2021b.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index 30035fa837..478899f672 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -9,7 +9,11 @@ easyconfigs: # the --enable-asmjit is not supported on Aarch64 options: from-pr: 19110 + - ScaFaCoS-1.0.4-foss-2021b.eb: + # Newer version of ScaFaCoS for LAMMPS + options: + from-pr: 19163 - LAMMPS-23Jun2022-foss-2021b-kokkos.eb: # TBB is an optional dependency when building on Intel arch options: - from-pr: 19000 + from-pr: 19164 From fd6ac5aa5cb7ad0e5538ebf70335c1c35741e090 Mon Sep 17 00:00:00 2001 From: lara Date: Fri, 10 Nov 2023 14:52:14 +0100 Subject: [PATCH 09/13] update easystack --- eessi-2023.06-eb-4.8.1-2021b.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index 478899f672..d8a7caff2e 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -9,11 +9,7 @@ easyconfigs: # the --enable-asmjit is not supported on Aarch64 options: from-pr: 19110 - - ScaFaCoS-1.0.4-foss-2021b.eb: - # Newer version of ScaFaCoS for LAMMPS - options: - from-pr: 19163 - LAMMPS-23Jun2022-foss-2021b-kokkos.eb: - # TBB is an optional dependency when building on Intel arch + # TBB and ScaFaCos are optional dependencies when building on Intel arch options: from-pr: 19164 From da82af74a0f5fd700842cda0f847038ed9469c5e Mon Sep 17 00:00:00 2001 From: lara Date: Wed, 15 Nov 2023 09:49:29 +0100 Subject: [PATCH 10/13] change kokkos mapping for Aarch64" --- eb_hooks.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/eb_hooks.py b/eb_hooks.py index a2890da75e..dfd91ab18b 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -19,6 +19,7 @@ CPU_TARGET_NEOVERSE_V1 = 'aarch64/neoverse_v1' +CPU_TARGET_AARCH64_GENERIC = 'aarch64/generic' EESSI_RPATH_OVERRIDE_ATTR = 'orig_rpath_override_dirs' @@ -277,7 +278,10 @@ def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs): if self.name == 'LAMMPS': if self.version == '23Jun2022': if get_cpu_architecture() == AARCH64: - self.cfg['kokkos_arch'] = 'A64FX' + if cpu_target == CPU_TARGET_AARCH64_GENERIC: + self.cfg['kokkos_arch'] = 'ARM81' + else: + self.cfg['kokkos_arch'] = 'ARM80' else: raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") From 151c4924068fe3dd841e3d1380cd2379a50b5d8b Mon Sep 17 00:00:00 2001 From: lara Date: Wed, 15 Nov 2023 09:52:48 +0100 Subject: [PATCH 11/13] update kokkos mapping --- eb_hooks.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eb_hooks.py b/eb_hooks.py index dfd91ab18b..1d01372912 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -279,9 +279,9 @@ def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs): if self.version == '23Jun2022': if get_cpu_architecture() == AARCH64: if cpu_target == CPU_TARGET_AARCH64_GENERIC: - self.cfg['kokkos_arch'] = 'ARM81' - else: self.cfg['kokkos_arch'] = 'ARM80' + else: + self.cfg['kokkos_arch'] = 'ARM81' else: raise EasyBuildError("LAMMPS-specific hook triggered for non-LAMMPS easyconfig?!") From ed22feaf78ae50d98dc675f17a3597a8622fc1d1 Mon Sep 17 00:00:00 2001 From: lara Date: Wed, 15 Nov 2023 11:25:57 +0100 Subject: [PATCH 12/13] update hook --- eb_hooks.py | 1 + 1 file changed, 1 insertion(+) diff --git a/eb_hooks.py b/eb_hooks.py index 1d01372912..8d05523c2b 100644 --- a/eb_hooks.py +++ b/eb_hooks.py @@ -275,6 +275,7 @@ def pre_configure_hook_LAMMPS_aarch64(self, *args, **kwargs): - 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: From 6d138dd2390a8fc9efd843f96c3210640e1535b4 Mon Sep 17 00:00:00 2001 From: lara Date: Thu, 16 Nov 2023 17:14:10 +0100 Subject: [PATCH 13/13] add fix for sanity check --- eessi-2023.06-eb-4.8.1-2021b.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eessi-2023.06-eb-4.8.1-2021b.yml b/eessi-2023.06-eb-4.8.1-2021b.yml index d8a7caff2e..6ee44926ba 100644 --- a/eessi-2023.06-eb-4.8.1-2021b.yml +++ b/eessi-2023.06-eb-4.8.1-2021b.yml @@ -12,4 +12,4 @@ easyconfigs: - LAMMPS-23Jun2022-foss-2021b-kokkos.eb: # TBB and ScaFaCos are optional dependencies when building on Intel arch options: - from-pr: 19164 + from-pr: 19246