Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
1dec15d
Update hypre
victorapm Jan 21, 2026
88abae4
Update hypre to 89b60a212f06bcc4d30a59f3961bcd8a937415f3
victorapm Jan 21, 2026
74a8a9a
Remove build_system=cmake until we upgrade spack
victorapm Jan 21, 2026
a21470f
Bump spack/packages commit
victorapm Jan 21, 2026
324d295
Update uberenv for spack packages commit checkout fix
bmhan12 Nov 14, 2025
bfa9542
Update spack packages commit
bmhan12 Nov 14, 2025
3dfbc37
Remove custom scotch recipe in favor of upstream spack
bmhan12 Nov 14, 2025
93b008d
Try spack 1.1.0 - remove gcc-runtime as an external which causes conc…
bmhan12 Nov 20, 2025
282180e
Try toss 4 cray
bmhan12 Dec 5, 2025
b8cafa1
Use +pic variant instead of extra flags for hypre
bmhan12 Jan 21, 2026
0b62ba8
Bump uberenv
victorapm Jan 21, 2026
ccc60de
Merge branch 'feature/han12/spack_updates' into feature/paludettomag1…
victorapm Jan 21, 2026
f6b2759
Change versions/default location
victorapm Jan 22, 2026
96b31fb
Right way of fixing it
victorapm Jan 22, 2026
b07b893
Add spack_packages as well
victorapm Jan 22, 2026
fcda68c
Fixing llvm issue
victorapm Jan 22, 2026
6044b34
Fixing more issues
victorapm Jan 22, 2026
fc10e69
Fixing more issues
victorapm Jan 22, 2026
105df5c
Adding separate spack file for ubuntu 20
victorapm Jan 22, 2026
eabd909
More
victorapm Jan 22, 2026
9facbda
Pinning openmpi
victorapm Jan 22, 2026
71c7ff3
Bumping silo version
victorapm Jan 22, 2026
d2305db
Bumping HDF5 version
victorapm Jan 22, 2026
35f250d
Rocky 8 to use gcc-13 headers
victorapm Jan 22, 2026
cda9675
Forcing clang-17 to pick gcc 13 headers
victorapm Jan 23, 2026
01e15eb
Trying again
victorapm Jan 23, 2026
3264c4a
Simplify
victorapm Jan 23, 2026
c22a848
Tweak
victorapm Jan 23, 2026
83aaafc
Review
victorapm Jan 23, 2026
5765cc6
Forcing lai=hypre
victorapm Jan 23, 2026
a83ccd5
Bumping SuperLU_Dist from 6.3 to 9.2.1
victorapm Jan 23, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .uberenv_config.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@
"package_version": "develop",
"package_final_phase": "lvarray_hostconfig",
"package_source_dir": "../..",
"spack_url": "https://github.com/spack/spack",
"spack_commit": "734c5db2121b01c373eed6538e452f18887e9e44",
"spack_configs_path": "scripts/spack_configs",
"spack_packages_path": "scripts/spack_packages/packages",
"spack_packages_commit": "a75a7f75182ffc7a51c6ca7f0fec4bf9b2705be8"
"spack_url": "https://github.com/spack/spack",
"spack_commit": "0c2be44e4ece21eb091ad5de4c97716b7c6d4c87",
"spack_commit_note": "v1.1.0 (Nov 14th 2025)",
"spack_packages_commit": "cfa8d650480c409de2d568cf1355bf7e509f4c1c",
"spack_packages_note": "Jan 21st 2026"
}
4 changes: 2 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -795,8 +795,8 @@ endif()

if( ENABLE_HYPRE )
set( HYPRE_DIR "${CMAKE_INSTALL_PREFIX}/hypre" )
set( HYPRE_URL "https://github.com/hypre-space/hypre/archive/907a2d07b64fe47bdde4540c54665c83ced83a2c.tar.gz" )
set( HYPRE_URL_HASH "ca114fe641fc804303804bef3701e1e94b579205728667a69b512410d60f9e03" )
set( HYPRE_URL "https://github.com/hypre-space/hypre/archive/89b60a212f06bcc4d30a59f3961bcd8a937415f3.tar.gz" )
set( HYPRE_URL_HASH "052e4d63ab9bc02451173ce8b41f4a8f5c27dce620b6d85b3079ed5281157611" )
set( HYPRE_DEPENDS "" )


