Update melissa build (#37609)

* Remove deprecated package

* Add up-to-date melissa builds

* Remove blank lines and FIXME comments

* Use directive syntax for maintainers and remove unnecessary comments

* Remove unused function

* Deprecate former melissa recipe

* Change melissa python package name

* Update setuptools and rapidjson dependencies versions

* Fix mypy error

* Restore rapidjson version

* Variant simplification

* Make variants lower case

* Deprecate former omitted version

* Make torch version consistent with requirement file

* Fix variants definition

* Fix style error

---------

Co-authored-by: Marc Schouler <marc.schouler@inria.fr>
This commit is contained in:
mschouler 2023-05-27 00:26:29 +02:00 committed by GitHub
parent b91ec05e13
commit cd175377ca
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 81 additions and 3 deletions

View file

@ -0,0 +1,27 @@
# Copyright 2013-2023 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.package import *
class MelissaApi(CMakePackage):
"""Melissa is a file-avoiding, adaptive, fault-tolerant and elastic
framework, to run large-scale sensitivity analysis or deep-surrogate
training on supercomputers.
This package builds the API used when instrumenting the clients.
"""
homepage = "https://gitlab.inria.fr/melissa/melissa"
git = "https://gitlab.inria.fr/melissa/melissa.git"
maintainers("robcaulk", "mschouler", "raffino")
version("develop", branch="develop")
depends_on("cmake@3.7.2:", type="build")
depends_on("libzmq@4.1.5:")
depends_on("mpi")
def setup_run_environment(self, env):
env.prepend_path("PYTHONPATH", self.prefix.lib)

View file

@ -18,9 +18,13 @@ class Melissa(CMakePackage):
# attention: Git**Hub**.com accounts
maintainers("christoph-conrads", "raffino")
version("master", branch="master")
version("develop", branch="develop")
version("0.7.1", sha256="c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d")
version("master", branch="master", deprecated=True)
version("develop", branch="develop", deprecated=True)
version(
"0.7.1",
sha256="c30584f15fecf6297712a88e4d28851bfd992f31209fd7bb8af2feebe73d539d",
deprecated=True,
)
version(
"0.7.0",
sha256="a801d0b512e31a0750f98cfca80f8338985e06abf9b26e96f7645a022864e41c",

View file

@ -0,0 +1,47 @@
# Copyright 2013-2023 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.package import *
class PyMelissaCore(PythonPackage):
"""Melissa is a file-avoiding, adaptive, fault-tolerant and elastic
framework, to run large-scale sensitivity analysis or deep-surrogate
training on supercomputers.
This package builds the launcher and server modules.
"""
homepage = "https://gitlab.inria.fr/melissa/melissa"
git = "https://gitlab.inria.fr/melissa/melissa.git"
maintainers("robcaulk", "mschouler", "raffino")
version("develop", branch="develop")
# define variants for the deep learning server (torch, tf)
variant(
"torch", default=False, description="Install Deep Learning requirements with Pytorch only"
)
variant(
"tf", default=False, description="Install Deep Learning requirements with TensorFlow only"
)
depends_on("python@3.8.0:", type=("build", "run"))
depends_on("py-setuptools@46.4:", type=("build"))
# requirements.txt (SA)
depends_on("py-pyzmq@22.3.0:", type="run")
depends_on("py-mpi4py@3.1.3:", type="run")
depends_on("py-numpy@1.21:", type="run")
depends_on("py-jsonschema@4.5:", type="run")
depends_on("py-python-rapidjson@1.8:", type="run")
depends_on("py-scipy@1.10.0:", type="run")
depends_on("py-cloudpickle@2.2.0:", type="run")
# requirements_deep_learning.txt (DL with torch)
depends_on("py-tensorboard@2.10.0:", type="run", when="+torch")
depends_on("py-matplotlib", type="run", when="+torch")
depends_on("py-torch@1.12.1:", type="run", when="+torch")
# requirements_deep_learning.txt (DL with tensorflow)
depends_on("py-tensorboard@2.10.0:", type="run", when="+tf")
depends_on("py-matplotlib", type="run", when="+tf")
depends_on("py-tensorflow@2.8.0:", type="run", when="+tf")