From 7319685b57a6fbe4ebeeb36952ea3f32b17ded69 Mon Sep 17 00:00:00 2001 From: Vicente Adolfo Bolea Sanchez Date: Tue, 21 Mar 2023 18:58:50 -0400 Subject: [PATCH] ci,xl: added p9 xl build, removed p9 smpi build --- .github/workflows/everything.yml | 14 +- .../ci/cmake-v2/ci-power8-el7-xl-mpi.cmake | 37 ------ .../ci/cmake-v2/ci-power8-el7-xl-serial.cmake | 3 +- scripts/ci/gh-actions/linux-setup.sh | 2 +- .../{power8-el7-xl-base => }/.gitignore | 1 + scripts/ci/images/build-emu-power8-image.sh | 33 +++++ scripts/ci/images/build-emu-power8-images.sh | 125 ------------------ scripts/ci/images/emu-el7-base/Dockerfile | 76 +++++++---- scripts/ci/images/emu-el7/Dockerfile | 2 +- .../ci/images/power8-el7-leaf-smpi/.gitignore | 1 - .../ci/images/power8-el7-leaf-smpi/Dockerfile | 44 ------ scripts/ci/images/power8-el7-leaf/Dockerfile | 32 ----- .../ci/images/power8-el7-pgi-base/.gitignore | 1 - .../ci/images/power8-el7-pgi-base/Dockerfile | 70 ---------- scripts/ci/images/power8-el7-xl.Makefile | 27 ++++ .../power8-el7-xl.dockerfile} | 59 +++++++-- scripts/ci/setup/ci-power8-el7-xl-serial.sh | 9 ++ 17 files changed, 182 insertions(+), 354 deletions(-) delete mode 100644 scripts/ci/cmake-v2/ci-power8-el7-xl-mpi.cmake rename scripts/ci/images/{power8-el7-xl-base => }/.gitignore (65%) create mode 100755 scripts/ci/images/build-emu-power8-image.sh delete mode 100755 scripts/ci/images/build-emu-power8-images.sh delete mode 100644 scripts/ci/images/power8-el7-leaf-smpi/.gitignore delete mode 100644 scripts/ci/images/power8-el7-leaf-smpi/Dockerfile delete mode 100644 scripts/ci/images/power8-el7-leaf/Dockerfile delete mode 100644 scripts/ci/images/power8-el7-pgi-base/.gitignore delete mode 100644 scripts/ci/images/power8-el7-pgi-base/Dockerfile create mode 100644 scripts/ci/images/power8-el7-xl.Makefile rename scripts/ci/images/{power8-el7-xl-base/Dockerfile => power8-el7/power8-el7-xl.dockerfile} (50%) create mode 100755 scripts/ci/setup/ci-power8-el7-xl-serial.sh diff --git a/.github/workflows/everything.yml b/.github/workflows/everything.yml index 914bb5ff26..177c55ad6a 100644 --- a/.github/workflows/everything.yml +++ b/.github/workflows/everything.yml @@ -145,7 +145,11 @@ jobs: linux_emu: needs: [format, git_checks] - if: false # needs.git_checks.outputs.num_code_changes > 0 + if: needs.git_checks.outputs.num_code_changes > 0 && + ( + contains('refs/heads/master', github.ref) || + contains('refs/heads/release_', github.ref) + ) runs-on: ubuntu-latest container: @@ -164,7 +168,7 @@ jobs: cpu: [power8] os: [el7] compiler: [xl] - parallel: [serial, mpi] + parallel: [serial] include: - cpu: power8 os: el7 @@ -172,12 +176,6 @@ jobs: parallel: serial container: ornladios/adios2:ci-x86_64-power8-el7-xl arch: ppc64le - - cpu: power8 - os: el7 - compiler: xl - parallel: mpi - container: ornladios/adios2:ci-x86_64-power8-el7-xl-smpi - arch: ppc64le steps: - name: Emulation Setup diff --git a/scripts/ci/cmake-v2/ci-power8-el7-xl-mpi.cmake b/scripts/ci/cmake-v2/ci-power8-el7-xl-mpi.cmake deleted file mode 100644 index 8821d9885a..0000000000 --- a/scripts/ci/cmake-v2/ci-power8-el7-xl-mpi.cmake +++ /dev/null @@ -1,37 +0,0 @@ -# Client maintainer: chuck.atkins@kitware.com - -set(ENV{CC} xlc) -set(ENV{CXX} xlc++) -set(ENV{FC} xlf) - -find_program(MPICC mpixlc) -find_program(MPICXX mpixlC) -find_program(MPIFC mpixlf) - -set(dashboard_cache " -ADIOS2_USE_BZip2:BOOL=OFF -ADIOS2_USE_Blosc:BOOL=OFF -ADIOS2_USE_DataMan:BOOL=OFF -ADIOS2_USE_Fortran:BOOL=ON -ADIOS2_USE_HDF5:BOOL=ON -ADIOS2_USE_MPI:BOOL=ON -ADIOS2_USE_Python:BOOL=OFF -ADIOS2_USE_SZ:BOOL=ON -ADIOS2_USE_ZeroMQ:STRING=OFF -ADIOS2_USE_ZFP:BOOL=ON -CMAKE_CXX_STANDARD=11 - -MPI_C_COMPILER:FILEPATH=${MPICC} -MPI_CXX_COMPILER:FILEPATH=${MPICXX} -MPI_Fortran_COMPILER:FILEPATH=${MPIFC} -MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe -tcp -") - -set(CTEST_TEST_ARGS - PARALLEL_LEVEL 1 - INCLUDE "^(Interface|Install)" -) -set(CTEST_TEST_TIMEOUT 300) -set(CTEST_CMAKE_GENERATOR "Unix Makefiles") -list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") -include(${CMAKE_CURRENT_LIST_DIR}/ci-common.cmake) diff --git a/scripts/ci/cmake-v2/ci-power8-el7-xl-serial.cmake b/scripts/ci/cmake-v2/ci-power8-el7-xl-serial.cmake index 69ca398d64..1904740233 100644 --- a/scripts/ci/cmake-v2/ci-power8-el7-xl-serial.cmake +++ b/scripts/ci/cmake-v2/ci-power8-el7-xl-serial.cmake @@ -1,4 +1,4 @@ -# Client maintainer: chuck.atkins@kitware.com +# Client maintainer: vicente.bolea@kitware.com set(ENV{CC} xlc) set(ENV{CXX} xlc++) @@ -20,6 +20,7 @@ ADIOS2_USE_ZFP:BOOL=ON set(CTEST_TEST_ARGS INCLUDE "^(Interface|Install)" ) + set(CTEST_TEST_TIMEOUT 300) set(CTEST_CMAKE_GENERATOR "Unix Makefiles") list(APPEND CTEST_UPDATE_NOTES_FILES "${CMAKE_CURRENT_LIST_FILE}") diff --git a/scripts/ci/gh-actions/linux-setup.sh b/scripts/ci/gh-actions/linux-setup.sh index d71c301f21..d4ef4b632b 100755 --- a/scripts/ci/gh-actions/linux-setup.sh +++ b/scripts/ci/gh-actions/linux-setup.sh @@ -3,7 +3,7 @@ set -ex export CI_ROOT_DIR="${GITHUB_WORKSPACE}/.." -export CI_SOURCE_DIR="${GITHUB_WORKSPACE}" +export CI_SOURCE_DIR="${GITHUB_WORKSPACE}/source" declare -r local_scripts_dir="$(dirname -- $0)/config" diff --git a/scripts/ci/images/power8-el7-xl-base/.gitignore b/scripts/ci/images/.gitignore similarity index 65% rename from scripts/ci/images/power8-el7-xl-base/.gitignore rename to scripts/ci/images/.gitignore index 0195d2d90e..2496ef415f 100644 --- a/scripts/ci/images/power8-el7-xl-base/.gitignore +++ b/scripts/ci/images/.gitignore @@ -1,2 +1,3 @@ +*-stamp *.tar.gz *.rpm diff --git a/scripts/ci/images/build-emu-power8-image.sh b/scripts/ci/images/build-emu-power8-image.sh new file mode 100755 index 0000000000..c13949ed44 --- /dev/null +++ b/scripts/ci/images/build-emu-power8-image.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +set -ex + +######################################## +# ppc64le CentOS 7 emulation base image +######################################## +docker build --squash \ + --build-arg TARGET_ARCH_SYSTEM=ppc64le \ + --build-arg TARGET_ARCH_DOCKER=ppc64le \ + --build-arg TARGET_CPU=power8 \ + -t ornladios/adios2:ci-x86_64-power8-el7 \ + emu-el7 +echo "" +echo "Pushing ornladios/adios2:ci-x86_64-power8-el7" +echo "" +docker push ornladios/adios2:ci-x86_64-power8-el7 + +###################################### + ppc64le CI base image +###################################### +docker build \ + --build-arg TARGET_CPU=power8 \ + -t ornladios/adios2:ci-x86_64-power8-el7-base \ + emu-el7-base +docker-squash \ + -f ornladios/adios2:ci-x86_64-power8-el7 \ + -t ornladios/adios2:ci-x86_64-power8-el7-base \ + ornladios/adios2:ci-x86_64-power8-el7-base +echo "" +echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-base" +echo "" +docker push ornladios/adios2:ci-x86_64-power8-el7-base diff --git a/scripts/ci/images/build-emu-power8-images.sh b/scripts/ci/images/build-emu-power8-images.sh deleted file mode 100755 index f138e55ee1..0000000000 --- a/scripts/ci/images/build-emu-power8-images.sh +++ /dev/null @@ -1,125 +0,0 @@ -#!/bin/bash - -######################################## -# ppc64le CentOS 7 emulation base image -######################################## -docker build --squash \ - --build-arg TARGET_ARCH_SYSTEM=ppc64le \ - --build-arg TARGET_ARCH_DOCKER=ppc64le \ - --build-arg TARGET_CPU=power8 \ - -t ornladios/adios2:ci-x86_64-power8-el7 \ - emu-el7 -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7 - -######################################## -# ppc64le CI base image -######################################## -docker build --squash \ - --build-arg TARGET_CPU=power8 \ - -t ornladios/adios2:ci-x86_64-power8-el7-base \ - emu-el7-base -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7 \ - -t ornladios/adios2:ci-x86_64-power8-el7-base \ - ornladios/adios2:ci-x86_64-power8-el7-base -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-base" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-base - -######################################## -# XL base image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl-base \ - power8-el7-xl-base -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl-base \ - ornladios/adios2:ci-x86_64-power8-el7-xl-base -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-xl-base" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-xl-base - -######################################## -# XL builder image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl \ - --build-arg COMPILER=xl \ - power8-el7-leaf -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-xl-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl \ - ornladios/adios2:ci-x86_64-power8-el7-xl -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-xl" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-xl - -######################################## -# XL + MPI builder image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl-smpi \ - --build-arg COMPILER=xl \ - power8-el7-leaf-smpi -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-xl-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-xl-smpi \ - ornladios/adios2:ci-x86_64-power8-el7-xl-smpi -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-xl-smpi" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-xl-smpi - -######################################## -# PGI base image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi-base \ - power8-el7-pgi-base -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi-base \ - ornladios/adios2:ci-x86_64-power8-el7-pgi-base -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-pgi-base" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-pgi-base - -######################################## -# PGI builder image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi \ - --build-arg COMPILER=pgi \ - power8-el7-leaf -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-pgi-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi \ - ornladios/adios2:ci-x86_64-power8-el7-pgi -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-pgi" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-pgi - -######################################## -# PGI + MPI builder image -######################################## -docker build \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi-smpi \ - --build-arg COMPILER=pgi --build-arg HDF5_ARGS="-DMPI_C_COMPILER=mpipgicc" \ - power8-el7-leaf-smpi -docker-squash \ - -f ornladios/adios2:ci-x86_64-power8-el7-pgi-base \ - -t ornladios/adios2:ci-x86_64-power8-el7-pgi-smpi \ - ornladios/adios2:ci-x86_64-power8-el7-pgi-smpi -echo "" -echo "Pushing ornladios/adios2:ci-x86_64-power8-el7-pgi-smpi" -echo "" -docker push ornladios/adios2:ci-x86_64-power8-el7-pgi-smpi diff --git a/scripts/ci/images/emu-el7-base/Dockerfile b/scripts/ci/images/emu-el7-base/Dockerfile index 370815c529..68a751182a 100644 --- a/scripts/ci/images/emu-el7-base/Dockerfile +++ b/scripts/ci/images/emu-el7-base/Dockerfile @@ -3,50 +3,80 @@ FROM ornladios/adios2:ci-x86_64-${TARGET_CPU}-el7 # Install core dev packages RUN yum upgrade -y && \ - yum -y install make curl file valgrind vim bison flex sudo gdb \ - pkgconfig bison flex pkgconfig gcc gcc-c++ gcc-gfortran \ - zlib zlib-devel bzip2 bzip2-libs bzip2-devel libpng-devel \ - libfabric-devel libffi-devel -RUN yum -y install epel-release && \ - yum -y install zeromq-devel blosc-devel libzstd-devel + yum -y install centos-release-scl && \ + yum-config-manager --enable rhel-server-rhscl-7-rpms && \ + yum -y install \ + bison \ + bzip2 \ + bzip2-libs \ + curl \ + devtoolset-7 \ + devtoolset-7-gcc \ + devtoolset-7-gcc-c++ \ + devtoolset-7-gcc-gdb \ + devtoolset-7-gcc-gfortran \ + file \ + flex \ + gcc \ + gcc-c++ \ + gcc-gfortran \ + libfabric-devel \ + libffi-devel \ + libpng-devel \ + make \ + pkgconfig \ + sudo \ + valgrind \ + vim \ + zlib \ + yum -y install epel-release && \ + yum -y install \ + blosc-devel \ + bzip2-devel \ + curl-devel \ + expat-devel \ + gettext \ + libcurl-devel \ + libzstd-devel \ + openssl-devel \ + rhash-devel \ + xz-devel \ + zeromq-devel \ + zlib-devel && \ + yum clean all && \ + rm -rfv /tmp/* /var/cache/yum + +ENV LAUNCHER="/usr/bin/scl enable devtoolset-7 --" # Install and setup newer version of git WORKDIR /opt/git -RUN yum install -y gettext openssl-devel curl-devel expat-devel && \ - mkdir tmp && \ +RUN mkdir tmp && \ cd tmp && \ curl -L https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz | tar -xz && \ cd git-2.26.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) prefix=/opt/git/2.26.0 all && \ - make prefix=/opt/git/2.26.0 install && \ + $LAUNCHER make -j$(grep -c '^processor' /proc/cpuinfo) prefix=/opt/git/2.26.0 all && \ + $LAUNCHER make prefix=/opt/git/2.26.0 install && \ cd ../.. && \ rm -rf tmp ENV PATH=/opt/git/2.26.0/bin:${PATH} # Install the most recent CMake from source WORKDIR /opt/cmake -RUN yum install -y \ - bzip2-devel libcurl-devel expat-devel \ - xz-devel rhash-devel zlib-devel libzstd-devel && \ - mkdir tmp && \ +RUN mkdir tmp && \ cd tmp && \ - curl -L https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0.tar.gz | \ + curl -L https://github.com/Kitware/CMake/releases/download/v3.26.0/cmake-3.26.0.tar.gz | \ tar -xz && \ mkdir build && \ cd build && \ - ../cmake-3.17.0/bootstrap \ + $LAUNCHER ../cmake-3.26.0/bootstrap \ --system-libs \ --no-qt-gui \ --no-system-libarchive \ --no-system-libuv \ --no-system-jsoncpp \ - --prefix=/opt/cmake/3.18.0 \ + --prefix=/opt/cmake/3.26.0 \ --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd ../.. && \ - rm -rf tmp -ENV PATH=/opt/cmake/3.18.0/bin:${PATH} - -# Misc cleanup of unneeded files -RUN yum clean all && \ - rm -rfv /tmp/* /var/cache/yum + rm -rf tmp +ENV PATH=/opt/cmake/3.26.0/bin:${PATH} diff --git a/scripts/ci/images/emu-el7/Dockerfile b/scripts/ci/images/emu-el7/Dockerfile index 887c7aa3a0..d954fe7f0d 100644 --- a/scripts/ci/images/emu-el7/Dockerfile +++ b/scripts/ci/images/emu-el7/Dockerfile @@ -35,7 +35,7 @@ FROM ${TARGET_ARCH_DOCKER}/centos:centos7 # Grab a fully static node.js binary # to run various CI actions ######################################## -COPY --from=ornladios/adios2:node12-static /node /x86_64/bin/node +COPY --from=ornladios/adios2:node12-static /node /x86_64/bin/node ######################################## # Build up a minimal busybox shell diff --git a/scripts/ci/images/power8-el7-leaf-smpi/.gitignore b/scripts/ci/images/power8-el7-leaf-smpi/.gitignore deleted file mode 100644 index e7a9c1347b..0000000000 --- a/scripts/ci/images/power8-el7-leaf-smpi/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.rpm diff --git a/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile b/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile deleted file mode 100644 index 4e1147b826..0000000000 --- a/scripts/ci/images/power8-el7-leaf-smpi/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -ARG COMPILER -FROM ornladios/adios2:ci-x86_64-power8-el7-${COMPILER}-base - -# Install SpectrumMPI -WORKDIR /tmp -COPY ibm_smpi*.rpm /tmp/ -RUN yum install -y ibm_smpi*.rpm && \ - /bin/env IBM_SPECTRUM_MPI_LICENSE_ACCEPT=yes \ - /opt/ibm/spectrum_mpi/lap_ce/bin/accept_spectrum_mpi_license.sh -ENV MPI_ROOT=/opt/ibm/spectrum_mpi \ - MPI_HOME=/opt/ibm/spectrum_mpi \ - PATH=/opt/ibm/spectrum_mpi/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/ibm/spectrum_mpi/lib:${PATH} - -# Install HDF5 1.13.0 -WORKDIR /opt/hdf5 -ARG HDF5_ARGS -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ - tar -xvj && \ - mkdir build && \ - cd build && \ - cmake ${HDF5_ARGS} \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ - -DBUILD_SHARED_LIBS=ON \ - -DBUILD_STATIC_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DHDF5_BUILD_CPP_LIB=OFF \ - -DHDF5_BUILD_EXAMPLES=OFF \ - -DBUILD_TESTING=OFF \ - -DHDF5_BUILD_TOOLS=ON \ - -DHDF5_ENABLE_PARALLEL=ON \ - ../hdf5-1.13.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf hdf5-1.13.0 build -ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} - -# Misc cleanup of unneeded files -RUN rm -rf /tmp/* && \ - yum clean all - -WORKDIR /root diff --git a/scripts/ci/images/power8-el7-leaf/Dockerfile b/scripts/ci/images/power8-el7-leaf/Dockerfile deleted file mode 100644 index 2dde2ca878..0000000000 --- a/scripts/ci/images/power8-el7-leaf/Dockerfile +++ /dev/null @@ -1,32 +0,0 @@ -ARG COMPILER -FROM ornladios/adios2:ci-x86_64-power8-el7-${COMPILER}-base - -# Install HDF5 1.13.0 -WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.13/hdf5-1.13.0/src/hdf5-1.13.0.tar.bz2 | \ - tar -xvj && \ - mkdir build && \ - cd build && \ - cmake \ - -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ - -DBUILD_SHARED_LIBS=ON \ - -DBUILD_STATIC_LIBS=OFF \ - -DCMAKE_BUILD_TYPE=Release \ - -DHDF5_ENABLE_PARALLEL=OFF \ - -DHDF5_BUILD_CPP_LIB=OFF\ - -DHDF5_BUILD_EXAMPLES=OFF \ - -DBUILD_TESTING=OFF \ - -DHDF5_BUILD_TOOLS=OFF \ - ../hdf5-1.13.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf hdf5-1.13.0 build -ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} - -# Misc cleanup of unneeded files -RUN rm -rf /tmp/* && \ - yum clean all - -WORKDIR /root diff --git a/scripts/ci/images/power8-el7-pgi-base/.gitignore b/scripts/ci/images/power8-el7-pgi-base/.gitignore deleted file mode 100644 index 335ec9573d..0000000000 --- a/scripts/ci/images/power8-el7-pgi-base/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.tar.gz diff --git a/scripts/ci/images/power8-el7-pgi-base/Dockerfile b/scripts/ci/images/power8-el7-pgi-base/Dockerfile deleted file mode 100644 index 554b7bf0ba..0000000000 --- a/scripts/ci/images/power8-el7-pgi-base/Dockerfile +++ /dev/null @@ -1,70 +0,0 @@ -FROM ornladios/adios2:ci-x86_64-power8-el7-base - -# -# Install PGI -COPY pgilinux-*-ppc64le.tar.gz /tmp -WORKDIR /tmp -RUN mkdir pgi && \ - cd pgi && \ - tar -xf ../pgilinux-*-ppc64le.tar.gz && \ - export \ - PGI_SILENT=true \ - PGI_ACCEPT_EULA=accept \ - PGI_INSTALL_DIR=/opt/pgi \ - PGI_INSTALL_NVIDIA=false \ - PGI_INSTALL_JAVA=false \ - PGI_INSTALL_MPI=false \ - PGI_MPI_GPU_SUPPORT=false && \ - ./install && \ - rm -rf /opt/pgi/linuxpower/20[0-9][0-9] && \ - ln -s /opt/pgi/linuxpower/*.*/ /opt/pgi/linuxpower/latest -ENV PGI=/opt/pgi \ - CC=/opt/pgi/linuxpower/latest/bin/pgcc \ - CXX=/opt/pgi/linuxpower/latest/bin/pgc++ \ - FC=/opt/pgi/linuxpower/latest/bin/pgfortran \ - F90=/opt/pgi/linuxpower/latest/bin/pgf90 \ - F77=/opt/pgi/linuxpower/latest/bin/pgf77 \ - CPP=/bin/cpp \ - PATH=/opt/pgi/linuxpower/latest/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/pgi/linuxpower/latest/lib:${LD_LIBRARY_PATH} - -# Install ZFP -WORKDIR /opt/zfp -RUN curl -L https://github.com/LLNL/zfp/releases/download/0.5.5/zfp-0.5.5.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_CXX_STANDARD=11 \ - -DCMAKE_INSTALL_PREFIX=/opt/zfp/0.5.5 \ - ../zfp-0.5.5 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf zfp-0.5.5 build -ENV PATH=/opt/zfp/0.5.5/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/zfp/0.5.5/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/zfp/0.5.5:${CMAKE_PREFIX_PATH} - -# Install SZ -WORKDIR /opt/sz -RUN curl -L https://github.com/disheng222/SZ/archive/v2.1.8.3.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.3 \ - ../SZ-2.1.8.3 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.3 build -ENV PATH=/opt/sz/2.1.8.3/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.3/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.3:${CMAKE_PREFIX_PATH} - -# Misc cleanup of unneeded files -RUN rm -rf /tmp/* - -# Install Spectrum MPI -# /bin/env IBM_SPECTRUM_MPI_LICENSE_ACCEPT=yes /opt/ibm/spectrum_mpi/lap_ce/bin/accept_spectrum_mpi_license.sh diff --git a/scripts/ci/images/power8-el7-xl.Makefile b/scripts/ci/images/power8-el7-xl.Makefile new file mode 100644 index 0000000000..797d04b14a --- /dev/null +++ b/scripts/ci/images/power8-el7-xl.Makefile @@ -0,0 +1,27 @@ +# vim: ft=make : +# How to invoke this: +# +# - Copy the IBM_XL binaries to scripts/ci/images directory: +# - Binaries are located at KW SMB dir `Downloads/Compilers/IBM/` or IBM site +# - Run this: make -f power8-el7-xl.Makefile +# - push built images +TARGETS = config_binfmt-stamp emu-stamp xl-stamp +BUILD_ARGS = --squash +all: $(TARGETS) + +config_binfmt-stamp: + touch $@ + sudo docker run --rm --privileged multiarch/qemu-user-static:register --reset + +emu-stamp: BUILD_ARGS+= --build-arg TARGET_CPU=power8 +emu-stamp: emu-el7-base/Dockerfile config_binfmt-stamp + touch $@ + sudo docker build $(BUILD_ARGS) -f $< -t ornladios/adios2:ci-x86_64-power8-el7-base . || (rm $@; false) + +xl-stamp: BUILD_ARGS+= --build-arg COMPILER=xl +xl-stamp: power8-el7/power8-el7-xl.dockerfile emu-stamp + touch $@ + sudo docker build $(BUILD_ARGS) -f $< -t ornladios/adios2:ci-x86_64-power8-el7-xl . || (rm $@; false) + +clean: + rm $(TARGETS) || true diff --git a/scripts/ci/images/power8-el7-xl-base/Dockerfile b/scripts/ci/images/power8-el7/power8-el7-xl.dockerfile similarity index 50% rename from scripts/ci/images/power8-el7-xl-base/Dockerfile rename to scripts/ci/images/power8-el7/power8-el7-xl.dockerfile index fe70270954..439106cfc2 100644 --- a/scripts/ci/images/power8-el7-xl-base/Dockerfile +++ b/scripts/ci/images/power8-el7/power8-el7-xl.dockerfile @@ -1,10 +1,15 @@ +# vim: ft=dockerfile: FROM ornladios/adios2:ci-x86_64-power8-el7-base -# Install XL compilers +# Install packages of XL compilers COPY IBM_XL_C_CPP_*_LINUX_COMMUNITY.tar.gz /tmp COPY IBM_XL_FORTRAN_*_LINUX_COMMUNITY.tar.gz /tmp +# Upgrades of XL compilers +COPY IBM_XL_C_CPP_*_LINUX.tar.gz /tmp +COPY IBM_XL_FORTRAN_*_LINUX.tar.gz /tmp WORKDIR /tmp -RUN mkdir xlc && \ +RUN source /opt/rh/devtoolset-7/enable && \ + mkdir xlc && \ cd xlc && \ tar -xf ../IBM_XL_C_CPP_*_LINUX_COMMUNITY.tar.gz && \ yes 1 | ./install && \ @@ -14,17 +19,33 @@ RUN mkdir xlc && \ tar -xf ../IBM_XL_FORTRAN_*_LINUX_COMMUNITY.tar.gz && \ yes 1 | ./install && \ cd .. && \ - rm -rf IBM* xlc xlf + mkdir xlc_p && \ + cd xlc_p && \ + tar -xf ../IBM_XL_C_CPP_*_LINUX.tar.gz && \ + yes 1 | ./install && \ + cd .. && \ + mkdir xlf_p && \ + cd xlf_p && \ + tar -xf ../IBM_XL_FORTRAN_*_LINUX.tar.gz && \ + yes 1 | ./install && \ + cd .. && \ + rm -rf /tmp/* && \ + yum -y clean all ENV CC=/usr/bin/xlc \ CXX=/usr/bin/xlc++ \ FC=/usr/bin/xlf +RUN source /opt/rh/devtoolset-7/enable && \ + /opt/ibm/xlC/16.1.1/bin/xlc_configure -gcc /opt/rh/devtoolset-7/root/usr/ + +ENV XLC_USR_CONFIG=/opt/ibm/xlC/16.1.1/etc/xlc.cfg.centos.7.gcc.7.3.1 + # Install ZFP WORKDIR /opt/zfp RUN curl -L https://github.com/LLNL/zfp/releases/download/0.5.5/zfp-0.5.5.tar.gz | tar -xvz && \ mkdir build && \ cd build && \ - cmake \ + $LAUNCHER cmake \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_CXX_STANDARD=11 \ @@ -42,7 +63,7 @@ WORKDIR /opt/sz RUN curl -L https://github.com/disheng222/SZ/archive/v2.1.8.3.tar.gz | tar -xvz && \ mkdir build && \ cd build && \ - cmake \ + $LAUNCHER cmake \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.3 \ @@ -54,8 +75,26 @@ ENV PATH=/opt/sz/2.1.8.3/bin:${PATH} \ LD_LIBRARY_PATH=/opt/sz/2.1.8.3/lib64:${LD_LIBRARY_PATH} \ CMAKE_PREFIX_PATH=/opt/sz/2.1.8.3:${CMAKE_PREFIX_PATH} -# Misc cleanup of unneeded files -RUN rm -rf /tmp/* - -# Install Spectrum MPI -# /bin/env IBM_SPECTRUM_MPI_LICENSE_ACCEPT=yes /opt/ibm/spectrum_mpi/lap_ce/bin/accept_spectrum_mpi_license.sh +# Install HDF5 1.13.0 +WORKDIR /opt/hdf5 +RUN curl -L https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5-1_13_0.tar.gz | tar -xvz && \ + mkdir build && \ + cd build && \ + $LAUNCHER cmake \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.13.0 \ + -DBUILD_SHARED_LIBS=ON \ + -DBUILD_STATIC_LIBS=OFF \ + -DCMAKE_BUILD_TYPE=Release \ + -DHDF5_ENABLE_PARALLEL=OFF \ + -DHDF5_BUILD_CPP_LIB=OFF\ + -DHDF5_BUILD_EXAMPLES=OFF \ + -DBUILD_TESTING=OFF \ + -DHDF5_BUILD_TOOLS=OFF \ + ../hdf5-hdf5-1_13_0 && \ + make -j$(grep -c '^processor' /proc/cpuinfo) install && \ + cd .. && \ + rm -rf hdf5-hdf5-1_13_0 build +ENV PATH=/opt/hdf5/1.13.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.13.0/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.13.0:${CMAKE_PREFIX_PATH} +WORKDIR /root diff --git a/scripts/ci/setup/ci-power8-el7-xl-serial.sh b/scripts/ci/setup/ci-power8-el7-xl-serial.sh new file mode 100755 index 0000000000..48cae5afae --- /dev/null +++ b/scripts/ci/setup/ci-power8-el7-xl-serial.sh @@ -0,0 +1,9 @@ +#!/bin/bash +cat << EOF >> /etc/profile +set +u +source /opt/rh/devtoolset-7/enable + +export C_INCLUDE_DIRS="/opt/rh/devtoolset-7/root/usr/include/c++/7:${C_INCLUDE_DIRS}" +export CPP_INCLUDE_DIRS="/opt/rh/devtoolset-7/root/usr/include/c++/7:${CPP_INCLUDE_DIRS}" +set -u +EOF