Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/docker_build_tpls.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ jobs:
DOCKER_ROOT_IMAGE: 7g8efcehpff/pangea-almalinux8-gcc9.4-openmpi4.1.2-cuda11.5.0-openblas0.3.18:4
HOST_ARCH: ppc64le
RUNS_ON: streak2
- name: Pangea 4 (centos 8, gcc 12.1.0, hpcx 2.20.0, mkl 2023.2.0)
DOCKER_REPOSITORY: geosx/pangea4-gcc12.1-hpcxompi2.20.0-onemkl2023.2.0
TPL_DOCKERFILE: docker/TotalEnergies/pangea-4/pangea4-tpl.Dockerfile
DOCKER_ROOT_IMAGE: onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0
INSTALL_DIR_ROOT: /workrd/SCR/NUM/GEOS_environment/p4/install/tpl
RUNS_ON: ubuntu-latest
- name: Sherlock CPU (centos 7.9.2009, gcc 10.1.0, open-mpi 4.1.2, openblas 0.3.10, zlib 1.2.11)
DOCKER_REPOSITORY: geosx/sherlock-gcc10.1.0-openmpi4.1.2-openblas0.3.10-zlib1.2.11
TPL_DOCKERFILE: docker/Stanford/Dockerfile
Expand Down
92 changes: 0 additions & 92 deletions docker/TotalEnergies/Dockerfile

This file was deleted.

2 changes: 1 addition & 1 deletion docker/TotalEnergies/Pangea3.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ RUN --mount=src=.,dst=$SRC_DIR,readwrite cd ${SRC_DIR} && \
# Run uberenv
./scripts/uberenv/uberenv.py \
--spec "%gcc@9.4.0+cuda~uncrustify~openmp~pygeosx cuda_arch=70 ^cuda@11.5.0+allow-unsupported-compilers ^caliper~gotcha~sampler~libunwind~libdw~papi" \
--spack-env-file=${SRC_DIR}/docker/pangea-spack.yaml \
--spack-env-file=${SRC_DIR}/docker/pangea3-spack.yaml \
--project-json=.uberenv_config.json \
--prefix ${GEOSX_TPL_DIR} \
-k && \
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
#######################################
# Pangea 4 image : gcc - hpcxompi - onemkl
#######################################
#
# Installs :
# - hpcx = 2.20.0
# - intel-oneapi-mkl = 2023.2.0
#
#######################################
#
# Description :
# - the image is based on onetechssc/pangea4:gcc12.1_v1.0 built from pangea4-gcc.Dockerfile
# - this image is deployed as onetechssc/pangea4:gcc12.1-hpcx2.20.0-onemkl2023.2.0_v1.0
# - oneAPI MKL is installed via spack (as done for Pangea 4)
# - hpcx is installed by extracting the tarball (as done for Pangea 4)
# - gcc wrappers are created to mimic the Cray environment (cc, CC, ftn)
#
# Usage :
# build the image:
# - podman build --format docker -t onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0 -f pangea4-gcc-hpcxompi-onemkl.Dockerfile -v /etc/pki/ca-trust/extracted/pem/:/etc/pki/ca-trust/extracted/pem .
# run the image:
# - podman run -it --detach --privileged --name pangea4_gcc_hpcxompi_onemkl -v /etc/pki/ca-trust/extracted/pem/:/etc/pki/ca-trust/extracted/pem localhost/onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0
# - podman exec -it pangea4_gcc_hpcxompi_onemkl /bin/bash
# push the image (requires to be part of the onetechssc docker organization):
# - podman login docker.io
# - podman push localhost/onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0 docker://docker.io/onetechssc/pangea4:gcc12.1-hpcxompi2.20.0-onemkl2023.2.0_v1.0
#
#######################################

