diff --git a/Arith/src/rten.hxx b/Arith/src/rten.hxx index 3926e1452..9c276417c 100644 --- a/Arith/src/rten.hxx +++ b/Arith/src/rten.hxx @@ -177,7 +177,7 @@ public: template friend constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST void fmap_(const F &f, const rten &x, const rten &...args) { - fmap_(f, x.args, args.elts...); + fmap_(f, x.elts, args.elts...); } template < diff --git a/docker/carpetx-arm64v8-cpu.dockerfile b/docker/carpetx-arm64v8-cpu.dockerfile index 271819077..5db7fd265 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 && \ @@ -219,6 +225,8 @@ RUN mkdir src && \ true) && \ rm -rf src +COPY patches/openPMD-api.patch /cactus/patches/ + # Install openPMD-api # openPMD-api defines a standard for laying out AMR data in a file # - depends on ADIOS2 @@ -227,6 +235,8 @@ RUN mkdir src && \ wget https://github.com/openPMD/openPMD-api/archive/refs/tags/0.16.0.tar.gz && \ tar xzf 0.16.0.tar.gz && \ cd openPMD-api-0.16.0 && \ + patch -p1 "${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 && \ @@ -219,6 +225,8 @@ RUN mkdir src && \ true) && \ rm -rf src +COPY patches/openPMD-api.patch /cactus/patches/ + # Install openPMD-api # openPMD-api defines a standard for laying out AMR data in a file # - depends on ADIOS2 @@ -227,6 +235,8 @@ RUN mkdir src && \ wget https://github.com/openPMD/openPMD-api/archive/refs/tags/0.16.0.tar.gz && \ tar xzf 0.16.0.tar.gz && \ cd openPMD-api-0.16.0 && \ + patch -p1 "${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 && \ @@ -208,6 +212,8 @@ RUN mkdir src && \ true) && \ rm -rf src +COPY patches/openPMD-api.patch /cactus/patches/ + # Install openPMD-api # openPMD-api defines a standard for laying out AMR data in a file # - depends on ADIOS2 @@ -216,6 +222,8 @@ RUN mkdir src && \ wget https://github.com/openPMD/openPMD-api/archive/refs/tags/0.16.0.tar.gz && \ tar xzf 0.16.0.tar.gz && \ cd openPMD-api-0.16.0 && \ + patch -p1 "${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 && \ @@ -211,6 +216,8 @@ RUN mkdir src && \ true) && \ rm -rf src +COPY patches/openPMD-api.patch /cactus/patches/ + # Install openPMD-api # openPMD-api defines a standard for laying out AMR data in a file # - depends on ADIOS2 @@ -219,6 +226,8 @@ RUN mkdir src && \ wget https://github.com/openPMD/openPMD-api/archive/refs/tags/0.16.0.tar.gz && \ tar xzf 0.16.0.tar.gz && \ cd openPMD-api-0.16.0 && \ + patch -p1