From 97550777cb1ab2cc95840d70be67e61372f41b96 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:33:48 +0100 Subject: [PATCH 01/71] add ghex package and ci workflow --- .github/workflows/ghex.yml | 31 ++++++++++++++++++ README.md | 1 + packages/ghex/package.py | 66 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 .github/workflows/ghex.yml create mode 100644 packages/ghex/package.py diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml new file mode 100644 index 0000000..a28bb86 --- /dev/null +++ b/.github/workflows/ghex.yml @@ -0,0 +1,31 @@ +name: test-ghex + +on: + push: + pull_request: + branches: + - main + +jobs: + spack-install: + runs-on: ubuntu-latest + container: boeschf/ghex-org + defaults: + run: + shell: bash + steps: + - name: checkout + uses: actions/checkout@v3 + # export OpenMPI environment variables: allow to run as root + - name: set env + run: | + echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV + echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV + - name: build and test + run: | + . /opt/spack/share/spack/setup-env-clean.sh + spack repo add . + spack spec -I ghex + # need `--dirty` here for environment variables to propagate + spack install --dirty --test=root --verbose --show-log-on-error ghex + diff --git a/README.md b/README.md index 0c7f1e5..ecbf0f7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ [![License](https://img.shields.io/badge/License-BSD%203--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause) [![Test: hwmalloc](https://github.com/ghex-org/spack-repos/actions/workflows/hwmalloc.yml/badge.svg)](https://github.com/ghex-org/spack-repos/actions/workflows/hwmalloc.yml) [![Test: oomph](https://github.com/ghex-org/spack-repos/actions/workflows/oomph.yml/badge.svg)](https://github.com/ghex-org/spack-repos/actions/workflows/oomph.yml) +[![Test: ghex](https://github.com/ghex-org/spack-repos/actions/workflows/ghex.yml/badge.svg)](https://github.com/ghex-org/spack-repos/actions/workflows/ghex.yml) # spack-repos Spack packages for ghex-org repositories diff --git a/packages/ghex/package.py b/packages/ghex/package.py new file mode 100644 index 0000000..ffe6932 --- /dev/null +++ b/packages/ghex/package.py @@ -0,0 +1,66 @@ +from spack.package import * + +class Ghex(CMakePackage, CudaPackage, ROCmPackage): + """"GHEX is a generic halo-exchange library.""" + + homepage="https://github.com/ghex-org/GHEX" + url = "https://github.com/ghex-org/GHEX/archive/refs/tags/v0.3.0.tar.gz" + + git = "https://github.com/ghex-org/GHEX.git" + maintainers = ["boeschf"] + + version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564") + version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c") + # for dev-build + version("develop") + + variant("xpmem", default=False, description="Use xpmem shared memory") + variant("python", default=True, description="Build Python bindings") + + depends_on("cmake@3.21:") + depends_on("mpi") + depends_on("boost") + depends_on("googletest", type=("build", "test")) + + depends_on("oomph") + depends_on("oomph+cuda", when="+cuda") + depends_on("oomph+rocm", when="+rocm") + depends_on("oomph@0.3:", when="@0.3:") + + extends("python", when="+python") + depends_on("python@3.7:", when="+python", type="build") + depends_on("py-pip", when="+python", type="build") + depends_on("py-pybind11", when="+python", type="build") + depends_on("py-mpi4py", when="+python", type=("build", "run")) + depends_on("py-numpy", when="+python", type=("build", "run")) + depends_on("py-pytest", when="+python", type=("test")) + + def cmake_args(self): + spec = self.spec + + if spec["oomph"].satisfies("backend=ucx", False): + backend = "UCX" + elif spec["oomph"].satisfies("backend=libfabric", False): + backend = "LIBFABRIC" + else: + backend = "MPI" + + pyexe = spec["python"].command.path + + args = [ + self.define("GHEX_USE_BUNDLED_LIBS", True), + self.define("GHEX_USE_BUNDLED_GRIDTOOLS", True), + self.define("GHEX_USE_BUNDLED_OOMPH", False), + self.define("GHEX_USE_BUNDLED_GTEST", False), + self.define("GHEX_TRANSPORT_BACKEND", backend), + self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), + self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), + self.define("GHEX_PYTHON_LIB_PATH", python_platlib), + self.define("GHEX_WITH_TESTING", self.run_tests), + ] + + if self.run_tests: + args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") + + return args + From 0d4d4f2aa8e9faf79c2d924b6df53529c3fc62ff Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:41:48 +0100 Subject: [PATCH 02/71] with submodules --- packages/ghex/package.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index ffe6932..fec4b8c 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -9,8 +9,8 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ghex-org/GHEX.git" maintainers = ["boeschf"] - version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564") - version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c") + version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564", submodules=True) + version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c", submodules=True) # for dev-build version("develop") From 67db6283a40ebd78c08b945fd73e7d83e16af055 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 20 Mar 2024 18:51:40 +0100 Subject: [PATCH 03/71] use git --- packages/ghex/package.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index fec4b8c..24af17f 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -9,8 +9,10 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ghex-org/GHEX.git" maintainers = ["boeschf"] - version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564", submodules=True) - version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c", submodules=True) + #version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564", submodules=True) + #version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c", submodules=True) + version("0.4.0", tag="v0.4.0", submodules=True) + version("0.3.0", tag="v0.3.0", submodules=True) # for dev-build version("develop") From 8041127169b37953adbaa3e3425cb7813fa15d49 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Thu, 21 Mar 2024 13:48:49 +0100 Subject: [PATCH 04/71] xpmem dependency --- packages/ghex/package.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 24af17f..50147e9 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -9,8 +9,6 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ghex-org/GHEX.git" maintainers = ["boeschf"] - #version("0.4.0", sha256="a549c3d9d033c1bf7ee3a6f283cdd086192fd02eea0489eb8728df5acfc56564", submodules=True) - #version("0.3.0", sha256="2629b40ac947817886cc5f06bc594abd47352e09cd756a358db35c03c7579a1c", submodules=True) version("0.4.0", tag="v0.4.0", submodules=True) version("0.3.0", tag="v0.3.0", submodules=True) # for dev-build @@ -23,6 +21,7 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("boost") depends_on("googletest", type=("build", "test")) + depends_on("xpmem", when="+xpmem", type=("build", "run")) depends_on("oomph") depends_on("oomph+cuda", when="+cuda") From 8bb2c2b77cfc66c5cb78ea782d29d275fd33e59e Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Thu, 21 Mar 2024 23:54:41 +0100 Subject: [PATCH 05/71] enable oversubscribe for testing --- packages/ghex/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 50147e9..da75fd1 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -58,6 +58,7 @@ def cmake_args(self): self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), self.define("GHEX_PYTHON_LIB_PATH", python_platlib), self.define("GHEX_WITH_TESTING", self.run_tests), + self.define("MPIEXEC_PREFLAGS", "--oversubscribe"), ] if self.run_tests: From d0e9b92d0f6140c80e1615a06e9a50d3e48ece83 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Fri, 22 Mar 2024 14:33:14 +0100 Subject: [PATCH 06/71] pytest as build dependency --- packages/ghex/package.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index da75fd1..cd41073 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -34,7 +34,9 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("py-pybind11", when="+python", type="build") depends_on("py-mpi4py", when="+python", type=("build", "run")) depends_on("py-numpy", when="+python", type=("build", "run")) - depends_on("py-pytest", when="+python", type=("test")) + + #depends_on("py-pytest", when="+python", type=("test")) + depends_on("py-pytest", when="+python", type=("build","run")) def cmake_args(self): spec = self.spec From 39e8221a9c523c79cd3dff725c5f011a28678d93 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 14:16:05 +0100 Subject: [PATCH 07/71] googletest as test dependency --- packages/ghex/package.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index cd41073..c38b81a 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -20,8 +20,8 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("cmake@3.21:") depends_on("mpi") depends_on("boost") - depends_on("googletest", type=("build", "test")) depends_on("xpmem", when="+xpmem", type=("build", "run")) + depends_on("googletest", type="test") depends_on("oomph") depends_on("oomph+cuda", when="+cuda") @@ -35,8 +35,7 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("py-mpi4py", when="+python", type=("build", "run")) depends_on("py-numpy", when="+python", type=("build", "run")) - #depends_on("py-pytest", when="+python", type=("test")) - depends_on("py-pytest", when="+python", type=("build","run")) + depends_on("py-pytest", when="+python", type=("test")) def cmake_args(self): spec = self.spec From bbb83386b82a3355aa2a0609374d108fdb43ffbd Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:01:24 +0100 Subject: [PATCH 08/71] needs boost with thread --- packages/oomph/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 5155764..6c5643b 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -50,7 +50,7 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): depends_on("libfabric fabrics=verbs", when="libfabric-provider=verbs") depends_on("mpi") - depends_on("boost") + depends_on("boost+thread") depends_on("googletest", type="test") From 6c8ff8ea99aead28c1e520b0c0217b5957af5f7f Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 15:11:39 +0100 Subject: [PATCH 09/71] sockets --- packages/oomph/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 6c5643b..0c30f74 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -41,7 +41,7 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): depends_on("pmix", when="+use-pmix") with when("backend=libfabric"): - variant("libfabric-provider", default="tcp", description="fabric", values=("cxi", "gni", "psm2", "sockets", "tcp", "verbs"), multi=False) + variant("libfabric-provider", default="sockets", description="fabric", values=("cxi", "gni", "psm2", "sockets", "tcp", "verbs"), multi=False) depends_on("libfabric fabrics=cxi", when="libfabric-provider=cxi") depends_on("libfabric fabrics=gni", when="libfabric-provider=gni") depends_on("libfabric fabrics=psm2", when="libfabric-provider=psm2") From 65a85bc22ad2c7f193dc81af88ac1aa7fcc9cad9 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:36:43 +0100 Subject: [PATCH 10/71] thread multiple --- packages/oomph/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 0c30f74..d2df30e 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -31,9 +31,10 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): depends_on("hwmalloc", when="~cuda~rocm") with when("backend=ucx"): + depends_on("ucx+thread_multiple") depends_on("ucx+cuda", when="+cuda") depends_on("ucx+rocm", when="+rocm") - depends_on("ucx", when="~cuda~rocm") + #depends_on("ucx", when="~cuda~rocm") variant("use-pmix", default="False", description="Use PMIx to establisch out-of-band setup") variant("use-spin-lock", default="False", From 83e389511cc6cb6f3b531d4d334a56cfa3612d31 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:40:30 +0100 Subject: [PATCH 11/71] transport backend as variant in ghex --- packages/ghex/package.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index c38b81a..c80e9c7 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -14,6 +14,9 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): # for dev-build version("develop") + variant( + "backend", default="mpi", description="Transport backend", + values=("mpi", "ucx", "libfabric"), multi=False) variant("xpmem", default=False, description="Use xpmem shared memory") variant("python", default=True, description="Build Python bindings") @@ -23,7 +26,9 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("xpmem", when="+xpmem", type=("build", "run")) depends_on("googletest", type="test") - depends_on("oomph") + depends_on("oomph backend=mpi", when("backend=mpi") + depends_on("oomph backend=ucx", when("backend=ucx") + depends_on("oomph backend=libfabric", when("backend=libfabric") depends_on("oomph+cuda", when="+cuda") depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") @@ -40,12 +45,12 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): def cmake_args(self): spec = self.spec - if spec["oomph"].satisfies("backend=ucx", False): - backend = "UCX" - elif spec["oomph"].satisfies("backend=libfabric", False): - backend = "LIBFABRIC" - else: - backend = "MPI" + #if spec["oomph"].satisfies("backend=ucx", False): + # backend = "UCX" + #elif spec["oomph"].satisfies("backend=libfabric", False): + # backend = "LIBFABRIC" + #else: + # backend = "MPI" pyexe = spec["python"].command.path From 11c5e819d79a390679c9c4dd8778905ce68bb036 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:43:10 +0100 Subject: [PATCH 12/71] typo --- packages/ghex/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index c80e9c7..5abebbe 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -26,9 +26,9 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("xpmem", when="+xpmem", type=("build", "run")) depends_on("googletest", type="test") - depends_on("oomph backend=mpi", when("backend=mpi") - depends_on("oomph backend=ucx", when("backend=ucx") - depends_on("oomph backend=libfabric", when("backend=libfabric") + depends_on("oomph backend=mpi", when("backend=mpi")) + depends_on("oomph backend=ucx", when("backend=ucx")) + depends_on("oomph backend=libfabric", when("backend=libfabric")) depends_on("oomph+cuda", when="+cuda") depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") From d1cbdcb8e232f218b03ea1c44f2f2486de8bc6f0 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:51:02 +0100 Subject: [PATCH 13/71] when syntax --- packages/ghex/package.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 5abebbe..e5bcc59 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -26,9 +26,10 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("xpmem", when="+xpmem", type=("build", "run")) depends_on("googletest", type="test") - depends_on("oomph backend=mpi", when("backend=mpi")) - depends_on("oomph backend=ucx", when("backend=ucx")) - depends_on("oomph backend=libfabric", when("backend=libfabric")) + depends_on("oomph") + depends_on("oomph backend=mpi", when="backend=mpi") + depends_on("oomph backend=ucx", when="backend=ucx") + depends_on("oomph backend=libfabric", when="backend=libfabric") depends_on("oomph+cuda", when="+cuda") depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") From 0389c6c184e56168da4da79a10b3ab9059a5b7ee Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 16:57:27 +0100 Subject: [PATCH 14/71] pass backend to cmake --- packages/ghex/package.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index e5bcc59..9cc33ab 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -46,12 +46,12 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): def cmake_args(self): spec = self.spec - #if spec["oomph"].satisfies("backend=ucx", False): - # backend = "UCX" - #elif spec["oomph"].satisfies("backend=libfabric", False): - # backend = "LIBFABRIC" - #else: - # backend = "MPI" + if spec["oomph"].satisfies("backend=ucx", False): + backend = "UCX" + elif spec["oomph"].satisfies("backend=libfabric", False): + backend = "LIBFABRIC" + else: + backend = "MPI" pyexe = spec["python"].command.path From e80e2a54b4b4f09f5d1a02c6acb6f622a0e6cbdd Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 25 Mar 2024 17:49:02 +0100 Subject: [PATCH 15/71] cuda/hip archs --- packages/ghex/package.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 9cc33ab..c4d9bd1 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -71,5 +71,13 @@ def cmake_args(self): if self.run_tests: args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") + if "+cuda" in spec and spec.variants["cuda_arch"].value != "none": + arch_str = ";".join(spec.variants["cuda_arch"].value) + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) + + if "+rocm" in spec and spec.variants["amdgpu_target"].value != "none": + arch_str = ";".join(spec.variants["amdgpu_target"].value) + args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) + return args From 7830a7f92ba73a4f62020362ae1cd65489d7303b Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:10:16 +0100 Subject: [PATCH 16/71] Cosmetic and formatting changes to ghex spack package --- packages/ghex/package.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index c4d9bd1..32ef9f2 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -1,11 +1,11 @@ from spack.package import * + class Ghex(CMakePackage, CudaPackage, ROCmPackage): - """"GHEX is a generic halo-exchange library.""" + """GHEX is a generic halo-exchange library.""" - homepage="https://github.com/ghex-org/GHEX" + homepage = "https://github.com/ghex-org/GHEX" url = "https://github.com/ghex-org/GHEX/archive/refs/tags/v0.3.0.tar.gz" - git = "https://github.com/ghex-org/GHEX.git" maintainers = ["boeschf"] @@ -80,4 +80,3 @@ def cmake_args(self): args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) return args - From 3897dcde6dc8fd355da2090c177486004182e132 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:10:36 +0100 Subject: [PATCH 17/71] Add 0.4.1 to ghex spack package --- packages/ghex/package.py | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 32ef9f2..cf6d3ff 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -9,6 +9,7 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ghex-org/GHEX.git" maintainers = ["boeschf"] + version("0.4.1", tag="v0.4.1", submodules=True) version("0.4.0", tag="v0.4.0", submodules=True) version("0.3.0", tag="v0.3.0", submodules=True) # for dev-build From da7e7b6e14cf86a4d47e3931e0d98f05a60f5750 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:10:48 +0100 Subject: [PATCH 18/71] Add master branch version, remove develop in ghex package --- packages/ghex/package.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index cf6d3ff..02b73b4 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -12,8 +12,7 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): version("0.4.1", tag="v0.4.1", submodules=True) version("0.4.0", tag="v0.4.0", submodules=True) version("0.3.0", tag="v0.3.0", submodules=True) - # for dev-build - version("develop") + version("master", branch="master", submodules=True) variant( "backend", default="mpi", description="Transport backend", From 0753dd22c34eb194ab6f2f6cdfcf8fc0087bae4b Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:12:56 +0100 Subject: [PATCH 19/71] Move available backends into variable in ghex package --- packages/ghex/package.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 02b73b4..8042e07 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -14,9 +14,10 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): version("0.3.0", tag="v0.3.0", submodules=True) version("master", branch="master", submodules=True) + backends = ("mpi", "ucx", "libfabric") variant( - "backend", default="mpi", description="Transport backend", - values=("mpi", "ucx", "libfabric"), multi=False) + "backend", default="mpi", description="Transport backend", values=backends, multi=False + ) variant("xpmem", default=False, description="Use xpmem shared memory") variant("python", default=True, description="Build Python bindings") @@ -27,9 +28,8 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("googletest", type="test") depends_on("oomph") - depends_on("oomph backend=mpi", when="backend=mpi") - depends_on("oomph backend=ucx", when="backend=ucx") - depends_on("oomph backend=libfabric", when="backend=libfabric") + for backend in backends: + depends_on(f"oomph backend={backend}", when=f"backend={backend}") depends_on("oomph+cuda", when="+cuda") depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") @@ -46,13 +46,6 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): def cmake_args(self): spec = self.spec - if spec["oomph"].satisfies("backend=ucx", False): - backend = "UCX" - elif spec["oomph"].satisfies("backend=libfabric", False): - backend = "LIBFABRIC" - else: - backend = "MPI" - pyexe = spec["python"].command.path args = [ @@ -60,7 +53,7 @@ def cmake_args(self): self.define("GHEX_USE_BUNDLED_GRIDTOOLS", True), self.define("GHEX_USE_BUNDLED_OOMPH", False), self.define("GHEX_USE_BUNDLED_GTEST", False), - self.define("GHEX_TRANSPORT_BACKEND", backend), + self.define("GHEX_TRANSPORT_BACKEND", spec.variants["backend"].value.upper()), self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), self.define("GHEX_PYTHON_LIB_PATH", python_platlib), From 7ef7a54cd2f642ec8125cfce6dd7e9768d083463 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:14:43 +0100 Subject: [PATCH 20/71] Make cmake build dependency in ghex package --- packages/ghex/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 8042e07..adf14e2 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -21,7 +21,7 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): variant("xpmem", default=False, description="Use xpmem shared memory") variant("python", default=True, description="Build Python bindings") - depends_on("cmake@3.21:") + depends_on("cmake@3.21:", type="build") depends_on("mpi") depends_on("boost") depends_on("xpmem", when="+xpmem", type=("build", "run")) From baba67ca19cd8827fcf6ecbb69e886d3e794dcfc Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:17:00 +0100 Subject: [PATCH 21/71] Move python dependencies into with when("+python") block in ghex package, other cleanup of python support --- packages/ghex/package.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index adf14e2..acd4262 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -34,20 +34,19 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") - extends("python", when="+python") - depends_on("python@3.7:", when="+python", type="build") - depends_on("py-pip", when="+python", type="build") - depends_on("py-pybind11", when="+python", type="build") - depends_on("py-mpi4py", when="+python", type=("build", "run")) - depends_on("py-numpy", when="+python", type=("build", "run")) + with when("+python"): + extends("python") + depends_on("python@3.7:", type="build") + depends_on("py-pip", type="build") + depends_on("py-pybind11", type="build") + depends_on("py-mpi4py", type=("build", "run")) + depends_on("py-numpy", type=("build", "run")) - depends_on("py-pytest", when="+python", type=("test")) + depends_on("py-pytest", when="+python", type=("test")) def cmake_args(self): spec = self.spec - pyexe = spec["python"].command.path - args = [ self.define("GHEX_USE_BUNDLED_LIBS", True), self.define("GHEX_USE_BUNDLED_GRIDTOOLS", True), @@ -56,11 +55,13 @@ def cmake_args(self): self.define("GHEX_TRANSPORT_BACKEND", spec.variants["backend"].value.upper()), self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), - self.define("GHEX_PYTHON_LIB_PATH", python_platlib), self.define("GHEX_WITH_TESTING", self.run_tests), self.define("MPIEXEC_PREFLAGS", "--oversubscribe"), ] + if self.spec.satisfies("+python"): + args.append(self.define("GHEX_PYTHON_LIB_PATH", python_platlib)) + if self.run_tests: args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") From 6f4d27491bc580ab2c664f3e714620d0cb5bfa62 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:17:31 +0100 Subject: [PATCH 22/71] Explicitly set GHEX_GPU_TYPE in ghex package --- packages/ghex/package.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index acd4262..89192e1 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -68,9 +68,16 @@ def cmake_args(self): if "+cuda" in spec and spec.variants["cuda_arch"].value != "none": arch_str = ";".join(spec.variants["cuda_arch"].value) args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) + args.append(self.define("GHEX_USE_GPU", True)) + args.append(self.define("GHEX_GPU_TYPE", "CUDA")) if "+rocm" in spec and spec.variants["amdgpu_target"].value != "none": arch_str = ";".join(spec.variants["amdgpu_target"].value) args.append(self.define("CMAKE_HIP_ARCHITECTURES", arch_str)) + args.append(self.define("GHEX_USE_GPU", True)) + args.append(self.define("GHEX_GPU_TYPE", "AMD")) + + if self.spec.satisfies("~cuda~rocm"): + args.append(self.define("GHEX_USE_GPU", False)) return args From 7e315ed236bda527914282724c0b8728a7e49a5f Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:19:30 +0100 Subject: [PATCH 23/71] Disallow +rocm and +cuda at the same time in ghex package --- packages/ghex/package.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 89192e1..1dacbc0 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -34,6 +34,8 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("oomph+rocm", when="+rocm") depends_on("oomph@0.3:", when="@0.3:") + conflicts("+cuda+rocm") + with when("+python"): extends("python") depends_on("python@3.7:", type="build") From 7e62b197e83f0c5adc6613354923081d5e4044ba Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:20:02 +0100 Subject: [PATCH 24/71] Only set --oversubscribe flag when using openmpi for tests in ghex package --- packages/ghex/package.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 1dacbc0..35989e7 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -58,13 +58,12 @@ def cmake_args(self): self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), self.define("GHEX_WITH_TESTING", self.run_tests), - self.define("MPIEXEC_PREFLAGS", "--oversubscribe"), ] if self.spec.satisfies("+python"): args.append(self.define("GHEX_PYTHON_LIB_PATH", python_platlib)) - if self.run_tests: + if self.run_tests and self.spec.satisfies("^openmpi"): args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") if "+cuda" in spec and spec.variants["cuda_arch"].value != "none": From fc8346b588358fa98f9e5cdf6389286e0a679c44 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 15:20:50 +0100 Subject: [PATCH 25/71] Use bundled googletest for ghex in spack package Can use external googletest, but this requires depending on googletest as a "build" dependency as well, which makes it a required dependency. Using the bundled googletest allows using it only when required. --- packages/ghex/package.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 35989e7..a05b6b2 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -25,7 +25,6 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("boost") depends_on("xpmem", when="+xpmem", type=("build", "run")) - depends_on("googletest", type="test") depends_on("oomph") for backend in backends: @@ -52,8 +51,8 @@ def cmake_args(self): args = [ self.define("GHEX_USE_BUNDLED_LIBS", True), self.define("GHEX_USE_BUNDLED_GRIDTOOLS", True), + self.define("GHEX_USE_BUNDLED_GTEST", self.run_tests), self.define("GHEX_USE_BUNDLED_OOMPH", False), - self.define("GHEX_USE_BUNDLED_GTEST", False), self.define("GHEX_TRANSPORT_BACKEND", spec.variants["backend"].value.upper()), self.define_from_variant("GHEX_USE_XPMEM", "xpmem"), self.define_from_variant("GHEX_BUILD_PYTHON_BINDINGS", "python"), From 2865f763dfdf69ca1684cd8cc05d47645d92cbff Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 16:20:21 +0100 Subject: [PATCH 26/71] Use define for MPIEXEC_PREFLAGS in ghex package --- packages/ghex/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index a05b6b2..3a40f1c 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -63,7 +63,7 @@ def cmake_args(self): args.append(self.define("GHEX_PYTHON_LIB_PATH", python_platlib)) if self.run_tests and self.spec.satisfies("^openmpi"): - args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") + args.append(self.define("MPIEXEC_PREFLAGS", "--oversubscribe")) if "+cuda" in spec and spec.variants["cuda_arch"].value != "none": arch_str = ";".join(spec.variants["cuda_arch"].value) From f88bdf66f3667c1cc337334e8cba53fa6bbaf540 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 16:21:45 +0100 Subject: [PATCH 27/71] Format and tidy up oomph package --- packages/oomph/package.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index d2df30e..9c21bb4 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -1,9 +1,10 @@ from spack.package import * + class Oomph(CMakePackage, CudaPackage, ROCmPackage): - """"Oomph is a non-blocking callback-based point-to-point communication library.""" + """Oomph is a non-blocking callback-based point-to-point communication library.""" - homepage="https://github.com/ghex-org/oomph" + homepage = "https://github.com/ghex-org/oomph" url = "https://github.com/ghex-org/oomph/archive/refs/tags/v0.2.0.tar.gz" git = "https://github.com/ghex-org/oomph.git" maintainers = ["boeschf"] @@ -21,10 +22,20 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): variant("fortran-bindings", default=False, description="Build Fortran bindings") with when("+fortran-bindings"): - variant("fortran-fp", default="float", description="Floating point type", values=("float", "double"), multi=False) + variant( + "fortran-fp", + default="float", + description="Floating point type", + values=("float", "double"), + multi=False, + ) variant("fortran-openmp", default=True, description="Compile with OpenMP") - variant("enable-barrier", default=True, description="Enalbe thread barrier (disable for task based runtime)") + variant( + "enable-barrier", + default=True, + description="Enable thread barrier (disable for task based runtime)", + ) depends_on("hwmalloc+cuda", when="+cuda") depends_on("hwmalloc+rocm", when="+rocm") @@ -34,11 +45,8 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): depends_on("ucx+thread_multiple") depends_on("ucx+cuda", when="+cuda") depends_on("ucx+rocm", when="+rocm") - #depends_on("ucx", when="~cuda~rocm") - variant("use-pmix", default="False", - description="Use PMIx to establisch out-of-band setup") - variant("use-spin-lock", default="False", - description="Use pthread spin locks") + variant("use-pmix", default="False", description="Use PMIx to establish out-of-band setup") + variant("use-spin-lock", default="False", description="Use pthread spin locks") depends_on("pmix", when="+use-pmix") with when("backend=libfabric"): From 815249c34e0b2d9ece09b0b6be1c9dd9514dce9c Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 16:56:43 +0100 Subject: [PATCH 28/71] Clean up variants in oomph package --- packages/oomph/package.py | 67 ++++++++++++++++----------------------- 1 file changed, 28 insertions(+), 39 deletions(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 9c21bb4..5b46a94 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -16,9 +16,10 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): # for dev-build version("develop") + backends = ("mpi", "ucx", "libfabric") variant( - "backend", default="mpi", description="Transport backend", - values=("mpi", "ucx", "libfabric"), multi=False) + "backend", default="mpi", description="Transport backend", values=backends, multi=False + ) variant("fortran-bindings", default=False, description="Build Fortran bindings") with when("+fortran-bindings"): @@ -49,14 +50,17 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): variant("use-spin-lock", default="False", description="Use pthread spin locks") depends_on("pmix", when="+use-pmix") + libfabric_providers = ("cxi", "gni", "psm2", "sockets", "tcp", "verbs") with when("backend=libfabric"): - variant("libfabric-provider", default="sockets", description="fabric", values=("cxi", "gni", "psm2", "sockets", "tcp", "verbs"), multi=False) - depends_on("libfabric fabrics=cxi", when="libfabric-provider=cxi") - depends_on("libfabric fabrics=gni", when="libfabric-provider=gni") - depends_on("libfabric fabrics=psm2", when="libfabric-provider=psm2") - depends_on("libfabric fabrics=sockets", when="libfabric-provider=sockets") - depends_on("libfabric fabrics=tcp", when="libfabric-provider=tcp") - depends_on("libfabric fabrics=verbs", when="libfabric-provider=verbs") + variant( + "libfabric-provider", + default="sockets", + description="fabric", + values=libfabric_providers, + multi=False, + ) + for provider in libfabric_providers: + depends_on(f"libfabric fabrics={provider}", when=f"libfabric-provider={provider}") depends_on("mpi") depends_on("boost+thread") @@ -82,35 +86,20 @@ def cmake_args(self): args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") if self.spec.variants["fortran-bindings"].value == True: - if self.spec.variants["fortran-fp"].value == "float": - args.append("-DOOMPH_FORTRAN_FP=float") - else: - args.append("-DOOMPH_FORTRAN_FP=double") - - if self.spec.variants["backend"].value == "ucx": - args.append("-DOOMPH_WITH_MPI=OFF") - args.append("-DOOMPH_WITH_UCX=ON") - args.append("-DOOMPH_WITH_LIBFABRIC=OFF") - elif self.spec.variants["backend"].value == "libfabric": - args.append("-DOOMPH_WITH_MPI=OFF") - args.append("-DOOMPH_WITH_UCX=OFF") - args.append("-DOOMPH_WITH_LIBFABRIC=ON") - else: - args.append("-DOOMPH_WITH_MPI=ON") - args.append("-DOOMPH_WITH_UCX=OFF") - args.append("-DOOMPH_WITH_LIBFABRIC=OFF") - - if "libfabric-provider=verbs" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=verbs") - elif "libfabric-provider=gni" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=gni") - elif "libfabric-provider=cxi" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=cxi") - elif "libfabric-provider=tcp" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=tcp") - elif "libfabric-provider=sockets" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=sockets") - elif "libfabric-provider=pwm2" in self.spec: - args.append("-DOOMPH_LIBFABRIC_PROVIDER=psm2") + args.append(self.define("OOMPH_FORTRAN_FP", self.spec.variants["fortran-fp"].value)) + + for backend in self.backends: + args.append( + self.define( + f"OOMPH_WITH_{backend.upper()}", self.spec.variants["backend"].value == backend + ) + ) + + if self.spec.satisfies("backend=libfabric"): + args.append( + self.define( + "OOMPH_LIBFABRIC_PROVIDER", self.spec.variants["libfabric-provider"].value + ) + ) return args From 16b92c2584d38a0aa9b9e51f53e5a596cea6b893 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 17:00:14 +0100 Subject: [PATCH 29/71] Remove develop version from oomph package --- packages/oomph/package.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 5b46a94..ef9b356 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -13,9 +13,7 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): version("0.2.0", sha256="135cdb856aa817c053b6af1617869dbcd0ee97d34607e78874dd775ea389434e") version("0.1.0", sha256="0ff36db0a5f30ae1bb02f6db6d411ea72eadd89688c00f76b4e722bd5a9ba90b") version("main", branch="main") - # for dev-build - version("develop") - + backends = ("mpi", "ucx", "libfabric") variant( "backend", default="mpi", description="Transport backend", values=backends, multi=False From 922296cf7ee2986839f1a0611dc39f350f2a808c Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 17:00:26 +0100 Subject: [PATCH 30/71] Update testing dependencies and flags in oomph package --- packages/oomph/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/oomph/package.py b/packages/oomph/package.py index ef9b356..b2ec7df 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -63,7 +63,7 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): depends_on("mpi") depends_on("boost+thread") - depends_on("googletest", type="test") + depends_on("googletest", type=("build","test")) patch("install_0.2.patch", when="@:0.2.0", level=1) patch("install_0.3.patch", when="@0.3.0", level=1) @@ -80,8 +80,8 @@ def cmake_args(self): self.define("OOMPH_USE_BUNDLED_LIBS", False), ] - if self.run_tests: - args.append("-DMPIEXEC_PREFLAGS=--oversubscribe") + if self.run_tests and self.spec.satisfies("^openmpi"): + args.append(self.define("MPIEXEC_PREFLAGS", "--oversubscribe")) if self.spec.variants["fortran-bindings"].value == True: args.append(self.define("OOMPH_FORTRAN_FP", self.spec.variants["fortran-fp"].value)) From 9fa47bb3df68db59efdaf22a33fe463ca87933c5 Mon Sep 17 00:00:00 2001 From: Mikael Simberg Date: Fri, 17 Jan 2025 17:00:55 +0100 Subject: [PATCH 31/71] Tidy up hwmalloc package --- packages/hwmalloc/package.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/hwmalloc/package.py b/packages/hwmalloc/package.py index 8731aa1..f9ef8ba 100644 --- a/packages/hwmalloc/package.py +++ b/packages/hwmalloc/package.py @@ -1,9 +1,10 @@ from spack.package import * + class Hwmalloc(CMakePackage, CudaPackage, ROCmPackage): - """"HWMALLOC is a allocator which supports memory registration for e.g. remote memory access""" + """HWMALLOC is a allocator which supports memory registration for e.g. remote memory access""" - homepage="https://github.com/ghex-org/hwmalloc" + homepage = "https://github.com/ghex-org/hwmalloc" url = "https://github.com/ghex-org/hwmalloc/archive/refs/tags/v0.3.0.tar.gz" git = "https://github.com/ghex-org/hwmalloc.git" maintainers = ["boeschf"] @@ -12,14 +13,16 @@ class Hwmalloc(CMakePackage, CudaPackage, ROCmPackage): version("0.2.0", sha256="734758a390a3258b86307e4aef50a7ca2e5d0e2e579f18aeefcd05397e114419") version("0.1.0", sha256="06e9bfcef0ecce4d19531ccbe03592b502d1281c7a092bc0ff51ca187899b21c") version("master", branch="master") - # for dev-build - version("develop") depends_on("numactl", type=("build", "run")) depends_on("boost", type=("build")) depends_on("cmake@3.19:", type="build") - variant("numa-throws", default=False, description="True if numa_tools may throw during initialization") + variant( + "numa-throws", + default=False, + description="True if numa_tools may throw during initialization", + ) variant("numa-local", default=True, description="Use numa_tools for local node allocations") variant("logging", default=False, description="print logging info to cerr") @@ -34,10 +37,12 @@ def cmake_args(self): ] if "+cuda" in self.spec: - args.append("-DHWMALLOC_ENABLE_DEVICE=ON") - args.append("-DHWMALLOC_DEVICE_RUNTIME=cuda") + args.append(self.define("HWMALLOC_ENABLE_DEVICE", True)) + args.append(self.define("HWMALLOC_DEVICE_RUNTIME", "cuda")) elif "+rocm" in self.spec: - args.append("-DHWMALLOC_ENABLE_DEVICE=ON") - args.append("-DHWMALLOC_DEVICE_RUNTIME=hip") + args.append(self.define("HWMALLOC_ENABLE_DEVICE", True)) + args.append(self.define("HWMALLOC_DEVICE_RUNTIME", "hip")) + else: + args.append(self.define("HWMALLOC_ENABLE_DEVICE", False)) return args From 08eca728c7cda73e1b07188270cafded635e32d8 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:49:31 +0100 Subject: [PATCH 32/71] updated gh actions, and minor changes to packages --- .github/workflows/common.yml | 80 ++++++++++++++++++++++++++++++++++ .github/workflows/ghex.yml | 39 +++++++---------- .github/workflows/hwmalloc.yml | 27 +++++------- .github/workflows/oomph.yml | 36 ++++++--------- packages/ghex/package.py | 4 ++ packages/hwmalloc/package.py | 4 ++ packages/oomph/package.py | 9 +++- 7 files changed, 136 insertions(+), 63 deletions(-) create mode 100644 .github/workflows/common.yml diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml new file mode 100644 index 0000000..65e9aaa --- /dev/null +++ b/.github/workflows/common.yml @@ -0,0 +1,80 @@ +name: common + +on: + workflow_call: + inputs: + package-name: + required: true + type: string + package-version: + required: true + type: string + package-variants: + required: false + type: string + default: '' + test-package: + required: false + type: boolean + default: true + +jobs: + setup-and-test: + runs-on: ubuntu-latest + + defaults: + run: + shell: bash + + strategy: + matrix: + spack-version: ['v0.23.0', 'develop-2025-01-19'] + + env: + REPO_PATH: ghex-org-spack-packages + SPACK_PATH: spack + + #fail-fast: false + + steps: + - name: Install additional Ubuntu packages + run: | + sudo apt-get update -qq + sudo apt-get install -y gfortran libblas-dev + + - name: Checkout repository + uses: actions/checkout@v4 + with: + path: ${{ env.REPO_PATH }} + + - name: Configure ccache + uses: hendrikmuhs/ccache-action@v1.2.11 + with: + key: ${{ matrix.spack-version }} + + - name: Clone Spack and setup environment + run: | + git clone -c feature.manyFiles=true --depth 1 --branch ${{ matrix.spack-version }} https://github.com/spack/spack.git ${{ env.SPACK_PATH }} + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack config --scope site add config:ccache:true + spack compiler find + spack repo add ${{ env.REPO_PATH }} + spack reindex + + - name: Set environment variables + run: | + echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV + echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV + + - name: Build package + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} + spack install --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} + + - name: Test package + if: ${{ inputs.test-package }} + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack test run ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} + diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index a28bb86..acbaeee 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -1,4 +1,4 @@ -name: test-ghex +name: ghex on: push: @@ -7,25 +7,18 @@ on: - main jobs: - spack-install: - runs-on: ubuntu-latest - container: boeschf/ghex-org - defaults: - run: - shell: bash - steps: - - name: checkout - uses: actions/checkout@v3 - # export OpenMPI environment variables: allow to run as root - - name: set env - run: | - echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV - echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV - - name: build and test - run: | - . /opt/spack/share/spack/setup-env-clean.sh - spack repo add . - spack spec -I ghex - # need `--dirty` here for environment variables to propagate - spack install --dirty --test=root --verbose --show-log-on-error ghex - + test-ghex: + uses: ./.github/workflows/common.yml + strategy: + matrix: + package-version: ['0.4.1', 'master'] + backends: ['mpi', 'ucx', 'libfabric'] + python-bindings: [true] + fortran-bindings: [true] + with: + package-name: ghex + package-version: ${{ matrix.package-version }} + package-variants: >- + backends=${{ matrix.backends }} + ${{ matrix.python-bindings == 'true' && '+python-bindings' || '' }} + ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index caeb6c1..48cbf0b 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -1,4 +1,4 @@ -name: test-hwmalloc +name: hwmalloc on: push: @@ -7,18 +7,13 @@ on: - main jobs: - spack-install: - runs-on: ubuntu-latest - container: boeschf/ghex-org - defaults: - run: - shell: bash - steps: - - name: checkout - uses: actions/checkout@v3 - - name: build and test - run: | - . /opt/spack/share/spack/setup-env-clean.sh - spack repo add . - spack spec -I hwmalloc - spack install --test=root --verbose --show-log-on-error hwmalloc + test-hwmalloc: + uses: ./.github/workflows/common.yml + strategy: + matrix: + package-version: ['0.3.0', 'master'] + package-variants: [''] + with: + package-name: hwmalloc + package-version: ${{ matrix.package-version }} + package-variants: ${{ matrix.package-variants }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index bdab4c1..abe8e44 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -1,4 +1,4 @@ -name: test-oomph +name: oomph on: push: @@ -7,24 +7,16 @@ on: - main jobs: - spack-install: - runs-on: ubuntu-latest - container: boeschf/ghex-org - defaults: - run: - shell: bash - steps: - - name: checkout - uses: actions/checkout@v3 - # export OpenMPI environment variables: allow to run as root - - name: set env - run: | - echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV - echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV - - name: build and test - run: | - . /opt/spack/share/spack/setup-env-clean.sh - spack repo add . - spack spec -I oomph - # need `--dirty` here for environment variables to propagate - spack install --dirty --test=root --verbose --show-log-on-error oomph + test-oomph: + uses: ./.github/workflows/common.yml + strategy: + matrix: + package-version: ['0.3.0', 'main'] + backends: ['mpi', 'ucx', 'libfabric'] + fortran-bindings: [true] + with: + package-name: oomph + package-version: ${{ matrix.package-version }} + package-variants: >- + backends=${{ matrix.backends }} + ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} diff --git a/packages/ghex/package.py b/packages/ghex/package.py index 3a40f1c..d2e9cdb 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -14,6 +14,10 @@ class Ghex(CMakePackage, CudaPackage, ROCmPackage): version("0.3.0", tag="v0.3.0", submodules=True) version("master", branch="master", submodules=True) + depends_on("cxx", type="build") + + generator("ninja") + backends = ("mpi", "ucx", "libfabric") variant( "backend", default="mpi", description="Transport backend", values=backends, multi=False diff --git a/packages/hwmalloc/package.py b/packages/hwmalloc/package.py index f9ef8ba..c656dc1 100644 --- a/packages/hwmalloc/package.py +++ b/packages/hwmalloc/package.py @@ -14,6 +14,10 @@ class Hwmalloc(CMakePackage, CudaPackage, ROCmPackage): version("0.1.0", sha256="06e9bfcef0ecce4d19531ccbe03592b502d1281c7a092bc0ff51ca187899b21c") version("master", branch="master") + depends_on("cxx", type="build") + + generator("ninja") + depends_on("numactl", type=("build", "run")) depends_on("boost", type=("build")) depends_on("cmake@3.19:", type="build") diff --git a/packages/oomph/package.py b/packages/oomph/package.py index b2ec7df..2e03881 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -14,6 +14,11 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): version("0.1.0", sha256="0ff36db0a5f30ae1bb02f6db6d411ea72eadd89688c00f76b4e722bd5a9ba90b") version("main", branch="main") + depends_on("cxx", type="build") + depends_on("fortran", type="build", when="+fortran-bindings") + + generator("ninja") + backends = ("mpi", "ucx", "libfabric") variant( "backend", default="mpi", description="Transport backend", values=backends, multi=False @@ -48,11 +53,11 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): variant("use-spin-lock", default="False", description="Use pthread spin locks") depends_on("pmix", when="+use-pmix") - libfabric_providers = ("cxi", "gni", "psm2", "sockets", "tcp", "verbs") + libfabric_providers = ("cxi", "efa", "gni", "psm2", "tcp", "verbs") with when("backend=libfabric"): variant( "libfabric-provider", - default="sockets", + default="tcp", description="fabric", values=libfabric_providers, multi=False, From cc4c9bf57b4dc5da03ded65e16360d94f8efd921 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Tue, 21 Jan 2025 16:56:32 +0100 Subject: [PATCH 33/71] typo: backends -> backend --- .github/workflows/common.yml | 6 +++--- .github/workflows/ghex.yml | 4 ++-- .github/workflows/oomph.yml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 65e9aaa..4a7b780 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -69,12 +69,12 @@ jobs: - name: Build package run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} - spack install --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} + spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + spack install --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - name: Test package if: ${{ inputs.test-package }} run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack test run ${{ inputs.package-name }}@${{ inputs.package-version }}${{ inputs.package-variants }} + spack test run ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index acbaeee..17e01e9 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -12,13 +12,13 @@ jobs: strategy: matrix: package-version: ['0.4.1', 'master'] - backends: ['mpi', 'ucx', 'libfabric'] + backend: ['mpi', 'ucx', 'libfabric'] python-bindings: [true] fortran-bindings: [true] with: package-name: ghex package-version: ${{ matrix.package-version }} package-variants: >- - backends=${{ matrix.backends }} + backend=${{ matrix.backend }} ${{ matrix.python-bindings == 'true' && '+python-bindings' || '' }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index abe8e44..2ea2344 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -12,11 +12,11 @@ jobs: strategy: matrix: package-version: ['0.3.0', 'main'] - backends: ['mpi', 'ucx', 'libfabric'] + backend: ['mpi', 'ucx', 'libfabric'] fortran-bindings: [true] with: package-name: oomph package-version: ${{ matrix.package-version }} package-variants: >- - backends=${{ matrix.backends }} + backend=${{ matrix.backend }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} From 33d348306543b35a988557a2da157a4adb60861f Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 07:40:42 +0100 Subject: [PATCH 34/71] CI: build dependencies first separately --- .github/workflows/common.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 4a7b780..5b81296 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -66,15 +66,15 @@ jobs: echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV - - name: Build package + - name: Build dependencies run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - spack install --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - - name: Test package + - name: Build and test package if: ${{ inputs.test-package }} run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack test run ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + spack install --test=root --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} From 480adcf92dcb53073a355572cded6a2baa6023ab Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 08:13:05 +0100 Subject: [PATCH 35/71] CI: test mpi only --- .github/workflows/ghex.yml | 3 ++- .github/workflows/oomph.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 17e01e9..09532ef 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -12,7 +12,8 @@ jobs: strategy: matrix: package-version: ['0.4.1', 'master'] - backend: ['mpi', 'ucx', 'libfabric'] + #backend: ['mpi', 'ucx', 'libfabric'] + backend: ['mpi'] python-bindings: [true] fortran-bindings: [true] with: diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 2ea2344..180c417 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -12,7 +12,8 @@ jobs: strategy: matrix: package-version: ['0.3.0', 'main'] - backend: ['mpi', 'ucx', 'libfabric'] + #backend: ['mpi', 'ucx', 'libfabric'] + backend: ['mpi'] fortran-bindings: [true] with: package-name: oomph From 0cfdb11870c71c1d37fd3bbe5d36a58a8e3b7111 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:29:25 +0100 Subject: [PATCH 36/71] spack buildcache trial --- .github/workflows/common.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 5b81296..4daf3a6 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -22,6 +22,10 @@ jobs: setup-and-test: runs-on: ubuntu-latest + permissions: + contents: read + packages: write + defaults: run: shell: bash @@ -57,6 +61,18 @@ jobs: git clone -c feature.manyFiles=true --depth 1 --branch ${{ matrix.spack-version }} https://github.com/spack/spack.git ${{ env.SPACK_PATH }} . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh spack config --scope site add config:ccache:true + spack config --scope site add config:install_tree:padded_length:128 + spack config --scope site add packages:all:require:'target=x86_64_v3' + cat < ${{ env.SPACK_PATH }}/etc/spack/mirrors.yaml + mirrors: + ghcr-buildcache: + url: oci://ghcr.io/ghex-org/spack-${{ matrix.spack-version }}-buildcache-${{ env.OS_NAME }}-${{ env.OS_VERSION }} + signed: false + access_pair: + id_variable: GITHUB_USER + secret_variable: GITHUB_TOKEN + EOF + spack compiler find spack repo add ${{ env.REPO_PATH }} spack reindex @@ -72,6 +88,15 @@ jobs: spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Push packages and update index + env: + GITHUB_USER: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + if: ${{ !cancelled() }} + - name: Build and test package if: ${{ inputs.test-package }} run: | From 4fcc870dc6812def3b53d809a7807c1890ef68ae Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:33:25 +0100 Subject: [PATCH 37/71] permissions --- .github/workflows/ghex.yml | 4 ++++ .github/workflows/hwmalloc.yml | 4 ++++ .github/workflows/oomph.yml | 4 ++++ 3 files changed, 12 insertions(+) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 09532ef..80559f3 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -6,6 +6,10 @@ on: branches: - main +permissions: + contents: read + packages: write + jobs: test-ghex: uses: ./.github/workflows/common.yml diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 48cbf0b..7d3e258 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -6,6 +6,10 @@ on: branches: - main +permissions: + contents: read + packages: write + jobs: test-hwmalloc: uses: ./.github/workflows/common.yml diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 180c417..144889a 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -6,6 +6,10 @@ on: branches: - main +permissions: + contents: read + packages: write + jobs: test-oomph: uses: ./.github/workflows/common.yml From 3051684745e08a350aba11849c7b5938075d27d1 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:40:23 +0100 Subject: [PATCH 38/71] OS name --- .github/workflows/common.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 4daf3a6..af401ac 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -41,6 +41,11 @@ jobs: #fail-fast: false steps: + - name: Define OS variables + run: | + echo "OS_NAME=ubuntu" >> $GITHUB_ENV + echo "OS_VERSION=$(lsb_release -rs)" >> $GITHUB_ENV + - name: Install additional Ubuntu packages run: | sudo apt-get update -qq From 58a40e368ec9bd0e402414544b414021c335521b Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 10:22:29 +0100 Subject: [PATCH 39/71] try again --- .github/workflows/common.yml | 15 ++++++++------- .github/workflows/ghex.yml | 1 + .github/workflows/hwmalloc.yml | 3 ++- .github/workflows/oomph.yml | 1 + 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index af401ac..f25d197 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -32,7 +32,8 @@ jobs: strategy: matrix: - spack-version: ['v0.23.0', 'develop-2025-01-19'] + #spack-version: ['v0.23.0', 'develop-2025-01-19'] + spack-version: ['v0.23.0'] env: REPO_PATH: ghex-org-spack-packages @@ -93,6 +94,12 @@ jobs: spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Build and test package + if: ${{ inputs.test-package }} + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack install --test=root --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Push packages and update index env: GITHUB_USER: ${{ github.actor }} @@ -102,9 +109,3 @@ jobs: spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} if: ${{ !cancelled() }} - - name: Build and test package - if: ${{ inputs.test-package }} - run: | - . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack install --test=root --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 80559f3..eb58948 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -11,6 +11,7 @@ permissions: packages: write jobs: + if: false test-ghex: uses: ./.github/workflows/common.yml strategy: diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 7d3e258..bb1bb29 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -15,7 +15,8 @@ jobs: uses: ./.github/workflows/common.yml strategy: matrix: - package-version: ['0.3.0', 'master'] + #package-version: ['0.3.0', 'master'] + package-version: ['master'] package-variants: [''] with: package-name: hwmalloc diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 144889a..8265a74 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -11,6 +11,7 @@ permissions: packages: write jobs: + if: false test-oomph: uses: ./.github/workflows/common.yml strategy: From a2762d6dfe46c6c5a78147649edf1344b42363a0 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:22:31 +0100 Subject: [PATCH 40/71] enable another spack version --- .github/workflows/common.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index f25d197..29ab4c3 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -32,8 +32,7 @@ jobs: strategy: matrix: - #spack-version: ['v0.23.0', 'develop-2025-01-19'] - spack-version: ['v0.23.0'] + spack-version: ['v0.23.0', 'develop-2025-01-19'] env: REPO_PATH: ghex-org-spack-packages From 2a9446812c8c791f993e7664fd9f76428d31f52d Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 12:36:24 +0100 Subject: [PATCH 41/71] actually use buildcache$ --- .github/workflows/common.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 29ab4c3..eb751a6 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -81,6 +81,8 @@ jobs: spack compiler find spack repo add ${{ env.REPO_PATH }} spack reindex + spack buildcache update-index ghcr-buildcache + spack buildcache list - name: Set environment variables run: | From 88da0ae35348a20d03f698a70c3ab9e9c8d6ba88 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:27:15 +0100 Subject: [PATCH 42/71] environment vars --- .github/workflows/common.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index eb751a6..30f15eb 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -62,6 +62,9 @@ jobs: key: ${{ matrix.spack-version }} - name: Clone Spack and setup environment + env: + GITHUB_USER: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git clone -c feature.manyFiles=true --depth 1 --branch ${{ matrix.spack-version }} https://github.com/spack/spack.git ${{ env.SPACK_PATH }} . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh From c9e4f84f57136ec36162c54a5593618bd1b2f8a2 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 15:54:59 +0100 Subject: [PATCH 43/71] no access pair needed? --- .github/workflows/common.yml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 30f15eb..64d06f9 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -22,6 +22,9 @@ jobs: setup-and-test: runs-on: ubuntu-latest + # Ensure this job only runs in the upstream repository + if: ${{ github.repository == 'ghex-org/spack-repos' }} + permissions: contents: read packages: write @@ -38,13 +41,15 @@ jobs: REPO_PATH: ghex-org-spack-packages SPACK_PATH: spack - #fail-fast: false + fail-fast: false steps: - - name: Define OS variables + - name: Set environment variables run: | echo "OS_NAME=ubuntu" >> $GITHUB_ENV echo "OS_VERSION=$(lsb_release -rs)" >> $GITHUB_ENV + echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV + echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV - name: Install additional Ubuntu packages run: | @@ -76,9 +81,6 @@ jobs: ghcr-buildcache: url: oci://ghcr.io/ghex-org/spack-${{ matrix.spack-version }}-buildcache-${{ env.OS_NAME }}-${{ env.OS_VERSION }} signed: false - access_pair: - id_variable: GITHUB_USER - secret_variable: GITHUB_TOKEN EOF spack compiler find @@ -87,11 +89,6 @@ jobs: spack buildcache update-index ghcr-buildcache spack buildcache list - - name: Set environment variables - run: | - echo "OMPI_ALLOW_RUN_AS_ROOT=1" >> $GITHUB_ENV - echo "OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1" >> $GITHUB_ENV - - name: Build dependencies run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh @@ -112,4 +109,5 @@ jobs: . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} if: ${{ !cancelled() }} + continue-on-error: true From 3513515af08962cb2ece29ee7645073808873db8 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:01:06 +0100 Subject: [PATCH 44/71] nope --- .github/workflows/common.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 64d06f9..1386567 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -81,6 +81,9 @@ jobs: ghcr-buildcache: url: oci://ghcr.io/ghex-org/spack-${{ matrix.spack-version }}-buildcache-${{ env.OS_NAME }}-${{ env.OS_VERSION }} signed: false + access_pair: + id_variable: GITHUB_USER + secret_variable: GITHUB_TOKEN EOF spack compiler find From 98ded4611e5677fcaf03450946284e4d4d52fca6 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:14:20 +0100 Subject: [PATCH 45/71] another try wihtout authentication --- .github/workflows/common.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 1386567..7218602 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -81,15 +81,11 @@ jobs: ghcr-buildcache: url: oci://ghcr.io/ghex-org/spack-${{ matrix.spack-version }}-buildcache-${{ env.OS_NAME }}-${{ env.OS_VERSION }} signed: false - access_pair: - id_variable: GITHUB_USER - secret_variable: GITHUB_TOKEN EOF spack compiler find spack repo add ${{ env.REPO_PATH }} spack reindex - spack buildcache update-index ghcr-buildcache spack buildcache list - name: Build dependencies From 415f7524a2b7c9d51857155a44bc4a89fdb44ea9 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:20:49 +0100 Subject: [PATCH 46/71] getting there --- .github/workflows/common.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 7218602..0540234 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -22,9 +22,6 @@ jobs: setup-and-test: runs-on: ubuntu-latest - # Ensure this job only runs in the upstream repository - if: ${{ github.repository == 'ghex-org/spack-repos' }} - permissions: contents: read packages: write @@ -67,9 +64,6 @@ jobs: key: ${{ matrix.spack-version }} - name: Clone Spack and setup environment - env: - GITHUB_USER: ${{ github.actor }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | git clone -c feature.manyFiles=true --depth 1 --branch ${{ matrix.spack-version }} https://github.com/spack/spack.git ${{ env.SPACK_PATH }} . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh @@ -81,6 +75,9 @@ jobs: ghcr-buildcache: url: oci://ghcr.io/ghex-org/spack-${{ matrix.spack-version }}-buildcache-${{ env.OS_NAME }}-${{ env.OS_VERSION }} signed: false + access_pair: + id_variable: GITHUB_USER + secret_variable: GITHUB_TOKEN EOF spack compiler find From 7e7a46431ba3a092edd1e18cefa59df1c0b882f6 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 16:28:22 +0100 Subject: [PATCH 47/71] enable more workflows --- .github/workflows/hwmalloc.yml | 3 +-- .github/workflows/oomph.yml | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index bb1bb29..7d3e258 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -15,8 +15,7 @@ jobs: uses: ./.github/workflows/common.yml strategy: matrix: - #package-version: ['0.3.0', 'master'] - package-version: ['master'] + package-version: ['0.3.0', 'master'] package-variants: [''] with: package-name: hwmalloc diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 8265a74..dab7346 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -11,12 +11,12 @@ permissions: packages: write jobs: - if: false test-oomph: uses: ./.github/workflows/common.yml strategy: matrix: - package-version: ['0.3.0', 'main'] + #package-version: ['0.3.0', 'main'] + package-version: ['main'] #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] fortran-bindings: [true] From 5ba5467edb0d0513252d28c5f4c17b00b69c206a Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Wed, 22 Jan 2025 17:19:18 +0100 Subject: [PATCH 48/71] enable more workflows --- .github/workflows/ghex.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index eb58948..d46d0c3 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -11,12 +11,12 @@ permissions: packages: write jobs: - if: false test-ghex: uses: ./.github/workflows/common.yml strategy: matrix: - package-version: ['0.4.1', 'master'] + #package-version: ['0.4.1', 'master'] + package-version: ['master'] #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] python-bindings: [true] From 8cb508fa3723fa8f0900e41f989a587d9bd28564 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:34:06 +0100 Subject: [PATCH 49/71] enable more jobs --- .github/workflows/oomph.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index dab7346..ec23306 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -18,7 +18,7 @@ jobs: #package-version: ['0.3.0', 'main'] package-version: ['main'] #backend: ['mpi', 'ucx', 'libfabric'] - backend: ['mpi'] + backend: ['mpi', 'ucx'] fortran-bindings: [true] with: package-name: oomph From dc5733be1cad57092d1d9d26e3f1972e793fa877 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Thu, 23 Jan 2025 13:46:23 +0100 Subject: [PATCH 50/71] enable cuda --- .github/workflows/common.yml | 6 ++++++ .github/workflows/oomph.yml | 5 ++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 0540234..65e6f69 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -91,6 +91,12 @@ jobs: spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Build package without testing + if: ${{ !inputs.test-package }} + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack install --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Build and test package if: ${{ inputs.test-package }} run: | diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index ec23306..7e7de4a 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -18,11 +18,14 @@ jobs: #package-version: ['0.3.0', 'main'] package-version: ['main'] #backend: ['mpi', 'ucx', 'libfabric'] - backend: ['mpi', 'ucx'] + backend: ['mpi'] fortran-bindings: [true] + cuda: [true] with: package-name: oomph package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} + ${{ matrix.cuda == 'true' && '+cuda' || '' }} + test-package: ${{ !matrix.cuda }} From 50884ad13d97f52a00f338c8927994e8f5966c3d Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 09:56:37 +0100 Subject: [PATCH 51/71] variants --- .github/workflows/common.yml | 1 + .github/workflows/ghex.yml | 5 +---- .github/workflows/oomph.yml | 5 +---- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 65e6f69..c42ff0d 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -88,6 +88,7 @@ jobs: - name: Build dependencies run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + echo "spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }}" spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index d46d0c3..8185feb 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -24,7 +24,4 @@ jobs: with: package-name: ghex package-version: ${{ matrix.package-version }} - package-variants: >- - backend=${{ matrix.backend }} - ${{ matrix.python-bindings == 'true' && '+python-bindings' || '' }} - ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} + package-variants: backend=${{ matrix.backend }} ${{ matrix.python-bindings == 'true' && '+python-bindings' || '' }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 7e7de4a..f6fb297 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -24,8 +24,5 @@ jobs: with: package-name: oomph package-version: ${{ matrix.package-version }} - package-variants: >- - backend=${{ matrix.backend }} - ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} - ${{ matrix.cuda == 'true' && '+cuda' || '' }} + package-variants: backend=${{ matrix.backend }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} ${{ matrix.cuda == 'true' && '+cuda' || '' }} test-package: ${{ !matrix.cuda }} From a6f2f64f0aa3828e21dc3902d9c9400b8d8cf18a Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:01:44 +0100 Subject: [PATCH 52/71] inline conditional --- .github/workflows/oomph.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index f6fb297..44dc34e 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -24,5 +24,8 @@ jobs: with: package-name: oomph package-version: ${{ matrix.package-version }} - package-variants: backend=${{ matrix.backend }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} ${{ matrix.cuda == 'true' && '+cuda' || '' }} + package-variants: >- + backend=${{ matrix.backend }} + ${{ " +fortran.bindings" if matrix.fortran-bindings else "" }} + ${{ " +cuda" if matrix.cuda else "" }} test-package: ${{ !matrix.cuda }} From 5b3da56bfea15140ddff1ef506e63ee2f8f002db Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:03:41 +0100 Subject: [PATCH 53/71] single quotes --- .github/workflows/oomph.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 44dc34e..af45add 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -26,6 +26,6 @@ jobs: package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} - ${{ " +fortran.bindings" if matrix.fortran-bindings else "" }} - ${{ " +cuda" if matrix.cuda else "" }} + ${{ ' +fortran.bindings' if matrix.fortran-bindings else '' }} + ${{ ' +cuda' if matrix.cuda else '' }} test-package: ${{ !matrix.cuda }} From df2d8567299a78ab6dab106c97cf08a17adfa913 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:07:07 +0100 Subject: [PATCH 54/71] conditional --- .github/workflows/oomph.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index af45add..4185321 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -26,6 +26,6 @@ jobs: package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} - ${{ ' +fortran.bindings' if matrix.fortran-bindings else '' }} - ${{ ' +cuda' if matrix.cuda else '' }} + ${{ matrix.fortran-bindings && '+fortran-bindings' || '' }} + ${{ matrix.cuda && '+cuda' || '' }} test-package: ${{ !matrix.cuda }} From 47e6d02c97e707978a04a39ad576e8541b0f48a3 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:29:50 +0100 Subject: [PATCH 55/71] no fortran bindings for now --- .github/workflows/ghex.yml | 7 +++++-- .github/workflows/oomph.yml | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 8185feb..dc3a0de 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -20,8 +20,11 @@ jobs: #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] python-bindings: [true] - fortran-bindings: [true] + cuda: [false] with: package-name: ghex package-version: ${{ matrix.package-version }} - package-variants: backend=${{ matrix.backend }} ${{ matrix.python-bindings == 'true' && '+python-bindings' || '' }} ${{ matrix.fortran-bindings == 'true' && '+fortran-bindings' || '' }} + package-variants: >- + backend=${{ matrix.backend }} + ${{ matrix.python-bindings && '+python-bindings' || '' }} + test-package: ${{ !matrix.cuda }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 4185321..8728b08 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -19,8 +19,8 @@ jobs: package-version: ['main'] #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] - fortran-bindings: [true] - cuda: [true] + fortran-bindings: [false] + cuda: [false] with: package-name: oomph package-version: ${{ matrix.package-version }} From e2ef404844d9b61d69a7584bf3d9d6b020b73b1f Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:40:41 +0100 Subject: [PATCH 56/71] variants --- .github/workflows/ghex.yml | 2 +- .github/workflows/hwmalloc.yml | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index dc3a0de..90a5dac 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -26,5 +26,5 @@ jobs: package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} - ${{ matrix.python-bindings && '+python-bindings' || '' }} + ${{ matrix.python-bindings && '+python' || '' }} test-package: ${{ !matrix.cuda }} diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 7d3e258..11f1a2f 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -16,8 +16,11 @@ jobs: strategy: matrix: package-version: ['0.3.0', 'master'] - package-variants: [''] + device: ['cpu', 'cuda', 'rocm'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} - package-variants: ${{ matrix.package-variants }} + package-variants: >- + ${{ matrix.device == 'cuda' && '+cuda' || '' }} + ${{ matrix.device == 'rocm' && '+rocm' || '' }} + test-package: ${{ matrix.device == 'cpu' }} From 2d35a479b817927f76cf2b0d9da20e65824ced57 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 10:50:53 +0100 Subject: [PATCH 57/71] variants --- .github/workflows/ghex.yml | 6 ++++-- .github/workflows/hwmalloc.yml | 2 +- .github/workflows/oomph.yml | 7 ++++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 90a5dac..5f6ea5f 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -20,11 +20,13 @@ jobs: #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] python-bindings: [true] - cuda: [false] + device: ['cpu'] with: package-name: ghex package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} ${{ matrix.python-bindings && '+python' || '' }} - test-package: ${{ !matrix.cuda }} + ${{ matrix.device == 'cuda' && '+cuda' || '' }} + ${{ matrix.device == 'rocm' && '+rocm' || '' }} + test-package: ${{ matrix.device == 'cpu' }} diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 11f1a2f..6b5bd04 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -16,7 +16,7 @@ jobs: strategy: matrix: package-version: ['0.3.0', 'master'] - device: ['cpu', 'cuda', 'rocm'] + device: ['cpu', 'cuda'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 8728b08..a294155 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -20,12 +20,13 @@ jobs: #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] fortran-bindings: [false] - cuda: [false] + device: ['cpu'] with: package-name: oomph package-version: ${{ matrix.package-version }} package-variants: >- backend=${{ matrix.backend }} ${{ matrix.fortran-bindings && '+fortran-bindings' || '' }} - ${{ matrix.cuda && '+cuda' || '' }} - test-package: ${{ !matrix.cuda }} + ${{ matrix.device == 'cuda' && '+cuda' || '' }} + ${{ matrix.device == 'rocm' && '+rocm' || '' }} + test-package: ${{ matrix.device == 'cpu' }} From 84e145937950d7c6c6974c8ce8335cf0b9b08c62 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 11:12:52 +0100 Subject: [PATCH 58/71] compiler --- .github/workflows/ghex.yml | 3 +++ .github/workflows/hwmalloc.yml | 4 +++- .github/workflows/oomph.yml | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 5f6ea5f..736de91 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -12,11 +12,13 @@ permissions: jobs: test-ghex: + if: false uses: ./.github/workflows/common.yml strategy: matrix: #package-version: ['0.4.1', 'master'] package-version: ['master'] + compiler: ['gcc@13.3.0'] #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] python-bindings: [true] @@ -25,6 +27,7 @@ jobs: package-name: ghex package-version: ${{ matrix.package-version }} package-variants: >- + %${{ matrix.compiler }} backend=${{ matrix.backend }} ${{ matrix.python-bindings && '+python' || '' }} ${{ matrix.device == 'cuda' && '+cuda' || '' }} diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 6b5bd04..77d5422 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -16,11 +16,13 @@ jobs: strategy: matrix: package-version: ['0.3.0', 'master'] - device: ['cpu', 'cuda'] + compiler: ['gcc@13.3.0'] + device: ['cpu'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} package-variants: >- + %${{ matrix.compiler }} ${{ matrix.device == 'cuda' && '+cuda' || '' }} ${{ matrix.device == 'rocm' && '+rocm' || '' }} test-package: ${{ matrix.device == 'cpu' }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index a294155..b643746 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -12,11 +12,13 @@ permissions: jobs: test-oomph: + if: false uses: ./.github/workflows/common.yml strategy: matrix: #package-version: ['0.3.0', 'main'] package-version: ['main'] + compiler: ['gcc@13.3.0'] #backend: ['mpi', 'ucx', 'libfabric'] backend: ['mpi'] fortran-bindings: [false] @@ -25,6 +27,7 @@ jobs: package-name: oomph package-version: ${{ matrix.package-version }} package-variants: >- + %${{ matrix.compiler }} backend=${{ matrix.backend }} ${{ matrix.fortran-bindings && '+fortran-bindings' || '' }} ${{ matrix.device == 'cuda' && '+cuda' || '' }} From a14d98cc5c59ead56b5d08042e2a76a121bb1e93 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:04:05 +0100 Subject: [PATCH 59/71] cuda --- .github/workflows/hwmalloc.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 77d5422..714eb70 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -17,12 +17,12 @@ jobs: matrix: package-version: ['0.3.0', 'master'] compiler: ['gcc@13.3.0'] - device: ['cpu'] + device: ['cpu', 'cuda'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} package-variants: >- %${{ matrix.compiler }} - ${{ matrix.device == 'cuda' && '+cuda' || '' }} - ${{ matrix.device == 'rocm' && '+rocm' || '' }} + ${{ matrix.device == 'cuda' && '+cuda cuda_arch=90' || '' }} + ${{ matrix.device == 'rocm' && '+rocm amgdgpu_target=gfx942' || '' }} test-package: ${{ matrix.device == 'cpu' }} From 5a610728c3cc987b876520a144363107af0f644f Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:25:24 +0100 Subject: [PATCH 60/71] rocm --- .github/workflows/hwmalloc.yml | 2 +- .github/workflows/oomph.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 714eb70..5fcfbd8 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -17,7 +17,7 @@ jobs: matrix: package-version: ['0.3.0', 'master'] compiler: ['gcc@13.3.0'] - device: ['cpu', 'cuda'] + device: ['cpu', 'cuda', 'rocm'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index b643746..89a22aa 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -30,6 +30,6 @@ jobs: %${{ matrix.compiler }} backend=${{ matrix.backend }} ${{ matrix.fortran-bindings && '+fortran-bindings' || '' }} - ${{ matrix.device == 'cuda' && '+cuda' || '' }} - ${{ matrix.device == 'rocm' && '+rocm' || '' }} + ${{ matrix.device == 'cuda' && '+cuda cuda_arch=90' || '' }} + ${{ matrix.device == 'rocm' && '+rocm amgdgpu_target=gfx942' || '' }} test-package: ${{ matrix.device == 'cpu' }} From 67c88f019f9acb7edbbace862f4be62373fa376a Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:30:46 +0100 Subject: [PATCH 61/71] typo --- .github/workflows/oomph.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 89a22aa..27b89c4 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -31,5 +31,5 @@ jobs: backend=${{ matrix.backend }} ${{ matrix.fortran-bindings && '+fortran-bindings' || '' }} ${{ matrix.device == 'cuda' && '+cuda cuda_arch=90' || '' }} - ${{ matrix.device == 'rocm' && '+rocm amgdgpu_target=gfx942' || '' }} + ${{ matrix.device == 'rocm' && '+rocm amdgpu_target=gfx942' || '' }} test-package: ${{ matrix.device == 'cpu' }} From cab2259783285daa283f8803048059dff792ac7f Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 12:33:41 +0100 Subject: [PATCH 62/71] typo --- .github/workflows/hwmalloc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 5fcfbd8..e57cd89 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -24,5 +24,5 @@ jobs: package-variants: >- %${{ matrix.compiler }} ${{ matrix.device == 'cuda' && '+cuda cuda_arch=90' || '' }} - ${{ matrix.device == 'rocm' && '+rocm amgdgpu_target=gfx942' || '' }} + ${{ matrix.device == 'rocm' && '+rocm amdgpu_target=gfx942' || '' }} test-package: ${{ matrix.device == 'cpu' }} From 4f02e49deec2ef4c8e66eb4d1572d0c4f0597563 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:22:03 +0100 Subject: [PATCH 63/71] earlier push to build cache --- .github/workflows/common.yml | 29 +++++++++++++++++++---------- .github/workflows/hwmalloc.yml | 2 +- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index c42ff0d..4e77ac2 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -92,6 +92,16 @@ jobs: spack spec -I ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} spack install --only dependencies ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + - name: Push packages to buildcache + env: + GITHUB_USER: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + spack --color never find --format '{/hash};' | sed 's/;[[:space:]]*//g' | xargs -I{} spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} ghcr-buildcache {} + if: ${{ !cancelled() }} + continue-on-error: true + - name: Build package without testing if: ${{ !inputs.test-package }} run: | @@ -104,13 +114,12 @@ jobs: . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh spack install --test=root --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - - name: Push packages and update index - env: - GITHUB_USER: ${{ github.actor }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - if: ${{ !cancelled() }} - continue-on-error: true - + #- name: Push packages and update index + # env: + # GITHUB_USER: ${{ github.actor }} + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: | + # . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh + # spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} + # if: ${{ !cancelled() }} + # continue-on-error: true diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index e57cd89..c38c7db 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -17,7 +17,7 @@ jobs: matrix: package-version: ['0.3.0', 'master'] compiler: ['gcc@13.3.0'] - device: ['cpu', 'cuda', 'rocm'] + device: ['cpu', 'cuda'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} From 11fe29a8d5c84d38a35c11e5a06adedad9451aef Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:32:14 +0100 Subject: [PATCH 64/71] buildcache: do not try to push dependent packages --- .github/workflows/common.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 4e77ac2..5015374 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -98,7 +98,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - spack --color never find --format '{/hash};' | sed 's/;[[:space:]]*//g' | xargs -I{} spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} ghcr-buildcache {} + spack --color never find --format '{/hash};' | sed 's/;[[:space:]]*//g' | xargs -I{} spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --only package ghcr-buildcache {} if: ${{ !cancelled() }} continue-on-error: true From 640171ddfcf7e6173aeeb6609027189e7e52ad1a Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 27 Jan 2025 18:49:12 +0100 Subject: [PATCH 65/71] another try with rocm --- .github/workflows/hwmalloc.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index c38c7db..b829910 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -15,14 +15,15 @@ jobs: uses: ./.github/workflows/common.yml strategy: matrix: - package-version: ['0.3.0', 'master'] + #package-version: ['0.3.0', 'master'] + package-version: ['master'] compiler: ['gcc@13.3.0'] - device: ['cpu', 'cuda'] + device: ['cpu', 'cuda', 'rocm'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} package-variants: >- %${{ matrix.compiler }} ${{ matrix.device == 'cuda' && '+cuda cuda_arch=90' || '' }} - ${{ matrix.device == 'rocm' && '+rocm amdgpu_target=gfx942' || '' }} + ${{ matrix.device == 'rocm' && '+rocm amdgpu_target=gfx90a' || '' }} test-package: ${{ matrix.device == 'cpu' }} From 5cdcd8aaef4ee48ccdefad7aba4eebb7dc58aa9c Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Fri, 31 Jan 2025 13:47:24 +0100 Subject: [PATCH 66/71] more workflows --- .github/workflows/ghex.yml | 9 +++------ .github/workflows/hwmalloc.yml | 5 ++--- .github/workflows/oomph.yml | 9 +++------ 3 files changed, 8 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 736de91..2041fc5 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -12,17 +12,14 @@ permissions: jobs: test-ghex: - if: false uses: ./.github/workflows/common.yml strategy: matrix: - #package-version: ['0.4.1', 'master'] - package-version: ['master'] + package-version: ['0.4.1', 'master'] compiler: ['gcc@13.3.0'] - #backend: ['mpi', 'ucx', 'libfabric'] - backend: ['mpi'] + backend: ['mpi', 'ucx'] python-bindings: [true] - device: ['cpu'] + device: ['cpu', 'cuda'] with: package-name: ghex package-version: ${{ matrix.package-version }} diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index b829910..2ed6b8e 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -15,10 +15,9 @@ jobs: uses: ./.github/workflows/common.yml strategy: matrix: - #package-version: ['0.3.0', 'master'] - package-version: ['master'] + package-version: ['0.3.0', 'master'] compiler: ['gcc@13.3.0'] - device: ['cpu', 'cuda', 'rocm'] + device: ['cpu', 'cuda'] with: package-name: hwmalloc package-version: ${{ matrix.package-version }} diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 27b89c4..8499447 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -12,17 +12,14 @@ permissions: jobs: test-oomph: - if: false uses: ./.github/workflows/common.yml strategy: matrix: - #package-version: ['0.3.0', 'main'] - package-version: ['main'] + package-version: ['0.3.0', 'main'] compiler: ['gcc@13.3.0'] - #backend: ['mpi', 'ucx', 'libfabric'] - backend: ['mpi'] + backend: ['mpi', 'ucx'] fortran-bindings: [false] - device: ['cpu'] + device: ['cpu', 'cuda'] with: package-name: oomph package-version: ${{ matrix.package-version }} From 599d9c8c3cf3409637972fe8a9531b19e59ffae5 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Fri, 31 Jan 2025 16:07:15 +0100 Subject: [PATCH 67/71] no gpu for ghex for now --- .github/workflows/ghex.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index 2041fc5..e1b3466 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -19,7 +19,7 @@ jobs: compiler: ['gcc@13.3.0'] backend: ['mpi', 'ucx'] python-bindings: [true] - device: ['cpu', 'cuda'] + device: ['cpu'] with: package-name: ghex package-version: ${{ matrix.package-version }} From 4baecee676eb2423060b06ba787fee737d5b2be5 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Fri, 31 Jan 2025 16:29:53 +0100 Subject: [PATCH 68/71] new oomph version --- .github/workflows/oomph.yml | 7 ++++--- packages/oomph/package.py | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 8499447..7fe23bf 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -15,11 +15,12 @@ jobs: uses: ./.github/workflows/common.yml strategy: matrix: - package-version: ['0.3.0', 'main'] + package-version: ['0.4.0', 'main'] compiler: ['gcc@13.3.0'] - backend: ['mpi', 'ucx'] + backend: ['mpi', 'ucx', 'libfabric'] fortran-bindings: [false] - device: ['cpu', 'cuda'] + #device: ['cpu', 'cuda'] + device: ['cpu'] with: package-name: oomph package-version: ${{ matrix.package-version }} diff --git a/packages/oomph/package.py b/packages/oomph/package.py index 2e03881..3b320f9 100644 --- a/packages/oomph/package.py +++ b/packages/oomph/package.py @@ -9,6 +9,7 @@ class Oomph(CMakePackage, CudaPackage, ROCmPackage): git = "https://github.com/ghex-org/oomph.git" maintainers = ["boeschf"] + version("0.4.0", sha256="e342c872dfe4832be047f172dc55c12951950c79da2630b071c61607ef913144") version("0.3.0", sha256="61e346d1ba28a859745de47f37edce39c7f5c5e1aab716493dc964e158fd99ec") version("0.2.0", sha256="135cdb856aa817c053b6af1617869dbcd0ee97d34607e78874dd775ea389434e") version("0.1.0", sha256="0ff36db0a5f30ae1bb02f6db6d411ea72eadd89688c00f76b4e722bd5a9ba90b") From b88a3dddb5a5886852aaa888373ee80225cb8b7e Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Fri, 31 Jan 2025 16:41:23 +0100 Subject: [PATCH 69/71] no libfabric --- .github/workflows/oomph.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index 7fe23bf..c827291 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -17,10 +17,9 @@ jobs: matrix: package-version: ['0.4.0', 'main'] compiler: ['gcc@13.3.0'] - backend: ['mpi', 'ucx', 'libfabric'] + backend: ['mpi', 'ucx'] fortran-bindings: [false] - #device: ['cpu', 'cuda'] - device: ['cpu'] + device: ['cpu', 'cuda'] with: package-name: oomph package-version: ${{ matrix.package-version }} From fd29ecb5213f6f00bf5a23a95f873a88544ae907 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:29:59 +0100 Subject: [PATCH 70/71] Update packages/ghex/package.py Co-authored-by: Mikael Simberg --- packages/ghex/package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/ghex/package.py b/packages/ghex/package.py index d2e9cdb..fc03b88 100644 --- a/packages/ghex/package.py +++ b/packages/ghex/package.py @@ -63,10 +63,10 @@ def cmake_args(self): self.define("GHEX_WITH_TESTING", self.run_tests), ] - if self.spec.satisfies("+python"): + if spec.satisfies("+python"): args.append(self.define("GHEX_PYTHON_LIB_PATH", python_platlib)) - if self.run_tests and self.spec.satisfies("^openmpi"): + if self.run_tests and spec.satisfies("^openmpi"): args.append(self.define("MPIEXEC_PREFLAGS", "--oversubscribe")) if "+cuda" in spec and spec.variants["cuda_arch"].value != "none": @@ -81,7 +81,7 @@ def cmake_args(self): args.append(self.define("GHEX_USE_GPU", True)) args.append(self.define("GHEX_GPU_TYPE", "AMD")) - if self.spec.satisfies("~cuda~rocm"): + if spec.satisfies("~cuda~rocm"): args.append(self.define("GHEX_USE_GPU", False)) return args From 2952ed558d1be30e243ea3f0983f73bed22ab6b3 Mon Sep 17 00:00:00 2001 From: boeschf <48126478+boeschf@users.noreply.github.com> Date: Mon, 3 Feb 2025 15:30:19 +0100 Subject: [PATCH 71/71] review suggestions --- .github/workflows/common.yml | 10 ---------- .github/workflows/ghex.yml | 2 ++ .github/workflows/hwmalloc.yml | 2 ++ .github/workflows/oomph.yml | 2 ++ 4 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/common.yml b/.github/workflows/common.yml index 5015374..f7953a1 100644 --- a/.github/workflows/common.yml +++ b/.github/workflows/common.yml @@ -113,13 +113,3 @@ jobs: run: | . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh spack install --test=root --verbose --show-log-on-error ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - - #- name: Push packages and update index - # env: - # GITHUB_USER: ${{ github.actor }} - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # run: | - # . ${{ env.SPACK_PATH }}/share/spack/setup-env.sh - # spack buildcache push --base-image ${{ env.OS_NAME }}:${{ env.OS_VERSION }} --update-index --only dependencies ghcr-buildcache ${{ inputs.package-name }}@${{ inputs.package-version }} ${{ inputs.package-variants }} - # if: ${{ !cancelled() }} - # continue-on-error: true diff --git a/.github/workflows/ghex.yml b/.github/workflows/ghex.yml index e1b3466..0833452 100644 --- a/.github/workflows/ghex.yml +++ b/.github/workflows/ghex.yml @@ -5,6 +5,8 @@ on: pull_request: branches: - main + schedule: + - cron: '0 8 * * 1' permissions: contents: read diff --git a/.github/workflows/hwmalloc.yml b/.github/workflows/hwmalloc.yml index 2ed6b8e..fdfcb09 100644 --- a/.github/workflows/hwmalloc.yml +++ b/.github/workflows/hwmalloc.yml @@ -5,6 +5,8 @@ on: pull_request: branches: - main + schedule: + - cron: '0 8 * * 1' permissions: contents: read diff --git a/.github/workflows/oomph.yml b/.github/workflows/oomph.yml index c827291..b3e56df 100644 --- a/.github/workflows/oomph.yml +++ b/.github/workflows/oomph.yml @@ -5,6 +5,8 @@ on: pull_request: branches: - main + schedule: + - cron: '0 8 * * 1' permissions: contents: read