From c0f020d021d6d9e7869bfa91eaa0de5e681112d4 Mon Sep 17 00:00:00 2001 From: Andrey Parfenov Date: Thu, 11 May 2023 16:23:04 +0200 Subject: add openmp_max_threads variant and enable avx 512 optimizations for icelake (#37379) * add openmp_max_threads variant and enable avx 512 optimizations for icelake and cascadelake Signed-off-by: Andrey Parfenov * revert manual enabling of avx512 for icelake and cascadelake Signed-off-by: Andrey Parfenov --------- Signed-off-by: Andrey Parfenov --- var/spack/repos/builtin/packages/gromacs/package.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py index 8ea0e7abee..d255bdff68 100644 --- a/var/spack/repos/builtin/packages/gromacs/package.py +++ b/var/spack/repos/builtin/packages/gromacs/package.py @@ -115,6 +115,10 @@ class Gromacs(CMakePackage, CudaPackage): "+mdrun_only", when="@2021:", msg="mdrun-only build option was removed for GROMACS 2021." ) variant("openmp", default=True, description="Enables OpenMP at configure time") + variant("openmp_max_threads", default="none", description="Max number of OpenMP threads") + conflicts( + "+openmp_max_threads", when="~openmp", msg="OpenMP is off but OpenMP Max threads is set" + ) variant( "sve", default=True, @@ -570,6 +574,11 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder): else: options.append("-DGMX_CYCLE_SUBCOUNTERS:BOOL=OFF") + if "+openmp" in self.spec and self.spec.variants["openmp_max_threads"].value != "none": + options.append( + "-DGMX_OPENMP_MAX_THREADS=%s" % self.spec.variants["openmp_max_threads"].value + ) + if "^mkl" in self.spec: # fftw-api@3 is provided by intel-mkl or intel-parllel-studio # we use the mkl interface of gromacs -- cgit v1.2.3-70-g09d2