# -------------------------------------
# PANGEA4 - GCC-HPCX-MKL
FROM docker.io/onetechssc/pangea4:gcc12.1_v1.0 AS pangea4
# ------
# LABELS
LABEL description="Pangea 4 image : gcc - cmake - python - hpcx - mkl"
LABEL version="1.0"
LABEL maintainer="TotalEnergies HPC Team"
# ------
# ARGS
ARG ONEAPI_MKL_VERSION=2023.2.0
ARG HPCX_VERSION=2.20
ARG HPCX_FULL_NAME="hpcx-v$HPCX_VERSION-gcc-mlnx_ofed-redhat8-cuda12-x86_64"
ARG HPCX_TARBALL="$HPCX_FULL_NAME.tbz"
ARG HPCX_URL="http://www.mellanox.com/downloads/hpc/hpc-x/v$HPCX_VERSION/$HPCX_TARBALL"
ARG CRAY_WRAPPERS_DIR=/sw/cray-wrappers
# ------
# INSTALL
# spack config (make sure you survive our wonderfull proxy)
RUN spack config --scope defaults add config:connect_timeout:120
RUN spack config --scope defaults add config:url_fetch_method:curl
# intel-oneapi-mkl
RUN spack install intel-oneapi-mkl@$ONEAPI_MKL_VERSION %gcc@$GCC_VERSION
# hpcx not available in spack -> download and untar in /sw directory
RUN mkdir -p /sw && \
spack load wget && \
wget --ca-certificate=/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem $HPCX_URL -O /tmp/$HPCX_TARBALL && \
tar -xvf /tmp/$HPCX_TARBALL -C /sw && \
rm -f /tmp/$HPCX_TARBALL
ENV HPCX_HOME=/sw/$HPCX_FULL_NAME
# numpy with mkl
RUN spack install py-numpy %gcc@$GCC_VERSION ^python@$PYTHON_VERSION ^intel-oneapi-mkl@$ONEAPI_MKL_VERSION
# ------
# ENV
# create wrappers for gcc
RUN mkdir -p $CRAY_WRAPPERS_DIR && \
spack load gcc@$GCC_VERSION python@$PYTHON_VERSION cmake@$CMAKE_VERSION intel-oneapi-mkl@$ONEAPI_MKL_VERSION && \
GCC_INSTALL_DIR=$(spack location -i gcc@$GCC_VERSION) && \
ln -s ${GCC_INSTALL_DIR}/bin/gcc $CRAY_WRAPPERS_DIR/cc && \
ln -s ${GCC_INSTALL_DIR}/bin/g++ $CRAY_WRAPPERS_DIR/CC && \
ln -s ${GCC_INSTALL_DIR}/bin/gfortran $CRAY_WRAPPERS_DIR/ftn
# create env script
RUN <<EOF cat > /root/.setup_env.sh
. /opt/spack/share/spack/setup-env.sh
spack load gcc@$GCC_VERSION python@$PYTHON_VERSION cmake@$CMAKE_VERSION intel-oneapi-mkl@$ONEAPI_MKL_VERSION py-numpy
source ${HPCX_HOME}/hpcx-init.sh
hpcx_load
export PATH=$CRAY_WRAPPERS_DIR:\$PATH
export GCC_INSTALL_DIR=$(spack location -i gcc@$GCC_VERSION)
export GOMP_ROOT=\${GCC_INSTALL_DIR}/lib64
EOF
RUN chmod +x /root/.setup_env.sh
67 changes: 67 additions & 0 deletions docker/TotalEnergies/pangea-4/pangea4-gcc.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# syntax=docker/dockerfile:1.4

#######################################
# Pangea 4 image : gcc - cmake - python
#######################################
#
# Installs :
# - gcc = 12.1
# - cmake = 3.27.9
# - python = 3.11
#
#######################################
#
# Description :
# - the image is based on spack/centos-stream:latest (CentOS Stream 8 image with spack installed)
# - this image is deployed as onetechssc/pangea4:gcc12.1_v1.0
# - gcc, cmake, python and wget are installed via spack (as done for Pangea 4)
#
# Usage :
# build the image:
# - podman build --format docker -t onetechssc/pangea4:gcc12.1_v1.0 -f pangea4-gcc.Dockerfile -v /etc/pki/ca-trust/extracted/pem/:/etc/pki/ca-trust/extracted/pem .
# run the image:
# - podman run -it --detach --privileged --name pangea4_gcc -v /etc/pki/ca-trust/extracted/pem/:/etc/pki/ca-trust/extracted/pem localhost/onetechssc/pangea4:gcc12.1_v1.0
# - podman exec -it pangea4_gcc /bin/bash
# push the image (requires to be part of the onetechssc docker organization):
# - podman login docker.io
# - podman push localhost/onetechssc/pangea4:gcc12.1_v1.0 docker://docker.io/onetechssc/pangea4:gcc12.1_v1.0
#
#######################################

# -------------------------------------
# PANGEA4 - BASE [GCC - CMAKE - PYTHON]
# install tools via spack for linux/x86_64 architecture and redhat8 platform
FROM --platform=linux/x86_64 docker.io/spack/centos-stream:latest AS pangea4-base
# ------
# LABELS
LABEL description="Pangea 4 image : gcc - cmake - python"
LABEL version="1.0"
LABEL maintainer="TotalEnergies HPC Team"
# ------
# ARGS
ARG GCC_VERSION=12.1
ARG CMAKE_VERSION=3.27.9
ARG PYTHON_VERSION=3.11
# ------
# INSTALL
# spack config (make sure you survive our wonderfull proxy)
RUN spack config --scope defaults add config:connect_timeout:120
RUN spack config --scope defaults add config:url_fetch_method:curl
# gcc
RUN spack install gcc@$GCC_VERSION
RUN . /opt/spack/share/spack/setup-env.sh &&\
spack load gcc@$GCC_VERSION &&\
spack compiler find
# python
RUN spack install python@$PYTHON_VERSION %gcc@$GCC_VERSION
# cmake (openssl error when using curl)
RUN spack config --scope defaults add config:url_fetch_method:urllib &&\
spack install cmake@$CMAKE_VERSION %gcc@$GCC_VERSION &&\
spack config --scope defaults add config:url_fetch_method:curl
# wget
RUN spack install wget %gcc@$GCC_VERSION
# ------
# ENV
ENV GCC_VERSION=${GCC_VERSION}
ENV CMAKE_VERSION=${CMAKE_VERSION}
ENV PYTHON_VERSION=${PYTHON_VERSION}
Loading
Loading