@@ -391,6 +391,21 @@ def pre_configure_hook(self, *args, **kwargs):
391391 PRE_CONFIGURE_HOOKS [self .name ](self , * args , ** kwargs )
392392
393393
394+ def pre_configure_hook_gromacs (self , * args , ** kwargs ):
395+ """
396+ Pre-configure hook for GROMACS:
397+ - avoid building with SVE instructions on Neoverse V1 as workaround for failing tests,
398+ see https://gitlab.com/gromacs/gromacs/-/issues/5057 + https://gitlab.com/eessi/support/-/issues/47
399+ """
400+ if self .name == 'GROMACS' :
401+ cpu_target = get_eessi_envvar ('EESSI_SOFTWARE_SUBDIR' )
402+ if LooseVersion (self .version ) <= LooseVersion ('2024.1' ) and cpu_target == CPU_TARGET_NEOVERSE_V1 :
403+ self .cfg .update ('configopts' , '-DGMX_SIMD=ARM_NEON_ASIMD' )
404+ print_msg ("Avoiding use of SVE instructions for GROMACS %s by using ARM_NEON_ASIMD as GMX_SIMD value" , self .version )
405+ else :
406+ raise EasyBuildError ("GROMACS-specific hook triggered for non-GROMACS easyconfig?!" )
407+
408+
394409def pre_configure_hook_openblas_optarch_generic (self , * args , ** kwargs ):
395410 """
396411 Pre-configure hook for OpenBLAS: add DYNAMIC_ARCH=1 to build/test/install options when using --optarch=GENERIC
@@ -724,6 +739,7 @@ def inject_gpu_property(ec):
724739}
725740
726741PRE_CONFIGURE_HOOKS = {
742+ 'GROMACS' : pre_configure_hook_gromacs ,
727743 'libfabric' : pre_configure_hook_libfabric_disable_psm3_x86_64_generic ,
728744 'MetaBAT' : pre_configure_hook_metabat_filtered_zlib_dep ,
729745 'OpenBLAS' : pre_configure_hook_openblas_optarch_generic ,
0 commit comments