summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/dla-future/package.py
diff options
context:
space:
mode:
authorRaffaele SolcĂ  <rasolca@cscs.ch>2023-08-31 10:39:22 +0200
committerGitHub <noreply@github.com>2023-08-31 10:39:22 +0200
commit34e4c62e8ce019a84424f93102068dcea0b21dfa (patch)
tree67e95f21cfe87bdd01a856882dd61a6d6c627364 /var/spack/repos/builtin/packages/dla-future/package.py
parentacb02326aa6a0c03193ea6213657d7921fb1cd95 (diff)
downloadspack-34e4c62e8ce019a84424f93102068dcea0b21dfa.tar.gz
spack-34e4c62e8ce019a84424f93102068dcea0b21dfa.tar.bz2
spack-34e4c62e8ce019a84424f93102068dcea0b21dfa.tar.xz
spack-34e4c62e8ce019a84424f93102068dcea0b21dfa.zip
dla-future: add v0.2.0 (#39705)
Diffstat (limited to 'var/spack/repos/builtin/packages/dla-future/package.py')
-rw-r--r--var/spack/repos/builtin/packages/dla-future/package.py54
1 files changed, 47 insertions, 7 deletions
diff --git a/var/spack/repos/builtin/packages/dla-future/package.py b/var/spack/repos/builtin/packages/dla-future/package.py
index 57d0befe32..3aeda90103 100644
--- a/var/spack/repos/builtin/packages/dla-future/package.py
+++ b/var/spack/repos/builtin/packages/dla-future/package.py
@@ -14,20 +14,36 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/eth-cscs/DLA-Future.git"
maintainers = ["rasolca", "albestro", "msimberg", "aurianer"]
+ version("0.2.0", sha256="da73cbd1b88287c86d84b1045a05406b742be924e65c52588bbff200abd81a10")
version("0.1.0", sha256="f7ffcde22edabb3dc24a624e2888f98829ee526da384cd752b2b271c731ca9b1")
version("master", branch="master")
variant("shared", default=True, description="Build shared libraries.")
+ variant(
+ "hdf5",
+ default=False,
+ when="@0.2.0:",
+ description="HDF5 support for dealing with matrices on disk.",
+ )
+
variant("doc", default=False, description="Build documentation.")
variant("miniapps", default=False, description="Build miniapps.")
+ variant(
+ "scalapack",
+ default=False,
+ when="@0.2.0:",
+ description="Build C API compatible with ScaLAPACK",
+ )
+
depends_on("cmake@3.22:", type="build")
depends_on("doxygen", type="build", when="+doc")
depends_on("mpi")
depends_on("blaspp@2022.05.00:")
depends_on("lapackpp@2022.05.00:")
+ depends_on("scalapack", when="+scalapack")
depends_on("umpire~examples")
depends_on("umpire~cuda", when="~cuda")
@@ -36,7 +52,8 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("umpire+rocm~shared", when="+rocm")
depends_on("umpire@4.1.0:")
- depends_on("pika@0.15.1:")
+ depends_on("pika@0.15.1:", when="@0.1")
+ depends_on("pika@0.16:", when="@0.2.0:")
depends_on("pika-algorithms@0.1:")
depends_on("pika +mpi")
depends_on("pika +cuda", when="+cuda")
@@ -52,6 +69,8 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
depends_on("rocsolver", when="+rocm")
depends_on("rocthrust", when="+rocm")
+ depends_on("hdf5 +cxx+mpi+threadsafe+shared", when="+hdf5")
+
conflicts("+cuda", when="+rocm")
with when("+rocm"):
@@ -92,16 +111,29 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
"openmp": "omp",
"tbb": "tbb",
} # Map MKL variants to LAPACK target name
+ mkl_threads = vmap[spec["intel-mkl"].variants["threads"].value]
# TODO: Generalise for intel-oneapi-mkl
args += [
self.define("DLAF_WITH_MKL", True),
- self.define(
- "MKL_LAPACK_TARGET",
- "mkl::mkl_intel_32bit_{0}_dyn".format(
- vmap[spec["intel-mkl"].variants["threads"].value]
- ),
- ),
+ self.define("MKL_LAPACK_TARGET", f"mkl::mkl_intel_32bit_{mkl_threads}_dyn"),
]
+ if "+scalapack" in spec:
+ if (
+ "^mpich" in spec
+ or "^cray-mpich" in spec
+ or "^intel-mpi" in spec
+ or "^mvapich" in spec
+ or "^mvapich2" in spec
+ ):
+ mkl_mpi = "mpich"
+ elif "^openmpi" in spec:
+ mkl_mpi = "ompi"
+ args.append(
+ self.define(
+ "MKL_SCALAPACK_TARGET",
+ f"mkl::scalapack_{mkl_mpi}_intel_32bit_{mkl_threads}_dyn",
+ )
+ )
else:
args.append(self.define("DLAF_WITH_MKL", False))
args.append(
@@ -110,6 +142,11 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
)
)
+ if "+scalapack" in spec:
+ args.append(self.define("SCALAPACK_LIBRARY", spec["scalapack"].libs.ld_flags))
+
+ if "+scalapack" in spec:
+ args.append(self.define_from_variant("DLAF_WITH_SCALAPACK", "scalapack"))
# CUDA/HIP
args.append(self.define_from_variant("DLAF_WITH_CUDA", "cuda"))
@@ -125,6 +162,9 @@ class DlaFuture(CMakePackage, CudaPackage, ROCmPackage):
arch_str = ";".join(archs)
args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str))
+ # HDF5 support
+ args.append(self.define_from_variant("DLAF_WITH_HDF5", "hdf5"))
+
# DOC
args.append(self.define_from_variant("DLAF_BUILD_DOC", "doc"))