summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Rood <jon.rood@nrel.gov>2024-05-13 10:28:24 -0600
committerGitHub <noreply@github.com>2024-05-13 10:28:24 -0600
commit7f6210ee907349f62beeca3bf4783862fee3b3ac (patch)
tree9fcbe3d384c1e712914e4d7b411cb7f8be24c0f0
parent63f6e6079aacc99078386e5c8ff06173841b9595 (diff)
downloadspack-7f6210ee907349f62beeca3bf4783862fee3b3ac.tar.gz
spack-7f6210ee907349f62beeca3bf4783862fee3b3ac.tar.bz2
spack-7f6210ee907349f62beeca3bf4783862fee3b3ac.tar.xz
spack-7f6210ee907349f62beeca3bf4783862fee3b3ac.zip
nalu-wind: updates (#44046)
-rw-r--r--var/spack/repos/builtin/packages/nalu-wind/package.py77
1 files changed, 37 insertions, 40 deletions
diff --git a/var/spack/repos/builtin/packages/nalu-wind/package.py b/var/spack/repos/builtin/packages/nalu-wind/package.py
index ba0d96e564..18efa6d6fe 100644
--- a/var/spack/repos/builtin/packages/nalu-wind/package.py
+++ b/var/spack/repos/builtin/packages/nalu-wind/package.py
@@ -3,8 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-import sys
-
from spack.package import *
@@ -53,31 +51,17 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
variant("gpu-aware-mpi", default=False, description="gpu-aware-mpi")
variant("wind-utils", default=False, description="Build wind-utils")
variant("umpire", default=False, description="Enable Umpire")
- conflicts(
- "+shared",
- when="+cuda",
- msg="invalid device functions are generated with shared libs and cuda",
- )
- conflicts(
- "+shared",
- when="+rocm",
- msg="invalid device functions are generated with shared libs and rocm",
- )
- conflicts("+cuda", when="+rocm")
- conflicts("+rocm", when="+cuda")
depends_on("mpi")
depends_on("yaml-cpp@0.5.3:")
depends_on("openfast@4.0.0:+cxx+netcdf", when="+fsi")
- depends_on("trilinos@13.4.1+exodus+zoltan+stk", when="@=2.0.0")
+ depends_on("trilinos@13.4.1", when="@=2.0.0")
depends_on("hypre@2.29.0:", when="@2.0.0:+hypre")
depends_on(
- "trilinos@13:+exodus+tpetra+zoltan+stk~superlu-dist~superlu+hdf5+shards~hypre+gtest"
+ "trilinos@13:+exodus+tpetra+zoltan+stk~superlu-dist~superlu+hdf5+shards~hypre+gtest "
+ "gotype=long cxxstd=17"
)
depends_on("trilinos~cuda~wrapper", when="~cuda")
- # Cannot build Trilinos as a shared library with STK on Darwin
- # https://github.com/trilinos/Trilinos/issues/2994
- depends_on("trilinos~shared", when=(sys.platform == "darwin"))
depends_on("openfast@2.6.0: +cxx", when="+openfast")
depends_on("tioga@master:", when="+tioga")
depends_on("hypre@2.18.2: ~int64+mpi~superlu-dist", when="+hypre")
@@ -98,9 +82,7 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
)
for _arch in ROCmPackage.amdgpu_targets:
depends_on(
- "trilinos@13.4.0.2022.10.27: "
- "~shared+exodus+tpetra+zoltan+stk~superlu-dist~superlu"
- "+hdf5+shards~hypre+gtest+rocm amdgpu_target={0}".format(_arch),
+ "trilinos@13.4: ~shared+rocm amdgpu_target={0}".format(_arch),
when="+rocm amdgpu_target={0}".format(_arch),
)
depends_on(
@@ -114,23 +96,38 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
# indirect dependency needed to make original concretizer work
depends_on("netcdf-c+parallel-netcdf")
depends_on("boost +filesystem +iostreams cxxstd=14", when="+boost")
- supported_cxxstd = ["17"]
- variant(
- "cxxstd", default="17", values=supported_cxxstd, multi=False, description="cxx standard"
+ depends_on("hypre+gpu-aware-mpi", when="+gpu-aware-mpi")
+ depends_on("hypre+umpire", when="+umpire")
+ depends_on("trilinos~shared", when="+trilinos-solvers platform=darwin")
+
+ conflicts(
+ "+shared",
+ when="+cuda",
+ msg="invalid device functions are generated with shared libs and cuda",
)
- for std in supported_cxxstd:
- depends_on("trilinos cxxstd=%s" % std, when="cxxstd=%s" % std)
+ conflicts(
+ "+shared",
+ when="+rocm",
+ msg="invalid device functions are generated with shared libs and rocm",
+ )
+ conflicts("+cuda", when="+rocm")
+ conflicts("+rocm", when="+cuda")
+ conflicts("^hypre+cuda", when="~cuda")
+ conflicts("^hypre+rocm", when="~rocm")
+ conflicts("^hypre+sycl")
+ conflicts("^trilinos+cuda", when="~cuda")
+ conflicts("^trilinos+rocm", when="~rocm")
def setup_build_environment(self, env):
- if "~stk_simd" in self.spec:
- env.append_flags("CXXFLAGS", "-DUSE_STK_SIMD_NONE")
- if "+cuda" in self.spec:
+ spec = self.spec
+ env.append_flags("CXXFLAGS", "-DUSE_STK_SIMD_NONE")
+ if spec.satisfies("+cuda"):
env.set("CUDA_LAUNCH_BLOCKING", "1")
env.set("CUDA_MANAGED_FORCE_DEVICE_ALLOC", "1")
env.set("OMPI_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
env.set("MPICH_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
env.set("MPICXX_CXX", self.spec["kokkos-nvcc-wrapper"].kokkos_cxx)
- if "+rocm" in self.spec:
+ if spec.satisfies("+rocm"):
env.append_flags("CXXFLAGS", "-fgpu-rdc")
def cmake_args(self):
@@ -145,7 +142,7 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("ENABLE_CUDA", "cuda"),
self.define_from_variant("ENABLE_WIND_UTILS", "wind-utils"),
self.define_from_variant("ENABLE_BOOST", "boost"),
- self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
+ self.define_from_variant("CMAKE_CXX_STANDARD", "17"),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("ENABLE_OPENFAST", "openfast"),
self.define_from_variant("ENABLE_TIOGA", "tioga"),
@@ -156,23 +153,23 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("ENABLE_UMPIRE", "umpire"),
]
- if "+openfast" in spec:
+ if spec.satisfies("+openfast"):
args.append(self.define("OpenFAST_DIR", spec["openfast"].prefix))
- if "+tioga" in spec:
+ if spec.satisfies("+tioga"):
args.append(self.define("TIOGA_DIR", spec["tioga"].prefix))
- if "+hypre" in spec:
+ if spec.satisfies("+hypre"):
args.append(self.define("HYPRE_DIR", spec["hypre"].prefix))
- if "+catalyst" in spec:
+ if spec.satisfies("+catalyst"):
args.append(
self.define(
"PARAVIEW_CATALYST_INSTALL_PATH", spec["trilinos-catalyst-ioss-adapter"].prefix
)
)
- if "+fftw" in spec:
+ if spec.satisfies("+fftw"):
args.append(self.define("FFTW_DIR", spec["fftw"].prefix))
args.append(self.define("ENABLE_TESTS", self.run_tests))
@@ -184,10 +181,10 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
]
)
- if "+umpire" in spec:
+ if spec.satisfies("+umpire"):
args.append(self.define("UMPIRE_DIR", spec["umpire"].prefix))
- if "+rocm" in spec:
+ if spec.satisfies("+rocm"):
args.append(self.define("CMAKE_CXX_COMPILER", spec["hip"].hipcc))
args.append(self.define("ENABLE_ROCM", True))
targets = spec.variants["amdgpu_target"].value
@@ -200,6 +197,6 @@ class NaluWind(CMakePackage, CudaPackage, ROCmPackage):
@run_before("cmake")
def add_submodules(self):
- if self.run_tests or "+wind-utils" in self.spec:
+ if self.run_tests or self.spec.satisfies("+wind-utils"):
git = which("git")
git("submodule", "update", "--init", "--recursive")