Skip to content

Commit

Permalink
CI: Update Docker images
Browse files Browse the repository at this point in the history
  • Loading branch information
eschnett committed Dec 23, 2024
1 parent 4844efa commit c73b2b2
Show file tree
Hide file tree
Showing 6 changed files with 84 additions and 57 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
30 changes: 18 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 @@ -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;; \
Expand Down
30 changes: 18 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 @@ -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;; \
Expand Down
28 changes: 16 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 @@ -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;; \
Expand Down
22 changes: 14 additions & 8 deletions docker/carpetx-oneapi.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 \
Expand All @@ -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 \
Expand Down Expand Up @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand Down Expand Up @@ -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;; \
Expand Down
Loading

0 comments on commit c73b2b2

Please sign in to comment.