diff --git a/docker/carpetx-cpu.dockerfile b/docker/carpetx-cpu.dockerfile index 47faf4cdd..29dff08a7 100644 --- a/docker/carpetx-cpu.dockerfile +++ b/docker/carpetx-cpu.dockerfile @@ -6,18 +6,19 @@ # docker build --build-arg real_precision=real32 --file carpetx-cpu.dockerfile --tag einsteintoolkit/carpetx:cpu-real32 . # docker push einsteintoolkit/carpetx:cpu-real32 -# FROM ubuntu:22.04 # jammy is ubuntu:22.04 -# FROM ubuntu:jammy-20230816 -# FROM ubuntu:jammy-20230916 FROM ubuntu:jammy-20231004 +ENV DEBIAN_FRONTEND=noninteractive \ + LANGUAGE=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 + RUN mkdir /cactus WORKDIR /cactus # Install system packages # - Boost on Ubuntu requires OpenMPI -ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --yes --no-install-recommends install \ build-essential \ @@ -68,9 +69,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.20.2.tar.gz && \ - tar xzf v0.20.2.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.20.2" && \ + 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" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -95,13 +96,34 @@ RUN mkdir src && \ true) && \ rm -rf src "${HOME}/.spack" +# Install blosc2 +# blosc2 is a compression library, comparable to zlib +RUN mkdir src && \ + (cd src && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.11.2.tar.gz && \ + tar xzf v2.11.2.tar.gz && \ + cd c-blosc2-2.11.2 && \ + cmake -B build -G Ninja -S . \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBUILD_BENCHMARKS=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_FUZZERS=OFF \ + -DBUILD_TESTS=OFF \ + && \ + cmake --build build && \ + cmake --install build && \ + true) && \ + rm -rf src + # Install ADIOS2 # ADIOS2 is a parallel I/O library, comparable to HDF5 +# - depends on blosc2 RUN mkdir src && \ (cd src && \ - wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.1.tar.gz && \ - tar xzf v2.9.1.tar.gz && \ - cd ADIOS2-2.9.1 && \ + wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.2.tar.gz && \ + tar xzf v2.9.2.tar.gz && \ + cd ADIOS2-2.9.2 && \ cmake -B build -G Ninja -S . \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -119,9 +141,9 @@ RUN mkdir src && \ # - depends on yaml-cpp RUN mkdir src && \ (cd src && \ - wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.2.1.tar.gz && \ - tar xzf 7.2.1.tar.gz && \ - cd asdf-cxx-version-7.2.1 && \ + wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.3.2.tar.gz && \ + tar xzf 7.3.2.tar.gz && \ + cd asdf-cxx-version-7.3.2 && \ cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ cmake --build build && \ cmake --install build && \ @@ -202,12 +224,13 @@ RUN mkdir src && \ # SimulationIO is an I/O library like HDF5 # - depends on asdf-cxx # - depends on yaml-cpp +# Currently disabling ASDF because there is a confusion with C++11/17 standards RUN mkdir src && \ (cd src && \ wget https://github.com/eschnett/SimulationIO/archive/refs/tags/version/9.0.3.tar.gz && \ tar xzf 9.0.3.tar.gz && \ cd SimulationIO-version-9.0.3 && \ - cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ + cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_ASDF_CXX=OFF && \ cmake --build build && \ cmake --install build && \ true) && \ @@ -235,9 +258,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/23.10.tar.gz && \ - tar xzf 23.10.tar.gz && \ - cd amrex-23.10 && \ + wget https://github.com/AMReX-Codes/amrex/archive/23.11.tar.gz && \ + tar xzf 23.11.tar.gz && \ + cd amrex-23.11 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-cuda.dockerfile b/docker/carpetx-cuda.dockerfile index 98dc03ee2..5bb309152 100644 --- a/docker/carpetx-cuda.dockerfile +++ b/docker/carpetx-cuda.dockerfile @@ -6,14 +6,19 @@ # 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.2.0-devel-ubuntu22.04 +# FROM nvidia/cuda:12.2.0-devel-ubuntu22.04 +FROM nvidia/cuda:12.3.0-devel-ubuntu22.04 + +ENV DEBIAN_FRONTEND=noninteractive \ + LANGUAGE=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 RUN mkdir /cactus WORKDIR /cactus # Install system packages # - Boost on Ubuntu requires OpenMPI -ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --yes --no-install-recommends install \ build-essential \ @@ -64,9 +69,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.20.2.tar.gz && \ - tar xzf v0.20.2.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.20.2" && \ + 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" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -92,13 +97,34 @@ RUN mkdir src && \ true) && \ rm -rf src "${HOME}/.spack" +# Install blosc2 +# blosc2 is a compression library, comparable to zlib +RUN mkdir src && \ + (cd src && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.11.2.tar.gz && \ + tar xzf v2.11.2.tar.gz && \ + cd c-blosc2-2.11.2 && \ + cmake -B build -G Ninja -S . \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBUILD_BENCHMARKS=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_FUZZERS=OFF \ + -DBUILD_TESTS=OFF \ + && \ + cmake --build build && \ + cmake --install build && \ + true) && \ + rm -rf src + # Install ADIOS2 # ADIOS2 is a parallel I/O library, comparable to HDF5 +# - depends on blosc2 RUN mkdir src && \ (cd src && \ - wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.1.tar.gz && \ - tar xzf v2.9.1.tar.gz && \ - cd ADIOS2-2.9.1 && \ + wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.2.tar.gz && \ + tar xzf v2.9.2.tar.gz && \ + cd ADIOS2-2.9.2 && \ cmake -B build -G Ninja -S . \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -116,9 +142,9 @@ RUN mkdir src && \ # - depends on yaml-cpp RUN mkdir src && \ (cd src && \ - wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.2.1.tar.gz && \ - tar xzf 7.2.1.tar.gz && \ - cd asdf-cxx-version-7.2.1 && \ + wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.3.2.tar.gz && \ + tar xzf 7.3.2.tar.gz && \ + cd asdf-cxx-version-7.3.2 && \ cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ cmake --build build && \ cmake --install build && \ @@ -199,12 +225,13 @@ RUN mkdir src && \ # SimulationIO is an I/O library like HDF5 # - depends on asdf-cxx # - depends on yaml-cpp +# Currently disabling ASDF because there is a confusion with C++11/17 standards RUN mkdir src && \ (cd src && \ wget https://github.com/eschnett/SimulationIO/archive/refs/tags/version/9.0.3.tar.gz && \ tar xzf 9.0.3.tar.gz && \ cd SimulationIO-version-9.0.3 && \ - cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ + cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_ASDF_CXX=OFF && \ cmake --build build && \ cmake --install build && \ true) && \ @@ -232,9 +259,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/23.10.tar.gz && \ - tar xzf 23.10.tar.gz && \ - cd amrex-23.10 && \ + wget https://github.com/AMReX-Codes/amrex/archive/23.11.tar.gz && \ + tar xzf 23.11.tar.gz && \ + cd amrex-23.11 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \ diff --git a/docker/carpetx-rocm.dockerfile b/docker/carpetx-rocm.dockerfile index a990eaf07..2ad42b399 100644 --- a/docker/carpetx-rocm.dockerfile +++ b/docker/carpetx-rocm.dockerfile @@ -6,15 +6,18 @@ # 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:5.6.1 FROM rocm/dev-ubuntu-22.04:5.7 +ENV DEBIAN_FRONTEND=noninteractive \ + LANGUAGE=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LC_ALL=en_US.UTF-8 + RUN mkdir /cactus WORKDIR /cactus # Install system packages # - Boost on Ubuntu requires OpenMPI -ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get --yes --no-install-recommends install \ build-essential \ @@ -68,9 +71,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.20.2.tar.gz && \ - tar xzf v0.20.2.tar.gz && \ - export SPACK_ROOT="$(pwd)/spack-0.20.2" && \ + 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" && \ mkdir -p "${HOME}/.spack" && \ echo 'config: {install_tree: {root: /spack}}' >"${HOME}/.spack/config.yaml" && \ . ${SPACK_ROOT}/share/spack/setup-env.sh && \ @@ -95,13 +98,33 @@ RUN mkdir src && \ true) && \ rm -rf src "${HOME}/.spack" +# Install blosc2 +# blosc2 is a compression library, comparable to zlib +RUN mkdir src && \ + (cd src && \ + wget https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.11.2.tar.gz && \ + tar xzf v2.11.2.tar.gz && \ + cd c-blosc2-2.11.2 && \ + cmake -B build -G Ninja -S . \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_INSTALL_PREFIX=/usr/local \ + -DBUILD_BENCHMARKS=OFF \ + -DBUILD_EXAMPLES=OFF \ + -DBUILD_FUZZERS=OFF \ + -DBUILD_TESTS=OFF \ + && \ + cmake --build build && \ + cmake --install build && \ + true) && \ + rm -rf src + # Install ADIOS2 # ADIOS2 is a parallel I/O library, comparable to HDF5 RUN mkdir src && \ (cd src && \ - wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.1.tar.gz && \ - tar xzf v2.9.1.tar.gz && \ - cd ADIOS2-2.9.1 && \ + wget https://github.com/ornladios/ADIOS2/archive/refs/tags/v2.9.2.tar.gz && \ + tar xzf v2.9.2.tar.gz && \ + cd ADIOS2-2.9.2 && \ cmake -B build -G Ninja -S . \ -DCMAKE_BUILD_TYPE=RelWithDebInfo \ -DCMAKE_INSTALL_PREFIX=/usr/local \ @@ -119,9 +142,9 @@ RUN mkdir src && \ # - depends on yaml-cpp RUN mkdir src && \ (cd src && \ - wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.2.1.tar.gz && \ - tar xzf 7.2.1.tar.gz && \ - cd asdf-cxx-version-7.2.1 && \ + wget https://github.com/eschnett/asdf-cxx/archive/refs/tags/version/7.3.2.tar.gz && \ + tar xzf 7.3.2.tar.gz && \ + cd asdf-cxx-version-7.3.2 && \ cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ cmake --build build && \ cmake --install build && \ @@ -202,12 +225,13 @@ RUN mkdir src && \ # SimulationIO is an I/O library like HDF5 # - depends on asdf-cxx # - depends on yaml-cpp +# Currently disabling ASDF because there is a confusion with C++11/17 standards RUN mkdir src && \ (cd src && \ wget https://github.com/eschnett/SimulationIO/archive/refs/tags/version/9.0.3.tar.gz && \ tar xzf 9.0.3.tar.gz && \ cd SimulationIO-version-9.0.3 && \ - cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local && \ + cmake -B build -G Ninja -S . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=/usr/local -DENABLE_ASDF_CXX=OFF && \ cmake --build build && \ cmake --install build && \ true) && \ @@ -235,9 +259,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/23.10.tar.gz && \ - tar xzf 23.10.tar.gz && \ - cd amrex-23.10 && \ + wget https://github.com/AMReX-Codes/amrex/archive/23.11.tar.gz && \ + tar xzf 23.11.tar.gz && \ + cd amrex-23.11 && \ case $real_precision in \ real32) precision=SINGLE;; \ real64) precision=DOUBLE;; \