Expand Down
1 change: 1 addition & 0 deletions docker/pecan-spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,7 @@ spack:
buildable: false

openmpi:
buildable: false
externals:
# Pecan CPU/GPU
- spec: openmpi@4.0.1%gcc@8.2.0
Expand Down
21 changes: 11 additions & 10 deletions docker/rocky-spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ spack:

toolchains:
gcc-13:
- spec: cxxflags='-pthread'
- spec: cflags='-pthread'
- spec: cxxflags='-fPIC -pthread'
- spec: cflags='-fPIC -pthread'
- spec: '%c=gcc@13.3.1'
when: '%c'
- spec: '%cxx=gcc@13.3.1'
Expand All @@ -30,8 +30,8 @@ spack:
- spec: '%openmpi@4.1.1'
when: '%mpi'
clang-17:
- spec: cxxflags='-pthread'
- spec: cflags='-pthread'
- spec: cxxflags='-fPIC -pthread'
- spec: cflags='-fPIC -pthread'
- spec: '%[virtuals=c]llvm@17.0.6+clang~flang~lld~lldb'
when: '%c'
- spec: '%[virtuals=cxx]llvm@17.0.6+clang~flang~lld~lldb'
Expand All @@ -47,7 +47,7 @@ spack:

mpi:
require:
- openmpi
- openmpi@4.1.1

blas:
require:
Expand All @@ -62,8 +62,10 @@ spack:
prefix: /usr
extra_attributes:
compilers:
c: /usr/bin/clang
cxx: /usr/bin/clang++
# Use wrappers that bake in --gcc-toolchain for gcc-toolset-13, so NVCC's -ccbin
# doesn't accidentally pick GCC 8 headers when compiling CUDA sources.
c: /usr/local/bin/clang-gcc13
cxx: /usr/local/bin/clang++-gcc13
gcc:
externals:
- spec: gcc@13.3.1 languages:='c,c++,fortran'
Expand Down Expand Up @@ -95,9 +97,7 @@ spack:
cuda:
buildable: False
externals:
- spec: cuda@12.9.1 +allow-unsupported-compilers %gcc@13.3.1
prefix: /usr/local/cuda
- spec: cuda@12.9.1 +allow-unsupported-compilers %llvm@17.0.6
- spec: cuda@12.9.1 +allow-unsupported-compilers
prefix: /usr/local/cuda
m4:
buildable: false
Expand All @@ -116,6 +116,7 @@ spack:
- spec: netlib-blas@3.8.0
prefix: /usr
openmpi:
buildable: false
externals:
- spec: openmpi@4.1.1
prefix: /usr/lib64/openmpi
Expand Down
40 changes: 23 additions & 17 deletions docker/spack.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -25,27 +25,27 @@ spack:
when: '%cxx'
- spec: '%[virtuals=fortran]gcc@11.4.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi'
when: '%mpi'
clang-10:
- spec: '%[virtuals=c]llvm@10.0.0+clang~flang~lld~lldb'
- spec: '%[virtuals=c]llvm@10.0.0+clang~flang~lld~lldb openmp=project'
when: '%c'
- spec: '%[virtuals=cxx]llvm@10.0.0+clang~flang~lld~lldb'
- spec: '%[virtuals=cxx]llvm@10.0.0+clang~flang~lld~lldb openmp=project'
when: '%cxx'
- spec: '%[virtuals=fortran]gcc@9.5.0'
- spec: '%[virtuals=fortran]gcc@9.4.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi'
when: '%mpi'
gcc-9:
- spec: cxxflags='-pthread'
- spec: cflags='-pthread'
- spec: '%c=gcc@9.5.0'
- spec: '%c=gcc@9.4.0'
when: '%c'
- spec: '%cxx=gcc@9.5.0'
- spec: '%cxx=gcc@9.4.0'
when: '%cxx'
- spec: '%fortran=gcc@9.5.0'
- spec: '%fortran=gcc@9.4.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi %gcc@9.4.0'
when: '%mpi'
gcc-10:
- spec: cxxflags='-pthread'
Expand All @@ -56,7 +56,7 @@ spack:
when: '%cxx'
- spec: '%fortran=gcc@10.5.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi %gcc@10.5.0'
when: '%mpi'
gcc-11:
- spec: cxxflags='-pthread'
Expand All @@ -67,7 +67,7 @@ spack:
when: '%cxx'
- spec: '%fortran=gcc@11.4.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi %gcc@11.4.0'
when: '%mpi'
gcc-12:
- spec: cxxflags='-pthread'
Expand All @@ -78,7 +78,7 @@ spack:
when: '%cxx'
- spec: '%fortran=gcc@12.3.0'
when: '%fortran'
- spec: '%openmpi@4.1.2'
- spec: '%openmpi %gcc@12.3.0'
when: '%mpi'

