Skip to content

Commit

Permalink
Merge pull request #327 from EinsteinToolkit/eschnett/docker-amrex-up…
Browse files Browse the repository at this point in the history
…date

CI: Update Docker images
  • Loading branch information
eschnett authored Dec 23, 2024
2 parents 4844efa + 9f0af9a commit 145a8ad
Show file tree
Hide file tree
Showing 8 changed files with 120 additions and 62 deletions.
2 changes: 1 addition & 1 deletion Arith/src/rten.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ public:
template <typename F, typename... Args>
friend constexpr ARITH_INLINE ARITH_DEVICE ARITH_HOST void
fmap_(const F &f, const rten &x, const rten<Args, D> &...args) {
fmap_(f, x.args, args.elts...);
fmap_(f, x.elts, args.elts...);
}

template <
Expand Down
34 changes: 22 additions & 12 deletions docker/carpetx-arm64v8-cpu.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -29,6 +28,7 @@ RUN apt-get update && \
ca-certificates \
clang-format \
cmake \
curl \
cvs \
diffutils \
elfutils \
Expand All @@ -37,6 +37,7 @@ RUN apt-get update && \
gdb \
gfortran \
git \
hdf5-filter-plugin-zfp-serial \
hdf5-tools \
hwloc-nox \
language-pack-en \
Expand All @@ -59,6 +60,7 @@ RUN apt-get update && \
libtool \
libudev-dev \
libyaml-cpp-dev \
libzfp-dev \
libzstd-dev \
locales \
m4 \
Expand Down Expand Up @@ -90,16 +92,17 @@ 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 && \
spack external find \
autoconf \
automake \
cmake \
curl \
diffutils \
elfutils \
gmake \
Expand All @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand Down Expand Up @@ -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
Expand All @@ -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 </cactus/patches/openPMD-api.patch && \
rm /cactus/patches/openPMD-api.patch && \
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local \
Expand Down Expand Up @@ -321,9 +331,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;; \
Expand Down
34 changes: 22 additions & 12 deletions docker/carpetx-cpu.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -29,6 +28,7 @@ RUN apt-get update && \
ca-certificates \
clang-format \
cmake \
curl \
cvs \
diffutils \
elfutils \
Expand All @@ -37,6 +37,7 @@ RUN apt-get update && \
gdb \
gfortran \
git \
hdf5-filter-plugin-zfp-serial \
hdf5-tools \
hwloc-nox \
language-pack-en \
Expand All @@ -59,6 +60,7 @@ RUN apt-get update && \
libtool \
libudev-dev \
libyaml-cpp-dev \
libzfp-dev \
libzstd-dev \
locales \
m4 \
Expand Down Expand Up @@ -90,16 +92,17 @@ 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 && \
spack external find \
autoconf \
automake \
cmake \
curl \
diffutils \
elfutils \
gmake \
Expand All @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand Down Expand Up @@ -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
Expand All @@ -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 </cactus/patches/openPMD-api.patch && \
rm /cactus/patches/openPMD-api.patch && \
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local \
Expand Down Expand Up @@ -321,9 +331,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;; \
Expand Down
32 changes: 20 additions & 12 deletions docker/carpetx-cuda.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -34,6 +33,7 @@ RUN apt-get update && \
gdb \
gfortran \
git \
hdf5-filter-plugin-zfp-serial \
hdf5-tools \
hwloc-nox \
language-pack-en \
Expand All @@ -53,6 +53,7 @@ RUN apt-get update && \
libtool \
libudev-dev \
libyaml-cpp-dev \
libzfp-dev \
libzstd-dev \
locales \
m4 \
Expand All @@ -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 && \
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand Down Expand Up @@ -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
Expand All @@ -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 </cactus/patches/openPMD-api.patch && \
rm /cactus/patches/openPMD-api.patch && \
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr/local \
Expand Down Expand Up @@ -310,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;; \
Expand Down
Loading

0 comments on commit 145a8ad

Please sign in to comment.