summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/exago/package.py
diff options
context:
space:
mode:
authorCameron Rutherford <robert.rutherford@pnnl.gov>2023-02-21 17:56:59 -0500
committerGitHub <noreply@github.com>2023-02-21 14:56:59 -0800
commit0a233ce83a82e75d6a83568fb36460f5d62eb857 (patch)
tree13031312b153dac5a99ad56d5e8b1fbd9c17566c /var/spack/repos/builtin/packages/exago/package.py
parent27ee08f5bba55ac188cc89d234d0f3ece203426e (diff)
downloadspack-0a233ce83a82e75d6a83568fb36460f5d62eb857.tar.gz
spack-0a233ce83a82e75d6a83568fb36460f5d62eb857.tar.bz2
spack-0a233ce83a82e75d6a83568fb36460f5d62eb857.tar.xz
spack-0a233ce83a82e75d6a83568fb36460f5d62eb857.zip
ExaGO 1.5.1 release (#35595)
* Update exago w/ 1.5.1 and small updates to hiop. * Fix styling. * Add RAJA back to ExaGO package. * Update RAJA requirement for ExaGO and HiOp. * Update last RAJA requirement in HiOp.
Diffstat (limited to 'var/spack/repos/builtin/packages/exago/package.py')
-rw-r--r--var/spack/repos/builtin/packages/exago/package.py40
1 files changed, 23 insertions, 17 deletions
diff --git a/var/spack/repos/builtin/packages/exago/package.py b/var/spack/repos/builtin/packages/exago/package.py
index 0e040e7f43..918379faee 100644
--- a/var/spack/repos/builtin/packages/exago/package.py
+++ b/var/spack/repos/builtin/packages/exago/package.py
@@ -15,6 +15,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
git = "https://gitlab.pnnl.gov/exasgd/frameworks/exago.git"
maintainers("ryandanehy", "CameronRutherford", "pelesh")
+ version("1.5.1", commit="7abe482c8da0e247f9de4896f5982c4cacbecd78", submodules=True)
version("1.5.0", commit="227f49573a28bdd234be5500b3733be78a958f15", submodules=True)
version("1.4.1", commit="ea607c685444b5f345bfdc9a59c345f0f30adde2", submodules=True)
version("1.4.0", commit="4f4c3fdb40b52ace2d6ba000e7f24b340ec8e886", submodules=True)
@@ -33,8 +34,8 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
# Progrmming model options
variant("mpi", default=True, description="Enable/Disable MPI")
variant("raja", default=False, description="Enable/Disable RAJA")
- variant("python", default=True, description="Enable/Disable Python bindings")
- conflicts("+python", when="@:1.3.0", msg="Python bindings require ExaGO 1.4")
+ variant("python", default=True, when="@1.4:", description="Enable/Disable Python bindings")
+ variant("logging", default=True, description="Enable/Disable spdlog based logging")
conflicts(
"+python", when="+ipopt+rocm", msg="Python bindings require -fPIC with Ipopt for rocm."
)
@@ -47,13 +48,14 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
"~hiop~ipopt @:1.4",
msg="ExaGO needs at least one solver enabled. PFLOW only mode is supported in 1.5+",
)
- # We will better support minimal builds with Python in future.
# You can use Python with PFLOW if desired ~ipopt~hiop
conflicts(
- "~hiop~ipopt+python", msg="ExaGO Python wrapper requires at least one solver enabled."
+ "~hiop~ipopt+python @:1.5.0",
+ msg="ExaGO Python wrapper requires at least one solver enabled.",
)
# Dependencies
+ depends_on("python@3.6:", when="@1.3.0:+python")
depends_on("py-pytest", type=("build", "run"), when="@1.5.0:+python")
depends_on("py-mpi4py", when="@1.3.0:+mpi+python")
depends_on("pkgconfig", type="build")
@@ -64,13 +66,6 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
depends_on("raja", when="+raja")
depends_on("umpire", when="+raja")
- depends_on("umpire@6.0.0", when="@1.1.0: +raja")
- depends_on("raja@0.14.0", when="@1.1.0: +raja")
- depends_on("camp@0.2.3", when="@1.1.0: +raja")
-
- # Some allocator code in Umpire only works with static libs
- depends_on("umpire+cuda~shared", when="+raja+cuda")
-
depends_on("cmake@3.18:", type="build")
# Profiling
@@ -108,15 +103,26 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
# ^ need to depend when both hpctoolkit and tau
# HiOp dependency logic
- depends_on("hiop+raja", when="+hiop+raja")
depends_on("hiop@0.3.99:", when="@0.99:+hiop")
depends_on("hiop@0.5.1:", when="@1.1.0:+hiop")
depends_on("hiop@0.5.3:", when="@1.3.0:+hiop")
- depends_on("hiop@0.7.0:0.7.1", when="@1.5.0:+hiop")
+ depends_on("hiop@0.7.0:", when="@1.5.0:+hiop")
depends_on("hiop~mpi", when="+hiop~mpi")
depends_on("hiop+mpi", when="+hiop+mpi")
+ # RAJA dependency logic
+ # ExaGO will support +raja~hiop in the future
+ depends_on("hiop+raja", when="+hiop+raja")
+ # This is duplicated from HiOp
+ # RAJA > 0.14 and Umpire > 6.0 require c++ std 14
+ # We are working on supporting newer Umpire/RAJA versions
+ depends_on("raja@0.14.0:0.14", when="@1.1.0:+raja")
+ depends_on("umpire@6.0.0:6", when="@1.1.0:+raja")
+ depends_on("camp@0.2.3:0.2", when="@1.1.0:+raja")
+ # This is no longer a requirement in RAJA > 0.14
+ depends_on("umpire+cuda~shared", when="+raja+cuda ^raja@:0.14")
+
depends_on("petsc@3.13:3.14", when="@:1.2.99")
depends_on("petsc@3.16.0:3.16", when="@1.3.0:1.4")
depends_on("petsc@3.18.0:3.18", when="@1.5.0:")
@@ -127,16 +133,15 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
cuda_dep = "+cuda cuda_arch={0}".format(arch)
depends_on("hiop {0}".format(cuda_dep), when=cuda_dep)
depends_on("raja {0}".format(cuda_dep), when="+raja {0}".format(cuda_dep))
-
- # For some versions of RAJA package, camp cuda variant does not get set
- # correctly, so we must explicitly depend on it even though we don't use
- # camp
+ depends_on("umpire {0}".format(cuda_dep), when="+raja {0}".format(cuda_dep))
depends_on("camp {0}".format(cuda_dep), when="+raja {0}".format(cuda_dep))
for arch in ROCmPackage.amdgpu_targets:
rocm_dep = "+rocm amdgpu_target={0}".format(arch)
depends_on("hiop {0}".format(rocm_dep), when=rocm_dep)
depends_on("raja {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep))
+ depends_on("umpire {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep))
+ depends_on("camp {0}".format(rocm_dep), when="+raja {0}".format(rocm_dep))
flag_handler = build_system_flags
@@ -173,6 +178,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage):
self.define_from_variant("EXAGO_ENABLE_HIOP", "hiop"),
self.define_from_variant("EXAGO_ENABLE_IPOPT", "ipopt"),
self.define_from_variant("EXAGO_ENABLE_PYTHON", "python"),
+ self.define_from_variant("EXAGO_ENABLE_LOGGING", "logging"),
]
)