packages:
Expand All @@ -87,7 +87,7 @@ spack:

mpi:
require:
- openmpi
- openmpi@4.1.2

blas:
require:
Expand All @@ -98,7 +98,7 @@ spack:

llvm:
externals:
- spec: llvm@10.0.0+clang~flang~lld~lldb
- spec: llvm@10.0.0+clang~flang~lld~lldb openmp=project
prefix: /usr
extra_attributes:
compilers:
Expand All @@ -113,7 +113,7 @@ spack:

gcc:
externals:
- spec: gcc@9.5.0 languages:='c,c++,fortran'
- spec: gcc@9.4.0 languages:='c,c++,fortran'
prefix: /usr
extra_attributes:
compilers:
Expand Down Expand Up @@ -193,11 +193,17 @@ spack:
- spec: netlib-blas@3.10.0
prefix: /usr
openmpi:
buildable: false
externals:
- spec: openmpi@4.1.2 %llvm
# Ubuntu 22.04 (apt) provides OpenMPI 4.1.2. We treat it as external for all toolchains
# to prevent Spack from building OpenMPI (which may otherwise drift to v5).
- spec: openmpi@4.1.2 %clang@15.0.7
prefix: /usr
modules: [mpi]
- spec: openmpi@4.1.2 %clang@10.0.0
prefix: /usr
modules: [mpi]
- spec: openmpi@4.1.2 %gcc@9.5.0
- spec: openmpi@4.1.2 %gcc@9.4.0
prefix: /usr
- spec: openmpi@4.1.2 %gcc@10.5.0
prefix: /usr
Expand Down
42 changes: 24 additions & 18 deletions docker/tpl-rockylinux-clang-cuda-12.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,16 @@ ARG BLD_DIR=$TMP_DIR/build

FROM nvidia/cuda:12.9.1-devel-rockylinux8 AS tpl_toolchain_intersect_geosx_toolchain
ARG SRC_DIR

ARG INSTALL_DIR
ENV GEOSX_TPL_DIR=$INSTALL_DIR

# Installing dependencies
RUN dnf clean all && \
dnf -y update && \
dnf -y install dnf-plugins-core && \
dnf config-manager --set-enabled powertools || dnf config-manager --set-enabled devel && \
dnf -y install \
which \
which \
clang-17.0.6 \
gcc-toolset-13 \
python3 \
Expand All @@ -23,7 +24,6 @@ RUN dnf clean all && \
lapack \
openmpi \
openmpi-devel \
# Additional spack dependencies
python3-pip \
unzip \
mpfr-devel \
Expand All @@ -32,8 +32,6 @@ RUN dnf clean all && \
xz \
python3-virtualenv

RUN dnf config-manager --set-enabled &

# Install clingo for Spack
RUN python3 -m pip install --upgrade pip && \
python3 -m pip install clingo
Expand All @@ -45,10 +43,7 @@ FROM tpl_toolchain_intersect_geosx_toolchain AS tpl_toolchain
ARG SRC_DIR
ARG BLD_DIR

# Install required packages using dnf
RUN dnf clean all && \
dnf -y update --exclude=clang*,compiler-rt,libomp*,llvm* && \
dnf -y install \
RUN dnf -y install \
tbb-devel \
bc \
file \
Expand All @@ -59,25 +54,39 @@ RUN dnf clean all && \
m4 \
git

# Run uberenv
# Create clang wrappers that always use gcc-toolset-13 for libstdc++ headers/libs.
# This is critical for CUDA builds where NVCC invokes the host compiler via -ccbin.
RUN printf '%s\n' '#!/usr/bin/env bash' \
'exec /usr/bin/clang --gcc-toolchain=/opt/rh/gcc-toolset-13/root/usr "$@"' \
> /usr/local/bin/clang-gcc13 && \
chmod +x /usr/local/bin/clang-gcc13 && \
printf '%s\n' '#!/usr/bin/env bash' \
'exec /usr/bin/clang++ --gcc-toolchain=/opt/rh/gcc-toolset-13/root/usr "$@"' \
> /usr/local/bin/clang++-gcc13 && \
chmod +x /usr/local/bin/clang++-gcc13 && \
/usr/local/bin/clang-gcc13 --version && \
/usr/local/bin/clang++-gcc13 --version

