From e2809fd293bfb15d437692b1683ec77b2fe337fe Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Wed, 19 Aug 2026 15:32:21 -0400 Subject: [PATCH 01/22] Update PETSc dependency to 3.25 for ExaGO package in Spack repo. --- buildsystem/spack/spack_repo/exago/packages/exago/package.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/buildsystem/spack/spack_repo/exago/packages/exago/package.py b/buildsystem/spack/spack_repo/exago/packages/exago/package.py index e72041bd..957aeecb 100644 --- a/buildsystem/spack/spack_repo/exago/packages/exago/package.py +++ b/buildsystem/spack/spack_repo/exago/packages/exago/package.py @@ -219,7 +219,8 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on("petsc@3.16", when="@1.3:1.4") depends_on("petsc@3.18:3.19", when="@1.5") depends_on("petsc@3.19:3.23", when="@1.6") - depends_on("petsc@3.24:", when="@2.0:") + depends_on("petsc@3.24:", when="@2.0") + depends_on("petsc@3.25:", when="@develop") # update on new release released depends_on("petsc~mpi", when="~mpi") # Ipopt versiondependency logic From 07d1d28eb013c5b3a9d2076b13e83bb23bbce139 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 14:47:09 -0400 Subject: [PATCH 02/22] Update documentation sources. --- INSTALL.md | 2 +- docs/manual/getting_started.tex | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index b2d33c92..487d1705 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -42,7 +42,7 @@ Dependencies are broken down into three categories: | Dependency | Dependency Version | CMake Variable (if applicable) | Notes | |---|---|---|---| -| PETSC | >=3.24.0 | `EXAGO_ENABLE_PETSC`. `PETSC_DIR` sets the PETSC installation prefix. | Required. PETSC needs to be built with MPI if building ExaGO with MPI. [See the linked document for more information on building PETSC for ExaGO.](docs/web/petsc_install.md) | +| PETSC | >=3.25.0 | `EXAGO_ENABLE_PETSC`. `PETSC_DIR` sets the PETSC installation prefix. | Required. PETSC needs to be built with MPI if building ExaGO with MPI. [See the linked document for more information on building PETSC for ExaGO.](docs/web/petsc_install.md) | | CMake | >=3.18 | N/A | | | blas | | `BLAS_LIBRARIES` sets the blas libraries. | ExaGO uses the builtin [`FindBLAS` cmake module](https://cmake.org/cmake/help/latest/module/FindBLAS.html). Please refer to the linked documentation. | | MPI | >=3 | `EXAGO_ENABLE_MPI`. `MPI_HOME` sets the MPI installation prefix. | Optional. ExaGO uses the builtin [`FindMPI` cmake module](https://cmake.org/cmake/help/latest/module/FindMPI.html). | diff --git a/docs/manual/getting_started.tex b/docs/manual/getting_started.tex index b8b5b756..a33d4069 100644 --- a/docs/manual/getting_started.tex +++ b/docs/manual/getting_started.tex @@ -26,7 +26,7 @@ \section{Dependencies} \hline \textbf{Dependency} & \textbf{Version Constraints} & \textbf{Mandatory} & \textbf{Notes} \\ \hline - \petsc & $\geq 3.24$ & \checkmark & Core dependency \\ \hline + \petsc & $\geq 3.25$ & \checkmark & Core dependency \\ \hline \cmake & $\geq 3.18$ & \checkmark & Only a build dependency \\ \hline MPI & $\geq 4.1$ & & Only tested with \texttt{openmpi} and \texttt{spectrummpi} \\ \hline \ipopt & $\geq 3.14$ & & \\ \hline From 88418b12f0666bae4743bbbd985b0afaeddcae5f Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 14:47:30 -0400 Subject: [PATCH 03/22] Update Frontier Spack-built dependencies. --- buildsystem/spack/frontier/env.sh | 2 +- buildsystem/spack/frontier/modules/dependencies.sh | 8 ++++---- buildsystem/spack/frontier/modules/exago.sh | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/buildsystem/spack/frontier/env.sh b/buildsystem/spack/frontier/env.sh index 4b7a4cd1..f43dcf36 100644 --- a/buildsystem/spack/frontier/env.sh +++ b/buildsystem/spack/frontier/env.sh @@ -3,7 +3,7 @@ # Configure python module load cray-python/3.11.7 -BASE=/lustre/orion/stf006/world-shared/$(whoami)/exago-02-2026 +BASE=/lustre/orion/stf006/world-shared/$(whoami)/exago-08-2026 export SPACK_INSTALL=$BASE/spack-install export SPACK_MODULES=modules diff --git a/buildsystem/spack/frontier/modules/dependencies.sh b/buildsystem/spack/frontier/modules/dependencies.sh index 4fc00e9c..20ce3bef 100644 --- a/buildsystem/spack/frontier/modules/dependencies.sh +++ b/buildsystem/spack/frontier/modules/dependencies.sh @@ -1,4 +1,4 @@ -module use -a /lustre/orion/stf006/world-shared/nkouk/exago-02-2026/spack-install/modules/linux-sles15-zen3 +module use -a /lustre/orion/stf006/world-shared/nkouk/exago-08-2026/spack-install/modules/linux-sles15-zen3 ## excluded or missing from upstream: cmake@=3.30.5~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release platform=linux os=sles15 target=x86_64 # compiler-wrapper@=1.0 build_system=generic platform=linux os=sles15 target=zen3 module load compiler-wrapper/1.0-none-none-rfhw7ey @@ -110,9 +110,9 @@ module load hiop/1.1.1-gcc-14.2.0-a2bwjiu module load ipopt/3.14.14-gcc-14.2.0-gj4qlx4 # parmetis@=4.0.3~gdb~int64~ipo+shared build_system=cmake build_type=Release generator=make patches:=4f89253,50ed208,704b84f platform=linux os=sles15 target=zen3 module load parmetis/4.0.3-gcc-14.2.0-xatjoum -# petsc@=3.24.1~X~batch~cgns~complex~cuda~debug+double+examples~exodusii~fftw+fortran+fortran-bindings~giflib~hdf5~hpddm~hwloc~hypre~int64~jpeg~knl~kokkos~libpng~libyaml~memkind+metis~mkl-pardiso~mmg~moab~mpfr+mpi~mumps~openmp~p4est~parmmg~ptscotch~random123~rocm~saws~scalapack+shared~strumpack~suite-sparse~superlu-dist~sycl~tetgen~trilinos~valgrind~zoltan build_system=generic clanguage=C memalign=none patches:=fa5ef56 platform=linux os=sles15 target=zen3 -module load petsc/3.24.1-gcc-14.2.0-4izpiqe +# petsc@=3.25.4~X~batch~cgns~complex~cuda~debug+double+examples~exodusii~fftw+fortran+fortran-bindings~giflib~hdf5~hpddm~hwloc~hypre~int64~jpeg~knl~kokkos~libpng~libyaml~memkind+metis~mkl-pardiso~mmg~moab~mpfr+mpi~mumps~openmp~p4est~parmmg~ptscotch~random123~rocm~saws~scalapack+shared~strumpack~suite-sparse~superlu-dist~sycl~tetgen~trilinos~valgrind~zoltan build_system=generic clanguage=C memalign=none platform=linux os=sles15 target=zen3 +module load petsc/3.25.4-gcc-14.2.0-ed3tmzh # spdlog@=1.15.0~ipo+shared build_system=cmake build_type=Release generator=make patches:=5ed92f4,fd4cbb1,fdc325d platform=linux os=sles15 target=zen3 module load spdlog/1.15.0-gcc-14.2.0-56k2ubv # exago@=develop~cuda+hiop~ipo+ipopt+logging+mpi~python+raja+rocm+testing amdgpu_target:=gfx90a build_system=cmake build_type=Release dev_path=/lustre/orion/scratch/nkouk/stf006/Codes/ExaGO generator=make platform=linux os=sles15 target=zen3 -## module load exago/develop-gcc-14.2.0-yzuty4x +## module load exago/develop-gcc-14.2.0-i7pccee diff --git a/buildsystem/spack/frontier/modules/exago.sh b/buildsystem/spack/frontier/modules/exago.sh index f5e06394..d21eb8aa 100644 --- a/buildsystem/spack/frontier/modules/exago.sh +++ b/buildsystem/spack/frontier/modules/exago.sh @@ -1,3 +1,3 @@ -module use -a /lustre/orion/stf006/world-shared/nkouk/exago-02-2026/spack-install/modules/linux-sles15-zen3 +module use -a /lustre/orion/stf006/world-shared/nkouk/exago-08-2026/spack-install/modules/linux-sles15-zen3 # exago@=develop~cuda+hiop~ipo+ipopt+logging+mpi~python+raja+rocm+testing amdgpu_target:=gfx90a build_system=cmake build_type=Release dev_path=/lustre/orion/scratch/nkouk/stf006/Codes/ExaGO generator=make platform=linux os=sles15 target=zen3 -module load exago/develop-gcc-14.2.0-yzuty4x +module load exago/develop-gcc-14.2.0-i7pccee From 5eff0e224c7590b71a77afd880eca92a10b31fe7 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 14:49:04 -0400 Subject: [PATCH 04/22] Update PetscErrorMessage call to match PETSc 3.25. --- src/utils/utils.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/utils.cpp b/src/utils/utils.cpp index 0b690032..5626dbcb 100644 --- a/src/utils/utils.cpp +++ b/src/utils/utils.cpp @@ -147,7 +147,7 @@ static char ExaGOCurrentAppName[128]; ExaGOError::ExaGOError(PetscErrorCode ierr) : is_petsc_error{true} { const char *error_message; - char *specific_error_message; + const char *specific_error_message; PetscErrorMessage(ierr, &error_message, &specific_error_message); message = error_message; message += specific_error_message; From f7d6013a68e9187c8d4745b2001ae4c752bf8c84 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 18:12:03 -0400 Subject: [PATCH 05/22] Bump Spack to v1.2.2 and update local repo and Frontier build accordingly. --- .../spack/frontier/modules/dependencies.sh | 170 +++++++++--------- buildsystem/spack/frontier/modules/exago.sh | 2 +- buildsystem/spack/frontier/sbatch.sh | 2 +- buildsystem/spack/frontier/spack.yaml | 8 +- .../exago/packages/coinhsl/package.py | 110 ------------ .../spack_repo/exago/packages/hiop/package.py | 6 + tpl/spack | 2 +- 7 files changed, 99 insertions(+), 201 deletions(-) delete mode 100644 buildsystem/spack/spack_repo/exago/packages/coinhsl/package.py diff --git a/buildsystem/spack/frontier/modules/dependencies.sh b/buildsystem/spack/frontier/modules/dependencies.sh index 20ce3bef..db6951e2 100644 --- a/buildsystem/spack/frontier/modules/dependencies.sh +++ b/buildsystem/spack/frontier/modules/dependencies.sh @@ -1,118 +1,122 @@ module use -a /lustre/orion/stf006/world-shared/nkouk/exago-08-2026/spack-install/modules/linux-sles15-zen3 ## excluded or missing from upstream: cmake@=3.30.5~doc+ncurses+ownlibs~qtgui build_system=generic build_type=Release platform=linux os=sles15 target=x86_64 -# compiler-wrapper@=1.0 build_system=generic platform=linux os=sles15 target=zen3 -module load compiler-wrapper/1.0-none-none-rfhw7ey -## excluded or missing from upstream: gcc@=14.2.0~binutils+bootstrap~graphite~mold~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' platform=linux os=sles15 target=x86_64 +# compiler-wrapper@=1.1.0 build_system=generic platform=linux os=sles15 target=zen3 +module load compiler-wrapper/1.1.0-none-none-hsr6o73 +## excluded or missing from upstream: gcc@=14.2.0+binutils+bootstrap~graphite+libsanitizer~mold~nvptx~piclibs~profiled~strip build_system=autotools build_type=RelWithDebInfo languages:='c,c++,fortran' platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: glibc@=2.38 build_system=autotools platform=linux os=sles15 target=x86_64 # gcc-runtime@=14.2.0 build_system=generic platform=linux os=sles15 target=zen3 -module load gcc-runtime/14.2.0-none-none-ddc453r -# blt@=0.7.1 build_system=generic platform=linux os=sles15 target=zen3 -module load blt/0.7.1-gcc-14.2.0-ckjjt7m +module load gcc-runtime/14.2.0-none-none-mthljcr +# blt@=0.7.2 build_system=generic platform=linux os=sles15 target=zen3 +module load blt/0.7.2-gcc-14.2.0-v5iinju # gmake@=4.4.1~guile build_system=generic platform=linux os=sles15 target=zen3 -module load gmake/4.4.1-gcc-14.2.0-kqtm7j7 +module load gmake/4.4.1-gcc-14.2.0-r4kiolf ## excluded or missing from upstream: hip@=6.3.1~asan~cuda+rocm build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: hsa-rocr-dev@=6.3.1~asan+image+shared build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: llvm-amdgpu@=6.3.1~link_llvm_dylib~llvm_dylib+rocm-device-libs build_system=cmake build_type=Release generator=ninja languages:='c,c++' platform=linux os=sles15 target=x86_64 -# camp@=2024.07.0~cuda~ipo~omptarget~openmp+rocm~sycl~tests amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=0f07de4240c42e0b38a8d872a20440cb4b33d9f5 generator=make platform=linux os=sles15 target=zen3 -module load camp/2024.07.0-gcc-14.2.0-6zkynai +# camp@=2025.12.0~cuda~ipo~omptarget~openmp+rocm~sycl~tests amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=a8caefa9f4c811b1a114b4ed2c9b681d40f12325 generator=make platform=linux os=sles15 target=zen3 +module load camp/2025.12.0-gcc-14.2.0-2mvr5d4 ## excluded or missing from upstream: cray-mpich@=8.1.31~cuda~rocm+wrappers build_system=generic platform=linux os=sles15 target=x86_64 # fmt@=11.0.2~ipo+pic~shared build_system=cmake build_type=Release cxxstd=11 generator=make platform=linux os=sles15 target=zen3 -module load fmt/11.0.2-gcc-14.2.0-hmdf2um -## excluded or missing from upstream: python@=3.11.7+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~tkinter+uuid+zlib build_system=generic platform=linux os=sles15 target=x86_64 -# re2c@=3.1 build_system=autotools platform=linux os=sles15 target=zen3 -module load re2c/3.1-gcc-14.2.0-kjfvtlu -# ninja@=1.13.0+re2c build_system=generic platform=linux os=sles15 target=zen3 -module load ninja/1.13.0-gcc-14.2.0-3xtgf4s +module load fmt/11.0.2-gcc-14.2.0-rymouym +## excluded or missing from upstream: python@=3.11.7+bz2+crypt+ctypes+dbm~debug+libxml2+lzma~optimizations+pic+pyexpat+pythoncmd+readline+shared+sqlite3+ssl~static~tests~tkinter+uuid+zlib build_system=generic platform=linux os=sles15 target=x86_64 +# re2c@=4.4 build_system=autotools platform=linux os=sles15 target=zen3 +module load re2c/4.4-gcc-14.2.0-zu5yo7f +# ninja@=1.13.2+re2c build_system=generic platform=linux os=sles15 target=zen3 +module load ninja/1.13.2-gcc-14.2.0-wlhvs6o # python-venv@=1.0 build_system=generic platform=linux os=sles15 target=zen3 -module load python-venv/1.0-none-none-w2bm77w -# py-pip@=25.1.1 build_system=generic platform=linux os=sles15 target=zen3 -module load py-pip/25.1.1-none-none-qeddnbh -# py-setuptools@=80.9.0 build_system=generic platform=linux os=sles15 target=zen3 -module load py-setuptools/80.9.0-none-none-mjws5td +module load python-venv/1.0-none-none-pfnl5ia +# py-pip@=26.1.2 build_system=generic platform=linux os=sles15 target=zen3 +module load py-pip/26.1.2-none-none-y6j2d6n +# py-setuptools@=82.0.1 build_system=generic platform=linux os=sles15 target=zen3 +module load py-setuptools/82.0.1-none-none-qk6gabk # py-wheel@=0.45.1 build_system=generic platform=linux os=sles15 target=zen3 -module load py-wheel/0.45.1-none-none-mrtxpal -# meson@=1.8.5 build_system=python_pip patches:=0f0b1bd platform=linux os=sles15 target=zen3 -module load meson/1.8.5-none-none-3oz75tc +module load py-wheel/0.45.1-none-none-e5kilm7 +# meson@=1.11.1 build_system=python_pip patches:=0f0b1bd platform=linux os=sles15 target=zen3 +module load meson/1.11.1-none-none-e6yrimg # metis@=5.1.0~gdb~int64~ipo~no_warning~real64+shared build_system=cmake build_type=Release generator=make patches:=4991da9,93a7903,b1225da platform=linux os=sles15 target=zen3 -module load metis/5.1.0-gcc-14.2.0-yujvyqz +module load metis/5.1.0-gcc-14.2.0-gx4ixil # berkeley-db@=18.1.40+cxx~docs+stl build_system=autotools patches:=26090f4,b231fcc platform=linux os=sles15 target=zen3 -module load berkeley-db/18.1.40-gcc-14.2.0-hs3yf5g +module load berkeley-db/18.1.40-gcc-14.2.0-hmndfu6 # libiconv@=1.18 build_system=autotools libs:=shared,static platform=linux os=sles15 target=zen3 -module load libiconv/1.18-gcc-14.2.0-4cxmjca +module load libiconv/1.18-gcc-14.2.0-sidqw3h # diffutils@=3.12 build_system=autotools platform=linux os=sles15 target=zen3 -module load diffutils/3.12-gcc-14.2.0-2jwfpug +module load diffutils/3.12-gcc-14.2.0-v4ysmvr # bzip2@=1.0.8~debug~pic+shared build_system=generic platform=linux os=sles15 target=zen3 -module load bzip2/1.0.8-gcc-14.2.0-bxs2wih +module load bzip2/1.0.8-gcc-14.2.0-i2jpxnn # pkgconf@=2.5.1 build_system=autotools platform=linux os=sles15 target=zen3 -module load pkgconf/2.5.1-gcc-14.2.0-4bsp2cj -# ncurses@=6.5-20250705~symlinks+termlib abi=none build_system=autotools patches:=7a351bc platform=linux os=sles15 target=zen3 -module load ncurses/6.5-20250705-gcc-14.2.0-5k2higm -# readline@=8.3 build_system=autotools patches:=21f0a03 platform=linux os=sles15 target=zen3 -module load readline/8.3-gcc-14.2.0-66mb24c -# gdbm@=1.25 build_system=autotools platform=linux os=sles15 target=zen3 -module load gdbm/1.25-gcc-14.2.0-w67thwv -# zlib-ng@=2.2.4+compat+new_strategies+opt+pic+shared build_system=autotools platform=linux os=sles15 target=zen3 -module load zlib-ng/2.2.4-gcc-14.2.0-mm3wqqs +module load pkgconf/2.5.1-gcc-14.2.0-qs7ovds +# ncurses@=6.6~symlinks+termlib abi=none build_system=autotools patches:=7a351bc platform=linux os=sles15 target=zen3 +module load ncurses/6.6-gcc-14.2.0-262vg53 +# readline@=8.3 build_system=autotools patches:=21f0a03,72dee13,e273643 platform=linux os=sles15 target=zen3 +module load readline/8.3-gcc-14.2.0-ubqvjhm +# gdbm@=1.26 build_system=autotools platform=linux os=sles15 target=zen3 +module load gdbm/1.26-gcc-14.2.0-67rbhbv +# less@=692 build_system=autotools platform=linux os=sles15 target=zen3 +module load less/692-gcc-14.2.0-4pc2lx7 +# zlib-ng@=2.3.3+compat+new_strategies+opt+pic+shared build_system=autotools platform=linux os=sles15 target=zen3 +module load zlib-ng/2.3.3-gcc-14.2.0-is5hyhl # perl@=5.42.0+cpanm+opcode+open+shared+threads build_system=generic platform=linux os=sles15 target=zen3 -module load perl/5.42.0-gcc-14.2.0-g7cf6rz -# openblas@=0.3.20~bignuma~consistent_fpcsr+dynamic_dispatch~ilp64+locking+pic+shared build_system=makefile patches:=9f12903 symbol_suffix=none threads=none platform=linux os=sles15 target=zen3 -module load openblas/0.3.20-gcc-14.2.0-holyhf3 +module load perl/5.42.0-gcc-14.2.0-x3k7ozd +# openblas@=0.3.20~bignuma~consistent_fpcsr+dynamic_dispatch~ilp64+locking+pic+shared~static build_system=makefile patches:=9f12903 symbol_suffix=none threads=none platform=linux os=sles15 target=zen3 +module load openblas/0.3.20-gcc-14.2.0-rbgtzyf # coinhsl@=2024.05.15+metis~strip build_system=meson buildtype=release default_library:=shared platform=linux os=sles15 target=zen3 -module load coinhsl/2024.05.15-gcc-14.2.0-ke5biep +module load coinhsl/2024.05.15-gcc-14.2.0-fyo6bb6 ## excluded or missing from upstream: hipblas@=6.3.1~asan~cuda+rocm amdgpu_target:=auto build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: hiprand@=6.3.1~asan~cuda+rocm amdgpu_target:=auto build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: hipsparse@=6.3.1~asan~cuda+rocm amdgpu_target:=auto build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 ## excluded or missing from upstream: rocm-core@=6.3.1~asan build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 # magma@=2.8.0~cuda+fortran~ipo+rocm+shared amdgpu_target:=gfx90a build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=zen3 -module load magma/2.8.0-gcc-14.2.0-ikok5nn +module load magma/2.8.0-gcc-14.2.0-pi6nfpp ## excluded or missing from upstream: rocprim@=6.3.1~asan amdgpu_target:=auto build_system=cmake build_type=Release generator=make platform=linux os=sles15 target=x86_64 -# raja@=2025.03.0~cuda~desul~examples~exercises~gpu-profiling~ipo~lowopttest~omptarget~omptask~openmp~plugins+rocm~run-all-tests~shared~sycl~tests~vectorization amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=1d70abf171474d331f1409908bdf1b1c3fe19222 generator=make platform=linux os=sles15 target=zen3 -module load raja/2025.03.0-gcc-14.2.0-woblane -# libsigsegv@=2.14 build_system=autotools platform=linux os=sles15 target=zen3 -module load libsigsegv/2.14-gcc-14.2.0-j5nwpxr -# m4@=1.4.20+sigsegv build_system=autotools platform=linux os=sles15 target=zen3 -module load m4/1.4.20-gcc-14.2.0-eyfod7z +# raja@=2025.12.2~caliper~cuda~desul~examples~exercises~gpu-profiling~ipo~lowopttest~omptarget~omptask~openmp~plugins+rocm~run-all-tests~shared~sycl~tests+vectorization amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=eca7c5015a5cf8bf7cc8ad1829fd36d3276ab274 cxxstd=20 generator=make platform=linux os=sles15 target=zen3 +module load raja/2025.12.2-gcc-14.2.0-u56663i +# libsigsegv@=2.15 build_system=autotools platform=linux os=sles15 target=zen3 +module load libsigsegv/2.15-gcc-14.2.0-gt2mrdc +# m4@=1.4.21+sigsegv build_system=autotools platform=linux os=sles15 target=zen3 +module load m4/1.4.21-gcc-14.2.0-fjjki5v # autoconf@=2.72 build_system=autotools platform=linux os=sles15 target=zen3 -module load autoconf/2.72-none-none-e32o2ms -# automake@=1.16.5 build_system=autotools platform=linux os=sles15 target=zen3 -module load automake/1.16.5-gcc-14.2.0-qupgkqr -# xz@=5.6.3~pic build_system=autotools libs:=shared,static platform=linux os=sles15 target=zen3 -module load xz/5.6.3-gcc-14.2.0-n3iixvg -# libxml2@=2.13.5~http+pic~python+shared build_system=autotools platform=linux os=sles15 target=zen3 -module load libxml2/2.13.5-gcc-14.2.0-kkshkbr -# pigz@=2.8 build_system=makefile platform=linux os=sles15 target=zen3 -module load pigz/2.8-gcc-14.2.0-d4ifmkj +module load autoconf/2.72-none-none-lnrszbp +# automake@=1.18.1 build_system=autotools platform=linux os=sles15 target=zen3 +module load automake/1.18.1-gcc-14.2.0-aw4o7fg +# xz@=5.8.3~pic build_system=autotools libs:=shared,static platform=linux os=sles15 target=zen3 +module load xz/5.8.3-gcc-14.2.0-5vrw34f # zstd@=1.5.7+programs build_system=makefile compression:=none libs:=shared,static platform=linux os=sles15 target=zen3 -module load zstd/1.5.7-gcc-14.2.0-r3pky4w +module load zstd/1.5.7-gcc-14.2.0-uytpcd3 +# file@=5.46+static build_system=autotools platform=linux os=sles15 target=zen3 +module load file/5.46-gcc-14.2.0-nplp5fn +# libxml2@=2.15.3+pic~python+shared build_system=autotools platform=linux os=sles15 target=zen3 +module load libxml2/2.15.3-gcc-14.2.0-wiekcrj +# pigz@=2.8 build_system=makefile platform=linux os=sles15 target=zen3 +module load pigz/2.8-gcc-14.2.0-n72hmpe # tar@=1.35 build_system=autotools zip=pigz platform=linux os=sles15 target=zen3 -module load tar/1.35-gcc-14.2.0-ae4witc -# gettext@=0.23.1+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools platform=linux os=sles15 target=zen3 -module load gettext/0.23.1-gcc-14.2.0-g4d6jeh +module load tar/1.35-gcc-14.2.0-fwjntwi +# gettext@=1.0+bzip2+curses+git~libunistring+libxml2+pic+shared+tar+xz build_system=autotools platform=linux os=sles15 target=zen3 +module load gettext/1.0-gcc-14.2.0-tm7n7uv # findutils@=4.10.0 build_system=autotools patches:=440b954 platform=linux os=sles15 target=zen3 -module load findutils/4.10.0-gcc-14.2.0-r2qqgvh -# libtool@=2.4.7 build_system=autotools platform=linux os=sles15 target=zen3 -module load libtool/2.4.7-gcc-14.2.0-uiult5c +module load findutils/4.10.0-gcc-14.2.0-4ob63oh +# libtool@=2.5.4 build_system=autotools platform=linux os=sles15 target=zen3 +module load libtool/2.5.4-gcc-14.2.0-sqcpodk # gmp@=6.3.0+cxx build_system=autotools libs:=shared,static platform=linux os=sles15 target=zen3 -module load gmp/6.3.0-gcc-14.2.0-hf6zhfr -# autoconf-archive@=2023.02.20 build_system=autotools platform=linux os=sles15 target=zen3 -module load autoconf-archive/2023.02.20-none-none-dw7lrnr +module load gmp/6.3.0-gcc-14.2.0-lhz367r +# autoconf-archive@=2024.10.16 build_system=autotools platform=linux os=sles15 target=zen3 +module load autoconf-archive/2024.10.16-none-none-nwlbkhx # texinfo@=7.2~xs build_system=autotools platform=linux os=sles15 target=zen3 -module load texinfo/7.2-gcc-14.2.0-wtmf5g5 -# mpfr@=4.2.1 build_system=autotools libs:=shared,static patches:=3ec29a6 platform=linux os=sles15 target=zen3 -module load mpfr/4.2.1-gcc-14.2.0-p4r33ds -# suite-sparse@=7.8.3~cuda~graphblas~openmp+pic build_system=generic platform=linux os=sles15 target=zen3 -module load suite-sparse/7.8.3-gcc-14.2.0-3f2u2ru -# umpire@=2025.03.0~asan~backtrace+c~cuda~dev_benchmarks~device_alloc~deviceconst~examples+fmt_header_only~fortran~ipc_shmem~ipo~mpi~mpi3_shmem~numa~omptarget~openmp+rocm~sanitizer_tests+shared~sqlite_experimental~tools~werror amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=1ed0669c57f041baa1f1070693991c3a7a43e7ee generator=make tests=none platform=linux os=sles15 target=zen3 -module load umpire/2025.03.0-gcc-14.2.0-bhfur45 -# hiop@=1.1.1~axom~cuda~deepchecking~ginkgo~ipo~jsrun+kron+mpi+raja+rocm~shared+sparse amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=d8762e05150b2040a27f69d8bf6603f22190a869 generator=make platform=linux os=sles15 target=zen3 -module load hiop/1.1.1-gcc-14.2.0-a2bwjiu +module load texinfo/7.2-gcc-14.2.0-jsmo5ho +# mpfr@=4.2.2 build_system=autotools libs:=shared,static platform=linux os=sles15 target=zen3 +module load mpfr/4.2.2-gcc-14.2.0-5asupl6 +# suite-sparse@=7.12.2~cuda~graphblas~openmp+pic build_system=generic platform=linux os=sles15 target=zen3 +module load suite-sparse/7.12.2-gcc-14.2.0-4s7azhu +# umpire@=2025.12.0~asan~backtrace+c~cuda~dev_benchmarks~device_alloc~deviceconst~examples+fmt_header_only~fortran~ipc_shmem~ipo~mpi~mpi3_shmem~numa~omptarget~openmp+rocm~sanitizer_tests+shared~sqlite_experimental~tools~werror amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=0372fbd6e1f17d7e6dd72693f8b857f3ec7559e9 generator=make tests=none platform=linux os=sles15 target=zen3 +module load umpire/2025.12.0-gcc-14.2.0-abe4gxy +# hiop@=1.2.0~axom~cuda~deepchecking~ginkgo~ipo~jsrun+kron+mpi+raja+rocm~shared+sparse amdgpu_target:=gfx90a build_system=cmake build_type=Release commit=6acee835136e9beddf3570b28739a1b1001e528a generator=make patches:=e73daa7 platform=linux os=sles15 target=zen3 +module load hiop/1.2.0-gcc-14.2.0-uulmsj5 # ipopt@=3.14.14+coinhsl~debug~java~metis~mumps build_system=autotools platform=linux os=sles15 target=zen3 -module load ipopt/3.14.14-gcc-14.2.0-gj4qlx4 +module load ipopt/3.14.14-gcc-14.2.0-4227qwo # parmetis@=4.0.3~gdb~int64~ipo+shared build_system=cmake build_type=Release generator=make patches:=4f89253,50ed208,704b84f platform=linux os=sles15 target=zen3 -module load parmetis/4.0.3-gcc-14.2.0-xatjoum -# petsc@=3.25.4~X~batch~cgns~complex~cuda~debug+double+examples~exodusii~fftw+fortran+fortran-bindings~giflib~hdf5~hpddm~hwloc~hypre~int64~jpeg~knl~kokkos~libpng~libyaml~memkind+metis~mkl-pardiso~mmg~moab~mpfr+mpi~mumps~openmp~p4est~parmmg~ptscotch~random123~rocm~saws~scalapack+shared~strumpack~suite-sparse~superlu-dist~sycl~tetgen~trilinos~valgrind~zoltan build_system=generic clanguage=C memalign=none platform=linux os=sles15 target=zen3 -module load petsc/3.25.4-gcc-14.2.0-ed3tmzh -# spdlog@=1.15.0~ipo+shared build_system=cmake build_type=Release generator=make patches:=5ed92f4,fd4cbb1,fdc325d platform=linux os=sles15 target=zen3 -module load spdlog/1.15.0-gcc-14.2.0-56k2ubv +module load parmetis/4.0.3-gcc-14.2.0-kir7ich +# petsc@=3.25.2~X~batch~cgns~complex~cuda~debug+double+examples~exodusii~fftw+fortran+fortran-bindings~giflib~hdf5~hpddm~hwloc~hypre~int64~jpeg~knl~kokkos~libpng~libyaml~memkind+metis~mkl-pardiso~ml~mmg~moab~mpfr+mpi~mumps~openmp~p4est~parmmg~ptscotch~random123~rocm~saws~scalapack+shared~strumpack~suite-sparse~superlu-dist~sycl~tetgen~valgrind~zoltan build_system=generic clanguage=C memalign=none platform=linux os=sles15 target=zen3 +module load petsc/3.25.2-gcc-14.2.0-sa3r4pp +# spdlog@=1.15.0~ipo+shared build_system=cmake build_type=Release cxxstd=14 generator=make patches:=5ed92f4,fd4cbb1,fdc325d platform=linux os=sles15 target=zen3 +module load spdlog/1.15.0-gcc-14.2.0-chfsasm # exago@=develop~cuda+hiop~ipo+ipopt+logging+mpi~python+raja+rocm+testing amdgpu_target:=gfx90a build_system=cmake build_type=Release dev_path=/lustre/orion/scratch/nkouk/stf006/Codes/ExaGO generator=make platform=linux os=sles15 target=zen3 -## module load exago/develop-gcc-14.2.0-i7pccee +## module load exago/develop-gcc-14.2.0-uk2jden diff --git a/buildsystem/spack/frontier/modules/exago.sh b/buildsystem/spack/frontier/modules/exago.sh index d21eb8aa..d22ad723 100644 --- a/buildsystem/spack/frontier/modules/exago.sh +++ b/buildsystem/spack/frontier/modules/exago.sh @@ -1,3 +1,3 @@ module use -a /lustre/orion/stf006/world-shared/nkouk/exago-08-2026/spack-install/modules/linux-sles15-zen3 # exago@=develop~cuda+hiop~ipo+ipopt+logging+mpi~python+raja+rocm+testing amdgpu_target:=gfx90a build_system=cmake build_type=Release dev_path=/lustre/orion/scratch/nkouk/stf006/Codes/ExaGO generator=make platform=linux os=sles15 target=zen3 -module load exago/develop-gcc-14.2.0-i7pccee +module load exago/develop-gcc-14.2.0-uk2jden diff --git a/buildsystem/spack/frontier/sbatch.sh b/buildsystem/spack/frontier/sbatch.sh index 056c511c..d0190d62 100644 --- a/buildsystem/spack/frontier/sbatch.sh +++ b/buildsystem/spack/frontier/sbatch.sh @@ -1,6 +1,6 @@ #!/bin/bash -#SBATCH -A ENG145 +#SBATCH -A ENG151 #SBATCH -p batch #SBATCH -t 100 #SBATCH -N 1 diff --git a/buildsystem/spack/frontier/spack.yaml b/buildsystem/spack/frontier/spack.yaml index 70095e4c..8d3c0719 100644 --- a/buildsystem/spack/frontier/spack.yaml +++ b/buildsystem/spack/frontier/spack.yaml @@ -27,7 +27,6 @@ spack: require: ~python+raja+hiop+rocm+ipopt amdgpu_target=gfx90a hiop: require: +sparse+mpi+raja+rocm~ginkgo+kron - version: [1.1.1] ipopt: require: '~metis+coinhsl~mumps' # Pin OpenBlas version for consistent test results. @@ -64,14 +63,13 @@ spack: libfabric: buildable: false externals: - - spec: libfabric@1.22.0 + - spec: libfabric@2.3.1 modules: - - libfabric/1.22.0 + - libfabric/2.3.1 python: externals: - spec: python@3.11.7 - modules: - - cray-python/3.11.7 + prefix: /opt/cray/pe/python/3.11.7 buildable: false hip: buildable: false diff --git a/buildsystem/spack/spack_repo/exago/packages/coinhsl/package.py b/buildsystem/spack/spack_repo/exago/packages/coinhsl/package.py deleted file mode 100644 index dadc76a2..00000000 --- a/buildsystem/spack/spack_repo/exago/packages/coinhsl/package.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright Spack Project Developers. See COPYRIGHT file for details. -# -# SPDX-License-Identifier: (Apache-2.0 OR MIT) - -import os - -from spack_repo.builtin.build_systems.autotools import AutotoolsPackage -from spack_repo.builtin.build_systems.meson import MesonPackage - -from spack.package import * - - -class Coinhsl(MesonPackage, AutotoolsPackage): - """CoinHSL is a collection of linear algebra libraries (KB22, MA27, - MA28, MA54, MA57, MA64, MA77, MA86, MA97, MC19, MC34, MC64, MC68, - MC69, MC78, MC80, OF01, ZB01, ZB11) bundled for use with IPOPT and - other applications that use these HSL routines. - - Note: CoinHSL is licensed software. You will need to request a - license from Research Councils UK and download a .tar.gz archive - of CoinHSL yourself. Spack will search your current directory for - the download file. Alternatively, add this file to a mirror so - that Spack can find it. For instructions on how to set up a - mirror, see https://spack.readthedocs.io/en/latest/mirrors.html""" - - depends_on("c", type="build") - depends_on("fortran", type="build") - - build_system( - conditional("autotools", when="@b:2019.05.21"), - conditional("meson", when="@2023:,:b"), - default="meson", - ) - - homepage = "https://www.hsl.rl.ac.uk/ipopt/" - url = f"file://{os.getcwd()}/coinhsl-2023.11.17.tar.gz" - manual_download = True - - maintainers("AndrewLister-STFC") - - # Meson builds - version( - "2024.05.15", - sha256="2534807b4f6a4a69661c82dc0da7094f685f0fce6443a9147ee90a21caba9e63", - preferred=True, - ) - version( - "archive-2024.05.15", - sha256="1d907ce5d84331ce8f78125d5fc766184f0fce9a7b340db7f3c4821a7f4b7c4c", - ) - - with when("build_system=meson @2023:"): - depends_on("blas") - depends_on("lapack") - variant("metis", default=True, description="Build with Metis support.") - depends_on("metis", when="+metis") - - def meson_args(self): - spec = self.spec - args = [] - if spec.satisfies("@:b"): - return [] - - blas = spec["blas"].libs.names[0] - blas_paths = [sf[2:] for sf in spec["blas"].libs.search_flags.split()] - lapack = spec["lapack"].libs.names[0] - lapack_paths = [sf[2:] for sf in spec["lapack"].libs.search_flags.split()] - args.append(f"-Dlibblas={blas}") - args.extend([f"-Dlibblas_path={p}" for p in blas_paths]) - args.append(f"-Dliblapack={lapack}") - args.extend([f"-Dliblapack_path={p}" for p in lapack_paths]) - if spec.satisfies("+metis"): - metis = spec["metis"] - if metis.satisfies("@5"): - args.append("-Dlibmetis_version=5") - else: - args.append("-Dlibmetis_version=4") - args.extend( - [ - f"-Dlibmetis_include={metis.prefix.include}", - f"-Dlibmetis_path={metis.prefix.lib}", - ] - ) - return args - - # Autotools builds - version( - "2019.05.21", sha256="95ce1160f0b013151a3e25d40337775c760a8f3a79d801a1d190598bf4e4c0c3" - ) - version( - "2015.06.23", sha256="3e955a2072f669b8f357ae746531b37aea921552e415dc219a5dd13577575fb3" - ) - version( - "2014.01.17", sha256="ed49fea62692c5d2f928d4007988930da9ff9a2e944e4c559d028671d122437b" - ) - version( - "2014.01.10", sha256="7c2be60a3913b406904c66ee83acdbd0709f229b652c4e39ee5d0876f6b2e907" - ) - - with when("build_system=autotools"): - parallel = False - variant("blas", default=False, description="Link to external BLAS library") - depends_on("blas", when="+blas") - - def configure_args(self): - spec = self.spec - args = [] - if spec.satisfies("+blas"): - args.append(f"--with-blas={spec['blas'].libs.ld_flags}") - return args diff --git a/buildsystem/spack/spack_repo/exago/packages/hiop/package.py b/buildsystem/spack/spack_repo/exago/packages/hiop/package.py index ba5a02e5..a9d1c1f5 100644 --- a/buildsystem/spack/spack_repo/exago/packages/hiop/package.py +++ b/buildsystem/spack/spack_repo/exago/packages/hiop/package.py @@ -106,6 +106,12 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage): description="Enable/disable cuSovler LU refactorization", ) + patch( + "https://github.com/llnl/hiop/commit/1d50896dd8df0a7c853e998e6814566d8.patch?full_index=1", + sha256="e73daa7f15863cb3c9dfad9509d46984ad1943506a7a5e04183817eba6d14aed", + when="@1.2.0", + ) + depends_on("c", type="build") depends_on("cxx", type="build") depends_on("fortran", type="build") diff --git a/tpl/spack b/tpl/spack index 2e2169d5..3e19345b 160000 --- a/tpl/spack +++ b/tpl/spack @@ -1 +1 @@ -Subproject commit 2e2169d5282d166f63e3ee4db8d4446c43cefa8a +Subproject commit 3e19345b6e12f5ff1b874f4059622fc6a1fd804a From 9f98fb5ee254c53c537c24e365eb89353f335dde Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 18:23:36 -0400 Subject: [PATCH 06/22] Minor correction. --- buildsystem/spack/spack_repo/exago/packages/exago/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/spack/spack_repo/exago/packages/exago/package.py b/buildsystem/spack/spack_repo/exago/packages/exago/package.py index 957aeecb..68679649 100644 --- a/buildsystem/spack/spack_repo/exago/packages/exago/package.py +++ b/buildsystem/spack/spack_repo/exago/packages/exago/package.py @@ -220,7 +220,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on("petsc@3.18:3.19", when="@1.5") depends_on("petsc@3.19:3.23", when="@1.6") depends_on("petsc@3.24:", when="@2.0") - depends_on("petsc@3.25:", when="@develop") # update on new release released + depends_on("petsc@3.25:", when="@develop") # update on new release depends_on("petsc~mpi", when="~mpi") # Ipopt versiondependency logic From 7f417b2c6008c2170e8f550cd5700a281b49f414 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Thu, 20 Aug 2026 18:34:49 -0400 Subject: [PATCH 07/22] In ExaGO Spack package, 2.0 should support PETSc 3.24 only. --- buildsystem/spack/spack_repo/exago/packages/exago/package.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildsystem/spack/spack_repo/exago/packages/exago/package.py b/buildsystem/spack/spack_repo/exago/packages/exago/package.py index 68679649..2bcdf15e 100644 --- a/buildsystem/spack/spack_repo/exago/packages/exago/package.py +++ b/buildsystem/spack/spack_repo/exago/packages/exago/package.py @@ -219,7 +219,7 @@ class Exago(CMakePackage, CudaPackage, ROCmPackage): depends_on("petsc@3.16", when="@1.3:1.4") depends_on("petsc@3.18:3.19", when="@1.5") depends_on("petsc@3.19:3.23", when="@1.6") - depends_on("petsc@3.24:", when="@2.0") + depends_on("petsc@3.24", when="@2.0") depends_on("petsc@3.25:", when="@develop") # update on new release depends_on("petsc~mpi", when="~mpi") From 406a64c9932737bd430f19e331299201d851a0dd Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Fri, 21 Aug 2026 09:57:00 -0400 Subject: [PATCH 08/22] Bump CI base container version. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index f1e38a75..9c2970c5 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -7,7 +7,7 @@ env: # Our repo name contains upper case characters, so we can't use ${{ github.repository }} IMAGE_NAME: exago USERNAME: exago-bot - BASE_VERSION: ubuntu-24.04-fortran-v0.1.0 + BASE_VERSION: ubuntu-24.04-fortran-v0.2.0 # Until we remove the need to clone submodules to build, this should on be in PRs on: [pull_request] From e79b95bec59e0006fc5d2ea0873208003b7b2841 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Fri, 21 Aug 2026 10:02:38 -0400 Subject: [PATCH 09/22] Trust keys in CI. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 9c2970c5..194d4e5f 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -153,7 +153,7 @@ jobs: run: spack -e . mirror set local-buildcache - name: Trust keys - run: spack -e . buildcache keys --install --trust + run: spack -e . buildcache keys --install --trust --yes-to-all --force - name: Find external packages run: spack -e . external find --all From 990ea8cbe2d219d25e759659bd13f6a37dd0d2b2 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 13:37:13 -0400 Subject: [PATCH 10/22] Remove --fresh from package install step in CI. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 194d4e5f..aa4d58fc 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -171,7 +171,7 @@ jobs: run: spack -e . install --no-check-signature --only dependencies - name: Install package - run: spack -e . install --no-check-signature --fail-fast --keep-stage --no-cache --fresh + run: spack -e . install --no-check-signature --fail-fast --keep-stage --no-cache - name: Test Build run: cd $(spack -e . location --build-dir exago@develop) && ctest -VV From 6caf5876dfce605180817eff936bff5a1345df8a Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 14:57:46 -0400 Subject: [PATCH 11/22] Specify --only package on second Spack install. Dependencies should already be installed. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index aa4d58fc..ed76ae81 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -171,7 +171,7 @@ jobs: run: spack -e . install --no-check-signature --only dependencies - name: Install package - run: spack -e . install --no-check-signature --fail-fast --keep-stage --no-cache + run: spack -e . install --no-check-signature --only package --fail-fast --keep-stage --no-cache - name: Test Build run: cd $(spack -e . location --build-dir exago@develop) && ctest -VV From c541130597fe7d11cc30c1d91e8ebd7ce209c166 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 15:17:36 -0400 Subject: [PATCH 12/22] require: %gcc --> compiler: gcc. --- .github/workflows/spack_cpu_build.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index ed76ae81..8dbb02bc 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -146,7 +146,8 @@ jobs: petsc: require: ~hypre~superlu-dist~hdf5+metis all: - require: "%gcc" + compiler: + - gcc EOF - name: Configure GHCR mirror From db19c5e2488b92225cdcb4150a00addc94459088 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 15:24:30 -0400 Subject: [PATCH 13/22] Remove --no-cache from package install. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 8dbb02bc..acc584b2 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -172,7 +172,7 @@ jobs: run: spack -e . install --no-check-signature --only dependencies - name: Install package - run: spack -e . install --no-check-signature --only package --fail-fast --keep-stage --no-cache + run: spack -e . install --no-check-signature --fail-fast --keep-stage - name: Test Build run: cd $(spack -e . location --build-dir exago@develop) && ctest -VV From 4331caa202f796aa30166c8aec3e50d5fd1858cb Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 15:28:13 -0400 Subject: [PATCH 14/22] Revert "require: %gcc --> compiler: gcc." This reverts commit c541130597fe7d11cc30c1d91e8ebd7ce209c166. --- .github/workflows/spack_cpu_build.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index acc584b2..a36758bf 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -146,8 +146,7 @@ jobs: petsc: require: ~hypre~superlu-dist~hdf5+metis all: - compiler: - - gcc + require: "%gcc" EOF - name: Configure GHCR mirror From dc40b10489bc28821337d345188612ca9fdd2f02 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 16:44:11 -0400 Subject: [PATCH 15/22] Remove gcc requirement altogether. --- .github/workflows/spack_cpu_build.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index a36758bf..d467033d 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -145,8 +145,6 @@ jobs: require: +mpi~openmp petsc: require: ~hypre~superlu-dist~hdf5+metis - all: - require: "%gcc" EOF - name: Configure GHCR mirror From fd4be38e134c46142ee6d6bddba1c269e6a8ca86 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 16:58:42 -0400 Subject: [PATCH 16/22] List installed specs before package install. --- .github/workflows/spack_cpu_build.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index d467033d..a1d816e6 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -168,8 +168,11 @@ jobs: - name: Install dependencies run: spack -e . install --no-check-signature --only dependencies + - name: List installed specs + run: spack -e . find -p -l + - name: Install package - run: spack -e . install --no-check-signature --fail-fast --keep-stage + run: spack -e . install --no-check-signature --fail-fast --keep-stage --no-cache - name: Test Build run: cd $(spack -e . location --build-dir exago@develop) && ctest -VV From b12e86df1d894a6528cde97bf851d164bf9ea276 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 17:18:45 -0400 Subject: [PATCH 17/22] Bump CI base container version. --- .github/workflows/spack_cpu_build.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index a1d816e6..44f26f5b 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -7,7 +7,7 @@ env: # Our repo name contains upper case characters, so we can't use ${{ github.repository }} IMAGE_NAME: exago USERNAME: exago-bot - BASE_VERSION: ubuntu-24.04-fortran-v0.2.0 + BASE_VERSION: ubuntu-24.04-fortran-v0.3.0 # Until we remove the need to clone submodules to build, this should on be in PRs on: [pull_request] From 76af5805a982a93dddb3e48d2a9aad626926273b Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 17:31:16 -0400 Subject: [PATCH 18/22] Filter concrete installed specs before trying to push to the build cache. --- .github/workflows/spack_cpu_build.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 44f26f5b..eeb8c7b4 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -184,5 +184,7 @@ jobs: MIRROR_USERNAME: ${{ env.USERNAME }} MIRROR_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - spack -e . buildcache push --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} --unsigned --update-index local-buildcache + spack -e . buildcache push $(spack -e . find --format '/{hash}') \ + --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} \ + --unsigned --update-index local-buildcache if: ${{ !cancelled() }} From 9695ff01dfd9a15c0c317c7fc1829f732e834248 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 17:39:49 -0400 Subject: [PATCH 19/22] Filter concrete installed specs before trying to push to the build cache. --- .github/workflows/spack_cpu_build.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index eeb8c7b4..37080a26 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -184,7 +184,5 @@ jobs: MIRROR_USERNAME: ${{ env.USERNAME }} MIRROR_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - spack -e . buildcache push $(spack -e . find --format '/{hash}') \ - --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} \ - --unsigned --update-index local-buildcache + spack -e . buildcache push $(spack -e . find --format '/{hash}') --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} --unsigned --update-index local-buildcache if: ${{ !cancelled() }} From d102ed35ea7b2b7227db3659891153b1ad2bc917 Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 17:47:31 -0400 Subject: [PATCH 20/22] Correct buildcache push argument order. --- .github/workflows/spack_cpu_build.yaml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 37080a26..51a15f17 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -184,5 +184,8 @@ jobs: MIRROR_USERNAME: ${{ env.USERNAME }} MIRROR_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - spack -e . buildcache push $(spack -e . find --format '/{hash}') --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} --unsigned --update-index local-buildcache + spack -e . buildcache push --force \ + --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} \ + --unsigned --update-index local-buildcache \ + $(spack -e . find --format '/{hash}') if: ${{ !cancelled() }} From 1904d437cd406f02b6c4d30d7dc154a94867a4ae Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 18:03:51 -0400 Subject: [PATCH 21/22] Use a loop to push to the build cache. --- .github/workflows/spack_cpu_build.yaml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 51a15f17..9636d0b3 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -184,8 +184,12 @@ jobs: MIRROR_USERNAME: ${{ env.USERNAME }} MIRROR_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - spack -e . buildcache push --force \ - --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} \ - --unsigned --update-index local-buildcache \ - $(spack -e . find --format '/{hash}') + spack -e . find --format '{hash}' | tr -d '\r' | while read -r h; do + spack -e . buildcache push --force \ + --base-image "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }}" \ + --unsigned \ + local-buildcache \ + "/$h" + done + spack buildcache update-index local-buildcache if: ${{ !cancelled() }} From 785b3b5a925a6dcaee7578747b63b1a7b13181ba Mon Sep 17 00:00:00 2001 From: Nicholson Koukpaizan Date: Sat, 22 Aug 2026 18:41:56 -0400 Subject: [PATCH 22/22] Simly use --allow-missing when pushing to the buildcache. --- .github/workflows/spack_cpu_build.yaml | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/.github/workflows/spack_cpu_build.yaml b/.github/workflows/spack_cpu_build.yaml index 9636d0b3..62197d00 100644 --- a/.github/workflows/spack_cpu_build.yaml +++ b/.github/workflows/spack_cpu_build.yaml @@ -184,12 +184,5 @@ jobs: MIRROR_USERNAME: ${{ env.USERNAME }} MIRROR_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - spack -e . find --format '{hash}' | tr -d '\r' | while read -r h; do - spack -e . buildcache push --force \ - --base-image "${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }}" \ - --unsigned \ - local-buildcache \ - "/$h" - done - spack buildcache update-index local-buildcache + spack -e . buildcache push --allow-missing --force --base-image ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.BASE_VERSION }} --unsigned --update-index local-buildcache if: ${{ !cancelled() }}