From c73b2b27358f8937470874f14f8a1c2f0821a233 Mon Sep 17 00:00:00 2001 From: Erik Schnetter Date: Mon, 23 Dec 2024 09:31:00 -0500 Subject: [PATCH] CI: Update Docker images --- .github/workflows/ci.yml | 2 +- docker/carpetx-arm64v8-cpu.dockerfile | 30 ++++++++++++++++----------- docker/carpetx-cpu.dockerfile | 30 ++++++++++++++++----------- docker/carpetx-cuda.dockerfile | 28 ++++++++++++++----------- docker/carpetx-oneapi.dockerfile | 22 +++++++++++++------- docker/carpetx-rocm.dockerfile | 29 +++++++++++++++----------- 6 files changed, 84 insertions(+), 57 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 30af9578b..168da0b4b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,7 +34,7 @@ jobs: # The type of runner that the job will run on runs-on: ubuntu-latest - container: einsteintoolkit/carpetx:${{matrix.accelerator}}-${{matrix.real-precision}} + container: einsteintoolkit/carpetx:${{matrix.accelerator}}-${{matrix.real-precision}}-testing # Steps represent a sequence of tasks that will be executed as part of the job steps: diff --git a/docker/carpetx-arm64v8-cpu.dockerfile b/docker/carpetx-arm64v8-cpu.dockerfile index 271819077..4976aa7a6 100644 --- a/docker/carpetx-arm64v8-cpu.dockerfile +++ b/docker/carpetx-arm64v8-cpu.dockerfile @@ -7,9 +7,8 @@ # docker push einsteintoolkit/carpetx:arm64v8-cpu-real32 # noble is ubuntu:24.04 -# FROM arm64v8/ubuntu:noble-20240801 -# FROM arm64v8/ubuntu:noble-20240904.1 -FROM arm64v8/ubuntu:noble-20241011 +# FROM arm64v8/ubuntu:noble-20241015 +FROM arm64v8/ubuntu:noble-20241118.1 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -29,6 +28,7 @@ RUN apt-get update && \ ca-certificates \ clang-format \ cmake \ + curl \ cvs \ diffutils \ elfutils \ @@ -37,6 +37,7 @@ RUN apt-get update && \ gdb \ gfortran \ git \ + hdf5-filter-plugin-zfp-serial \ hdf5-tools \ hwloc-nox \ language-pack-en \ @@ -59,6 +60,7 @@ RUN apt-get update && \ libtool \ libudev-dev \ libyaml-cpp-dev \ + libzfp-dev \ libzstd-dev \ locales \ m4 \ @@ -90,9 +92,9 @@ RUN apt-get update && \ # Try to reuse build tools from Ubuntu, but do not use any libraries because HPC Toolkit is a bit iffy to install. RUN mkdir src && \ (cd src && \ - wget https://github.com/spack/spack/archive/refs/tags/v0.22.2.tar.gz && \ - tar xzf v0.22.2.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.22.2" && \ + wget https://github.com/spack/spack/archive/refs/tags/v0.23.0.tar.gz && \ + tar xzf v0.23.0.tar.gz && \ + export SPACK_ROOT="$(pwd)/spack-0.23.0" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -100,6 +102,7 @@ RUN mkdir src && \ autoconf \ automake \ cmake \ + curl \ diffutils \ elfutils \ gmake \ @@ -121,9 +124,9 @@ RUN mkdir src && \ # blosc2 is a compression library, comparable to zlib RUN mkdir src && \ (cd src && \ - wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.1.tar.gz && \ - tar xzf v2.15.1.tar.gz && \ - cd c-blosc2-2.15.1 && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.2.tar.gz && \ + tar xzf v2.15.2.tar.gz && \ + cd c-blosc2-2.15.2 && \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -174,9 +177,12 @@ RUN mkdir src && \ -DBUILD_TESTING=OFF \ -DADIOS2_BUILD_EXAMPLES=OFF \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ + -DADIOS2_USE_BZip2=ON \ -DADIOS2_USE_Blosc2=ON \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_HDF5=ON \ -DADIOS2_USE_MGARD=ON \ + -DADIOS2_USE_ZFP=ON \ && \ cmake --build build && \ cmake --install build && \ @@ -321,9 +327,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.11.tar.gz && \ - tar xzf 24.11.tar.gz && \ - cd amrex-24.11 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.12.tar.gz && \ + tar xzf 24.12.tar.gz && \ + cd amrex-24.12 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-cpu.dockerfile b/docker/carpetx-cpu.dockerfile index e6b40aa0e..752e742c2 100644 --- a/docker/carpetx-cpu.dockerfile +++ b/docker/carpetx-cpu.dockerfile @@ -7,9 +7,8 @@ # docker push einsteintoolkit/carpetx:cpu-real32 # noble is ubuntu:24.04 -# FROM amd64/ubuntu:noble-20240801 -# FROM amd64/ubuntu:noble-20240904.1 -FROM amd64/ubuntu:noble-20241011 +# FROM amd64/ubuntu:noble-20241015 +FROM amd64/ubuntu:noble-20241118.1 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -29,6 +28,7 @@ RUN apt-get update && \ ca-certificates \ clang-format \ cmake \ + curl \ cvs \ diffutils \ elfutils \ @@ -37,6 +37,7 @@ RUN apt-get update && \ gdb \ gfortran \ git \ + hdf5-filter-plugin-zfp-serial \ hdf5-tools \ hwloc-nox \ language-pack-en \ @@ -59,6 +60,7 @@ RUN apt-get update && \ libtool \ libudev-dev \ libyaml-cpp-dev \ + libzfp-dev \ libzstd-dev \ locales \ m4 \ @@ -90,9 +92,9 @@ RUN apt-get update && \ # Try to reuse build tools from Ubuntu, but do not use any libraries because HPC Toolkit is a bit iffy to install. RUN mkdir src && \ (cd src && \ - wget https://github.com/spack/spack/archive/refs/tags/v0.22.2.tar.gz && \ - tar xzf v0.22.2.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.22.2" && \ + wget https://github.com/spack/spack/archive/refs/tags/v0.23.0.tar.gz && \ + tar xzf v0.23.0.tar.gz && \ + export SPACK_ROOT="$(pwd)/spack-0.23.0" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -100,6 +102,7 @@ RUN mkdir src && \ autoconf \ automake \ cmake \ + curl \ diffutils \ elfutils \ gmake \ @@ -121,9 +124,9 @@ RUN mkdir src && \ # blosc2 is a compression library, comparable to zlib RUN mkdir src && \ (cd src && \ - wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.1.tar.gz && \ - tar xzf v2.15.1.tar.gz && \ - cd c-blosc2-2.15.1 && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.2.tar.gz && \ + tar xzf v2.15.2.tar.gz && \ + cd c-blosc2-2.15.2 && \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -174,9 +177,12 @@ RUN mkdir src && \ -DBUILD_TESTING=OFF \ -DADIOS2_BUILD_EXAMPLES=OFF \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ + -DADIOS2_USE_BZip2=ON \ -DADIOS2_USE_Blosc2=ON \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_HDF5=ON \ -DADIOS2_USE_MGARD=ON \ + -DADIOS2_USE_ZFP=ON \ && \ cmake --build build && \ cmake --install build && \ @@ -321,9 +327,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.11.tar.gz && \ - tar xzf 24.11.tar.gz && \ - cd amrex-24.11 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.12.tar.gz && \ + tar xzf 24.12.tar.gz && \ + cd amrex-24.12 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-cuda.dockerfile b/docker/carpetx-cuda.dockerfile index 9ddaa5432..6f03bd7cc 100644 --- a/docker/carpetx-cuda.dockerfile +++ b/docker/carpetx-cuda.dockerfile @@ -6,9 +6,8 @@ # docker build --build-arg real_precision=real32 --file carpetx-cuda.dockerfile --tag einsteintoolkit/carpetx:cuda-real32 . # docker push einsteintoolkit/carpetx:cuda-real32 -# FROM nvidia/cuda:12.5.1-devel-ubuntu24.04 -# FROM nvidia/cuda:12.6.1-devel-ubuntu24.04 -FROM nvidia/cuda:12.6.2-devel-ubuntu24.04 +# FROM nvidia/cuda:12.6.2-devel-ubuntu24.04 +FROM nvidia/cuda:12.6.3-devel-ubuntu24.04 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -34,6 +33,7 @@ RUN apt-get update && \ gdb \ gfortran \ git \ + hdf5-filter-plugin-zfp-serial \ hdf5-tools \ hwloc-nox \ language-pack-en \ @@ -53,6 +53,7 @@ RUN apt-get update && \ libtool \ libudev-dev \ libyaml-cpp-dev \ + libzfp-dev \ libzstd-dev \ locales \ m4 \ @@ -77,9 +78,9 @@ RUN apt-get update && \ # # Install this first because it is expensive to build # RUN mkdir src && \ # (cd src && \ -# wget https://github.com/spack/spack/archive/refs/tags/v0.21.0.tar.gz && \ -# tar xzf v0.21.0.tar.gz && \ -# export SPACK_ROOT="$(pwd)/spack-0.21.0" && \ +# wget https://github.com/spack/spack/archive/refs/tags/v0.23.0.tar.gz && \ +# tar xzf v0.23.0.tar.gz && \ +# export SPACK_ROOT="$(pwd)/spack-0.23.0" && \ # mkdir -p "${HOME}/.spack" && \ # echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ # . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -109,9 +110,9 @@ RUN apt-get update && \ # blosc2 is a compression library, comparable to zlib RUN mkdir src && \ (cd src && \ - wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.1.tar.gz && \ - tar xzf v2.15.1.tar.gz && \ - cd c-blosc2-2.15.1 && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.2.tar.gz && \ + tar xzf v2.15.2.tar.gz && \ + cd c-blosc2-2.15.2 && \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -163,9 +164,12 @@ RUN mkdir src && \ -DBUILD_TESTING=OFF \ -DADIOS2_BUILD_EXAMPLES=OFF \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ + -DADIOS2_USE_BZip2=ON \ -DADIOS2_USE_Blosc2=ON \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_HDF5=ON \ -DADIOS2_USE_MGARD=ON \ + -DADIOS2_USE_ZFP=ON \ && \ cmake --build build && \ cmake --install build && \ @@ -310,9 +314,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.11.tar.gz && \ - tar xzf 24.11.tar.gz && \ - cd amrex-24.11 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.12.tar.gz && \ + tar xzf 24.12.tar.gz && \ + cd amrex-24.12 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-oneapi.dockerfile b/docker/carpetx-oneapi.dockerfile index 885c1e127..83a88a771 100644 --- a/docker/carpetx-oneapi.dockerfile +++ b/docker/carpetx-oneapi.dockerfile @@ -6,8 +6,9 @@ # docker build --build-arg real_precision=real32 --file carpetx-oneapi.dockerfile --tag einsteintoolkit/carpetx:oneapi-real32 . # docker push einsteintoolkit/carpetx:oneapi-real32 -# FROM intel/oneapi-basekit:2024.2.0-1-devel-ubuntu22.04 -FROM intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 +# FROM intel/oneapi-basekit:2024.2.1-0-devel-ubuntu22.04 +# FROM intel/oneapi-basekit:2025.0.0-0-devel-ubuntu24.04 +FROM intel/oneapi-basekit:2025.0.1-0-devel-ubuntu24.04 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -32,6 +33,7 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 28DA432DAAC8BAEA && gdb \ gfortran \ git \ + hdf5-filter-plugin-zfp-serial \ hdf5-tools \ hwloc-nox \ language-pack-en \ @@ -51,6 +53,7 @@ RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 28DA432DAAC8BAEA && libtool \ libudev-dev \ libyaml-cpp-dev \ + libzfp-dev \ libzstd-dev \ locales \ m4 \ @@ -87,9 +90,9 @@ RUN find /opt/intel -name 'impi.pc' -delete && \ # blosc2 is a compression library, comparable to zlib RUN mkdir src && \ (cd src && \ - wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.1.tar.gz && \ - tar xzf v2.15.1.tar.gz && \ - cd c-blosc2-2.15.1 && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.2.tar.gz && \ + tar xzf v2.15.2.tar.gz && \ + cd c-blosc2-2.15.2 && \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -141,9 +144,12 @@ RUN mkdir src && \ -DBUILD_TESTING=OFF \ -DADIOS2_BUILD_EXAMPLES=OFF \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ + -DADIOS2_USE_BZip2=ON \ -DADIOS2_USE_Blosc2=ON \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_HDF5=ON \ -DADIOS2_USE_MGARD=ON \ + -DADIOS2_USE_ZFP=ON \ && \ cmake --build build && \ cmake --install build && \ @@ -288,10 +294,10 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.11.tar.gz && \ - tar xzf 24.11.tar.gz && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.12.tar.gz && \ + tar xzf 24.12.tar.gz && \ rm -rf /opt/intel/oneapi/mpi && \ - cd amrex-24.11 && \ + cd amrex-24.12 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-rocm.dockerfile b/docker/carpetx-rocm.dockerfile index 3081c958b..0d67b5553 100644 --- a/docker/carpetx-rocm.dockerfile +++ b/docker/carpetx-rocm.dockerfile @@ -6,9 +6,9 @@ # docker build --build-arg real_precision=real32 --file carpetx-rocm.dockerfile --tag einsteintoolkit/carpetx:rocm-real32 . # docker push einsteintoolkit/carpetx:rocm-real32 -# FROM rocm/dev-ubuntu-22.04:6.1.2 -# FROM rocm/dev-ubuntu-24.04:6.2 -FROM rocm/dev-ubuntu-24.04:6.2 +# FROM rocm/dev-ubuntu-24.04:6.2.4 +# FROM rocm/dev-ubuntu-24.04:6.3 +FROM rocm/dev-ubuntu-24.04:6.3.1 ENV DEBIAN_FRONTEND=noninteractive \ LANGUAGE=en_US.en \ @@ -34,6 +34,7 @@ RUN apt-get update && \ gdb \ gfortran \ git \ + hdf5-filter-plugin-zfp-serial \ hdf5-tools \ hiprand-dev \ hwloc-nox \ @@ -54,6 +55,7 @@ RUN apt-get update && \ libtool \ libudev-dev \ libyaml-cpp-dev \ + libzfp-dev \ libzstd-dev \ locales \ m4 \ @@ -81,9 +83,9 @@ RUN apt-get update && \ # # Installing HPCToolkit without rocm since the install fails when this option is enabled. # RUN mkdir src && \ # (cd src && \ -# wget https://github.com/spack/spack/archive/refs/tags/v0.21.0.tar.gz && \ -# tar xzf v0.21.0.tar.gz && \ -# export SPACK_ROOT="$(pwd)/spack-0.21.0" && \ +# wget https://github.com/spack/spack/archive/refs/tags/v0.23.0.tar.gz && \ +# tar xzf v0.23.0.tar.gz && \ +# export SPACK_ROOT="$(pwd)/spack-0.23.0" && \ # mkdir -p "${HOME}/.spack" && \ # echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ # . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -112,9 +114,9 @@ RUN apt-get update && \ # blosc2 is a compression library, comparable to zlib RUN mkdir src && \ (cd src && \ - wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.1.tar.gz && \ - tar xzf v2.15.1.tar.gz && \ - cd c-blosc2-2.15.1 && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.15.2.tar.gz && \ + tar xzf v2.15.2.tar.gz && \ + cd c-blosc2-2.15.2 && \ cmake -B build -G Ninja \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -166,9 +168,12 @@ RUN mkdir src && \ -DBUILD_TESTING=OFF \ -DADIOS2_BUILD_EXAMPLES=OFF \ -DADIOS2_Blosc2_PREFER_SHARED=ON \ + -DADIOS2_USE_BZip2=ON \ -DADIOS2_USE_Blosc2=ON \ -DADIOS2_USE_Fortran=OFF \ + -DADIOS2_USE_HDF5=ON \ -DADIOS2_USE_MGARD=ON \ + -DADIOS2_USE_ZFP=ON \ && \ cmake --build build && \ cmake --install build && \ @@ -313,9 +318,9 @@ ARG real_precision=real64 # Should we keep the AMReX source tree around for debugging? RUN mkdir src && \ (cd src && \ - wget https://github.com/AMReX-Codes/amrex/archive/24.11.tar.gz && \ - tar xzf 24.11.tar.gz && \ - cd amrex-24.11 && \ + wget https://github.com/AMReX-Codes/amrex/archive/24.12.tar.gz && \ + tar xzf 24.12.tar.gz && \ + cd amrex-24.12 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \