From 28ea1bab684496c2762bb0f30f8fabe182e6a9a4 Mon Sep 17 00:00:00 2001 From: Max Zeyen Date: Thu, 27 Jan 2022 15:35:20 +0100 Subject: gpi-space: add new package (#27989) --- .../repos/builtin/packages/gpi-space/package.py | 68 ++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 var/spack/repos/builtin/packages/gpi-space/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/gpi-space/package.py b/var/spack/repos/builtin/packages/gpi-space/package.py new file mode 100644 index 0000000000..79e3a1707d --- /dev/null +++ b/var/spack/repos/builtin/packages/gpi-space/package.py @@ -0,0 +1,68 @@ +# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack import * + + +class GpiSpace(CMakePackage): + """ + GPI-Space is a task-based workflow management system for parallel + applications. It allows the developers to build domain-specific workflows + using their own parallelization patterns, data management policies and I/O + routines, while relying on the runtime system for the workflow management. + The GPI-Space ecosystem "auto-manages" the application with dynamic + scheduling, built-in distributed memory transfers and distributed tasks + execution. + """ + + homepage = "https://www.gpi-space.de" + url = "https://github.com/cc-hpc-itwm/gpispace/archive/refs/tags/v21.09.tar.gz" + git = "https://github.com/cc-hpc-itwm/gpispace.git" + + maintainers = ["mzeyen1985", "tiberot", "rumach", "mrahn", "acastanedam"] + + version("latest", branch="main") + version('21.12.1', sha256='6c49aca95a32e66fa1e34bef542c2f380e91f86c9c2b3b0d98921901bab7abce') + version('21.12', sha256='51794e2b593b8d1dc7d6310e17744842919bf44205b2cb7a79de2f2bbac3352a') + version('21.09', sha256='7f3861c2bfec15a4da46378ea38b304e1462ed315cd315b81ab2c2a8ba50dd3e') + + variant("network", + default="ethernet", + values=("infiniband", "ethernet"), + description="GPI-2 fabric to enable") + variant("monitor", + default=True, + description=""" + Enables the gspc-monitor application for execution monitoring. + """) + variant("build_type", + default="Release", + values=("Debug", "Release", "RelWithDebInfo", "MinSizeRel"), + description="CMake build type") + + depends_on("cmake@3.15.0:", + type="build") + depends_on("chrpath@0.13:", + type=("build", "run")) + depends_on("pkgconf", + type="build") + depends_on("boost@1.62.0:1.63.0 +coroutine +context cxxstd=14") + depends_on("hwloc@1.10: +libudev ~shared ~libxml2") + depends_on("libssh2@1.7:") + depends_on("openssl@0.9:") + depends_on("gpi-2@1.3.2:1.3.3 fabrics=infiniband", + when="network=infiniband") + depends_on("gpi-2@1.3.2:1.3.3 fabrics=ethernet", + when="network=ethernet") + depends_on("qt@5.9:5.15", + when="+monitor") + + def cmake_args(self): + args = [self.define("FHG_ASSERT_MODE", False), + self.define("INSTALL_DO_NOT_BUNDLE", True), + self.define("BUILD_TESTING", False), + self.define_from_variant("GSPC_WITH_MONITOR_APP", "monitor")] + + return args -- cgit v1.2.3-70-g09d2