Skip to content

Commit

Permalink
CI: Update Docker images to newer software versions
Browse files Browse the repository at this point in the history
  • Loading branch information
eschnett committed Nov 16, 2023
1 parent 5498a36 commit f02eef8
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 47 deletions.
57 changes: 40 additions & 17 deletions docker/carpetx-cpu.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand All @@ -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 \
Expand All @@ -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 && \
Expand Down Expand Up @@ -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) && \
Expand Down Expand Up @@ -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;; \
Expand Down
57 changes: 42 additions & 15 deletions docker/carpetx-cuda.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand All @@ -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 \
Expand All @@ -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 && \
Expand Down Expand Up @@ -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) && \
Expand Down Expand Up @@ -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;; \
Expand Down
54 changes: 39 additions & 15 deletions docker/carpetx-rocm.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand Down Expand Up @@ -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 && \
Expand All @@ -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 \
Expand All @@ -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 && \
Expand Down Expand Up @@ -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) && \
Expand Down Expand Up @@ -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;; \
Expand Down

0 comments on commit f02eef8

Please sign in to comment.