diff options
author | Mark Abraham <Mark.J.Abraham@gmail.com> | 2023-11-19 00:48:00 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-18 16:48:00 -0700 |
commit | 6ca49549d923a47b1580a254cd64a141b53935f9 (patch) | |
tree | cb1d97cd7cc0056fcda439e655de2356a80dc245 | |
parent | 50051b56199992eb4395b8ff22913c1995311a8c (diff) | |
download | spack-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.py | 47 |
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": |