# RUN uberenv
# Have to create install directory first for uberenv
# -k flag is to ignore SSL errors
# 1. We wrap this in 'scl enable gcc-toolset-13' so the build finds GCC 13 headers.
# 2. gcc-toolchain selection is handled by the clang wrapper scripts + Spack llvm external compiler paths.
RUN --mount=src=.,dst=$SRC_DIR,readwrite cd ${SRC_DIR} && \
mkdir -p ${GEOSX_TPL_DIR} && \
# Create symlink to openmpi include directory
ln -s /usr/include/openmpi-x86_64 /usr/lib64/openmpi/include && \
# Create symlinks to blas/lapack libraries
ln -s /usr/lib64/libblas.so.3 /usr/lib64/libblas.so && \
ln -s /usr/lib64/liblapack.so.3 /usr/lib64/liblapack.so && \
scl enable gcc-toolset-13 ' \
./scripts/uberenv/uberenv.py \
--spec "+cuda~uncrustify~openmp~pygeosx cuda_arch=70 %clang-17 ^cuda@12.9.1+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spack-env-file=${SRC_DIR}/docker/rocky-spack.yaml \
--project-json=.uberenv_config.json \
--prefix ${GEOSX_TPL_DIR} \
-k && \
# Remove host-config generated for LvArray
rm lvarray* && \
# Rename and copy spack-generated host-config to root directory
-k ' && \
rm -f lvarray* && \
cp *.cmake /spack-generated.cmake && \
# Remove extraneous spack files
cd ${GEOSX_TPL_DIR} && \
Expand All @@ -95,9 +104,6 @@ COPY --from=tpl_toolchain /spack-generated.cmake /
# Install required packages using dnf
RUN dnf clean all && \
rm -rf /var/cache/dnf && \
dnf -y install dnf-plugins-core && \
dnf config-manager --set-enabled devel && \
dnf -y update --exclude=clang*,compiler-rt,libomp*,llvm* && \
dnf -y install \
openssh-clients \
ca-certificates \
Expand All @@ -115,4 +121,4 @@ RUN dnf clean all && \

# Run the installation script
RUN --mount=src=.,dst=$SRC_DIR $SRC_DIR/docker/install-sccache.sh
ENV SCCACHE=/opt/sccache/bin/sccache
ENV SCCACHE=/opt/sccache/bin/sccache
2 changes: 1 addition & 1 deletion docker/tpl-rockylinux-gcc-cuda-12.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ RUN --mount=src=.,dst=$SRC_DIR,readwrite cd ${SRC_DIR} && \
ln -s /usr/lib64/libblas.so.3 /usr/lib64/libblas.so && \
ln -s /usr/lib64/liblapack.so.3 /usr/lib64/liblapack.so && \
./scripts/uberenv/uberenv.py \
--spec "+cuda~uncrustify~openmp~pygeosx cuda_arch=70 %gcc-13 ^cuda@12.9.1+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spec "+cuda~uncrustify~openmp~pygeosx lai=hypre cuda_arch=70 %gcc-13 ^cuda@12.9.1+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spack-env-file=${SRC_DIR}/docker/rocky-spack.yaml \
--project-json=.uberenv_config.json \
--prefix ${GEOSX_TPL_DIR} \
Expand Down
2 changes: 1 addition & 1 deletion docker/tpl-ubuntu-clang-cuda.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ RUN --mount=src=.,dst=$SRC_DIR,readwrite cd ${SRC_DIR} && \
mkdir -p ${GEOSX_TPL_DIR} && \
./scripts/uberenv/uberenv.py \
--spec "+cuda~uncrustify~openmp~pygeosx cuda_arch=70 %clang-10 ^cuda@11.8.0+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spack-env-file=${SRC_DIR}/docker/spack.yaml \
--spack-env-file=${SRC_DIR}/docker/ubuntu20-clang-cuda-spack.yaml \
--project-json=.uberenv_config.json \
--prefix ${GEOSX_TPL_DIR} \
-k && \
Expand Down
Loading
Loading