summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Abraham <Mark.J.Abraham@gmail.com>2023-11-19 00:48:00 +0100
committerGitHub <noreply@github.com>2023-11-18 16:48:00 -0700
commit6ca49549d923a47b1580a254cd64a141b53935f9 (patch)
treecb1d97cd7cc0056fcda439e655de2356a80dc245
parent50051b56199992eb4395b8ff22913c1995311a8c (diff)
downloadspack-6ca49549d923a47b1580a254cd64a141b53935f9.tar.gz
spack-6ca49549d923a47b1580a254cd64a141b53935f9.tar.bz2
spack-6ca49549d923a47b1580a254cd64a141b53935f9.tar.xz
spack-6ca49549d923a47b1580a254cd64a141b53935f9.zip
gromacs: Add new variants and clarify existing ones (#41115)
* gromacs: Add new variants and clarify existing ones Add new variants that reflect existing capabilities and defaults in the upstream build system. Add other existing constraints that were not yet specified. * conform to style * Fix missing hyphens * Correct cmake variable names
-rw-r--r--var/spack/repos/builtin/packages/gromacs/package.py47
1 files changed, 45 insertions, 2 deletions
diff --git a/var/spack/repos/builtin/packages/gromacs/package.py b/var/spack/repos/builtin/packages/gromacs/package.py
index 66c594c71e..d373bb4d5d 100644
--- a/var/spack/repos/builtin/packages/gromacs/package.py
+++ b/var/spack/repos/builtin/packages/gromacs/package.py
@@ -90,9 +90,26 @@ class Gromacs(CMakePackage, CudaPackage):
default=False,
description="Produces a double precision version of the executables",
)
- variant("cufftmp", default=False, when="+cuda+mpi", description="Enable Multi GPU FFT support")
+ variant(
+ "cufftmp",
+ default=False,
+ when="@2022: +cuda+mpi",
+ description="Enable multi-GPU FFT support with cuFFTMp",
+ )
+ variant(
+ "heffte",
+ default=False,
+ when="@2021: +sycl+mpi",
+ description="Enable multi-GPU FFT support with HeFFTe",
+ )
variant("opencl", default=False, description="Enable OpenCL support")
- variant("sycl", default=False, description="Enable SYCL support")
+ variant("sycl", default=False, when="@2021:", description="Enable SYCL support")
+ variant(
+ "intel-data-center-gpu-max",
+ default=False,
+ when="@2022:",
+ description="Enable support for Intel Data Center GPU Max",
+ )
variant("nosuffix", default=False, description="Disable default suffixes")
variant(
"build_type",
@@ -109,6 +126,18 @@ class Gromacs(CMakePackage, CudaPackage):
),
)
variant(
+ "nblib",
+ default=True,
+ when="@2021:",
+ description="Build and install the NB-LIB C++ API for GROMACS",
+ )
+ variant(
+ "gmxapi",
+ default=True,
+ when="@2019:",
+ description="Build and install the gmxlib python API for GROMACS",
+ )
+ variant(
"mdrun_only",
default=False,
description="Enables the build of a cut-down version"
@@ -254,6 +283,7 @@ class Gromacs(CMakePackage, CudaPackage):
depends_on("cp2k@8.1:", when="+cp2k")
depends_on("nvhpc", when="+cufftmp")
+ depends_on("heffte", when="+heffte")
requires(
"%intel",
@@ -516,6 +546,19 @@ class CMakeBuilder(spack.build_systems.cmake.CMakeBuilder):
+ f'/{self.spec["nvhpc"].version}/math_libs'
)
+ if "+heffte" in self.spec:
+ options.append("-DGMX_USE_HEFFTE=on")
+ options.append(f'-DHeffte_ROOT={self.spec["heffte"].prefix}')
+
+ if "+intel-data-center-gpu-max" in self.spec:
+ options.append("-DGMX_GPU_NB_CLUSTER_SIZE=8")
+ options.append("-DGMX_GPU_NB_NUM_CLUSTER_PER_CELL_X=1")
+
+ if "~nblib" in self.spec:
+ options.append("-DGMX_INSTALL_NBLIB_API=OFF")
+ if "~gmxapi" in self.spec:
+ options.append("-DGMXAPI=OFF")
+
# Activate SIMD based on properties of the target
target = self.spec.target
if target >= "zen4":