From e0b418f288561ab1273b12ad6cfa7728651c5368 Mon Sep 17 00:00:00 2001 From: MichaelLaufer <70094649+MichaelLaufer@users.noreply.github.com> Date: Wed, 5 Oct 2022 22:08:37 +0300 Subject: py-pyfr: add v1.15.0, explicitly set env variables for dependencies (#32964) * Update to PyFR v1.15.0 * allow unsupported compilers for cuda * update requirement for py-gimmik version * update requirement for cuda version * update versions, style fix * lib directory changed, style fixes * PYFR_METIS_LIBRARY_PATH set --- .../repos/builtin/packages/libxsmm/package.py | 2 +- .../repos/builtin/packages/py-gimmik/package.py | 4 ++- .../repos/builtin/packages/py-pyfr/package.py | 30 +++++++++++++++++----- 3 files changed, 28 insertions(+), 8 deletions(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/libxsmm/package.py b/var/spack/repos/builtin/packages/libxsmm/package.py index 1ff96ec7a3..22af0c861c 100644 --- a/var/spack/repos/builtin/packages/libxsmm/package.py +++ b/var/spack/repos/builtin/packages/libxsmm/package.py @@ -20,7 +20,7 @@ class Libxsmm(MakefilePackage): maintainers = ["hfp"] - version("master", branch="master") + version("main", branch="main") version("1.17", sha256="8b642127880e92e8a75400125307724635ecdf4020ca4481e5efe7640451bb92") version("1.16.3", sha256="e491ccadebc5cdcd1fc08b5b4509a0aba4e2c096f53d7880062a66b82a0baf84") version("1.16.2", sha256="bdc7554b56b9e0a380fc9c7b4f4394b41be863344858bc633bc9c25835c4c64e") diff --git a/var/spack/repos/builtin/packages/py-gimmik/package.py b/var/spack/repos/builtin/packages/py-gimmik/package.py index 847d05710f..075c6bc160 100644 --- a/var/spack/repos/builtin/packages/py-gimmik/package.py +++ b/var/spack/repos/builtin/packages/py-gimmik/package.py @@ -17,10 +17,12 @@ class PyGimmik(PythonPackage): maintainers = ["MichaelLaufer"] + version("3.0", sha256="45c2da7acff3201b7796ba731e4be7f3b4f39469ff1f1bc0ddf4f19c4a6af010") version("2.3", sha256="c019c85316bcf0d5e84de9b7d10127355dfe8037c0e37f1880a9819ce92b74e1") version("2.2", sha256="9144640f94aab92f9c5dfcaf16885a79428ab97337cf503a4b2dddeb870f3cf0") - depends_on("python@3.8:", type=("build", "run")) + depends_on("python@3.8", when="@:2.3", type=("build", "run")) + depends_on("python@3.9:", when="@3.0:", type=("build", "run")) depends_on("py-setuptools", type="build") depends_on("py-numpy@1.7:", type=("build", "run")) depends_on("py-mako", type=("build", "run")) diff --git a/var/spack/repos/builtin/packages/py-pyfr/package.py b/var/spack/repos/builtin/packages/py-pyfr/package.py index e9d6c39c81..3e1d094c21 100644 --- a/var/spack/repos/builtin/packages/py-pyfr/package.py +++ b/var/spack/repos/builtin/packages/py-pyfr/package.py @@ -7,7 +7,7 @@ from spack.package import * -class PyPyfr(PythonPackage): +class PyPyfr(PythonPackage, CudaPackage, ROCmPackage): """PyFR is an open-source Python based framework for solving advection-diffusion type problems on streaming architectures using the Flux Reconstruction approach of Huynh.""" @@ -22,6 +22,10 @@ class PyPyfr(PythonPackage): version("master", branch="master") # pypi releases + version( + "1.15.0", + sha256="6a634b9d32447f45d3c24c9de0ed620a0a0a781be7cc5e57b1c1bf44a4650d8d", + ) version( "1.14.0", sha256="ebf40ce0896cce9ac802e03fd9430b5be30ea837c31224531a6d5fd68f820766", @@ -41,8 +45,8 @@ class PyPyfr(PythonPackage): # Required dependencies depends_on("python@3.9:", type=("build", "run")) depends_on("py-setuptools", type="build") - depends_on("py-gimmik@2.2:2", type=("build", "run")) - depends_on("py-gimmik@2.3:2", when="@1.14.0:", type=("build", "run")) + depends_on("py-gimmik@2.3:2", when="@:1.14.0", type=("build", "run")) + depends_on("py-gimmik@3", when="@1.15.0:", type=("build", "run")) depends_on("py-h5py@2.10:", type=("build", "run")) depends_on("py-mako@1.0.0:", type=("build", "run")) depends_on("py-mpi4py@3.1.0:", type=("build", "run")) @@ -52,7 +56,21 @@ class PyPyfr(PythonPackage): # Optional dependencies depends_on("py-scipy", when="+scipy", type=("build", "run")) + depends_on("metis@5.0:", when="+metis", type=("run")) depends_on("scotch@6.0:", when="+scotch", type=("run")) - depends_on("cuda@8.0:", when="+cuda", type=("run")) - depends_on("rocblas@4.5.0:", when="+hip", type=("run")) - depends_on("libxsmm@1.18:+shared blas=0 +large_jit_buffer", when="+libxsmm", type=("run")) + depends_on("cuda@8.0: +allow-unsupported-compilers", when="@:1.14.0 +cuda", type=("run")) + depends_on("cuda@11.4.0: +allow-unsupported-compilers", when="@1.15.0: +cuda", type=("run")) + depends_on("rocblas@5.2.0:", when="+hip", type=("run")) + depends_on("libxsmm@1.18:+shared blas=0", when="+libxsmm", type=("run")) + + # Conflicts for compilers not supporting OpenMP 5.1+ from v1.15.0: + conflicts("%gcc@:11", when="@1.15.0: +libxsmm", msg="OpenMP 5.1+ supported compiler required!") + + # Explicitly add dependencies to PYFR_LIBRARY_PATH environment variable + def setup_run_environment(self, env): + deps = ["metis", "scotch", "libxsmm", "cuda", "hip", "rocblas"] + pyfr_library_path = [] + for dep in deps: + if "+{}".format(dep) in self.spec: + pyfr_library_path.extend(self.spec[dep].libs.directories) + env.set("PYFR_LIBRARY_PATH", ":".join(pyfr_library_path)) -- cgit v1.2.3-70-g09d2