From 9d78746f6abb0dbbbdacf6750a9c8b7c9f7114a3 Mon Sep 17 00:00:00 2001 From: Chuck Atkins <chuck.atkins@kitware.com> Date: Fri, 24 Jan 2020 09:06:52 -0500 Subject: [PATCH] ci: restructure docker images with common layers --- cmake/FindPythonFull.cmake | 13 +-- cmake/FindPythonModule.cmake | 2 + .../ci-el7-gnu8-openmpi-ohpc-static.cmake | 7 +- .../ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake | 7 +- .../cmake/ci-el7-intel18-openmpi-ohpc.cmake | 7 +- scripts/ci/images/el7-base/Dockerfile | 25 +++++ .../ci/images/el7-gnu8-ohpc-base/Dockerfile | 42 +++++++ scripts/ci/images/el7-gnu8-ohpc/Dockerfile | 68 +---------- .../images/el7-gnu8-openmpi-ohpc/Dockerfile | 87 +------------- .../images/el7-intel18-ohpc-base/Dockerfile | 55 +++++++++ .../silent-custom.cfg | 0 scripts/ci/images/el7-intel18-ohpc/Dockerfile | 87 +------------- .../el7-intel18-openmpi-ohpc/Dockerfile | 106 ++---------------- .../silent-custom.cfg | 9 -- scripts/ci/images/el7/Dockerfile | 31 +---- scripts/ci/images/suse-pgi-base/Dockerfile | 77 +++++++++++++ scripts/ci/images/suse-pgi-openmpi/Dockerfile | 85 +------------- scripts/ci/images/suse-pgi/Dockerfile | 93 ++++----------- 18 files changed, 261 insertions(+), 540 deletions(-) create mode 100644 scripts/ci/images/el7-base/Dockerfile create mode 100644 scripts/ci/images/el7-gnu8-ohpc-base/Dockerfile create mode 100644 scripts/ci/images/el7-intel18-ohpc-base/Dockerfile rename scripts/ci/images/{el7-intel18-ohpc => el7-intel18-ohpc-base}/silent-custom.cfg (100%) delete mode 100644 scripts/ci/images/el7-intel18-openmpi-ohpc/silent-custom.cfg create mode 100644 scripts/ci/images/suse-pgi-base/Dockerfile diff --git a/cmake/FindPythonFull.cmake b/cmake/FindPythonFull.cmake index b4fe66263..80af3df6e 100644 --- a/cmake/FindPythonFull.cmake +++ b/cmake/FindPythonFull.cmake @@ -34,18 +34,7 @@ foreach(comp IN LISTS PythonFull_FIND_COMPONENTS) set(PythonFull_${comp}_FOUND ${PYTHONINTERP_FOUND}) list(APPEND _req_vars PYTHON_EXECUTABLE) elseif(comp STREQUAL Libs) - if(PYTHONINTERP_FOUND AND Python_ADDITIONAL_VERSIONS) - set(_Python_ADDITIONAL_VERSIONS "${Python_ADDITIONAL_VERSIONS}") - unset(Python_ADDITIONAL_VERSIONS) - unset(Python_ADDITIONAL_VERSIONS CACHE) - find_package(PythonLibs) - set(Python_ADDITIONAL_VERSIONS "${_Python_ADDITIONAL_VERSIONS}" - CACHE STRING "Python versions to search for" - ) - unset(_Python_ADDITIONAL_VERSIONS) - else() - find_package(PythonLibs) - endif() + find_package(PythonLibs ${PYTHON_VERSION_STRING}) set(PythonFull_${comp}_FOUND ${PYTHONLIBS_FOUND}) list(APPEND _req_vars PYTHON_LIBRARIES) else() diff --git a/cmake/FindPythonModule.cmake b/cmake/FindPythonModule.cmake index c47f71dbc..53719b139 100644 --- a/cmake/FindPythonModule.cmake +++ b/cmake/FindPythonModule.cmake @@ -119,10 +119,12 @@ set( PythonModule_${module_NAME}_PATH endif() include(FindPackageHandleStandardArgs) + set(FPHSA_NAME_MISMATCHED TRUE) find_package_handle_standard_args(PythonModule_${module_NAME} FOUND_VAR PythonModule_${module_NAME}_FOUND REQUIRED_VARS ${required_vars} ) + unset(FPHSA_NAME_MISMATCHED) endif() if(PythonModule_${module_NAME}_FOUND AND diff --git a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake index 75fc46d82..96d0b4079 100644 --- a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake +++ b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc-static.cmake @@ -8,9 +8,10 @@ find_package(EnvModules REQUIRED) env_module(purge) env_module(load gnu8) -env_module(load py3-numpy) +env_module(load py2-numpy) env_module(load openmpi3) -env_module(load py3-mpi4py) +env_module(load phdf5) +env_module(load py2-mpi4py) set(ENV{CC} gcc) set(ENV{CXX} g++) @@ -36,7 +37,7 @@ ADIOS2_USE_ZFP:BOOL=ON MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS} -PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.4 +PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2.7 ") set(CTEST_TEST_ARGS PARALLEL_LEVEL 1) diff --git a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake index 1d2d1fb72..e78dd52fe 100644 --- a/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-gnu8-openmpi-ohpc.cmake @@ -8,9 +8,10 @@ find_package(EnvModules REQUIRED) env_module(purge) env_module(load gnu8) -env_module(load py3-numpy) +env_module(load py2-numpy) env_module(load openmpi3) -env_module(load py3-mpi4py) +env_module(load phdf5) +env_module(load py2-mpi4py) set(ENV{CC} gcc) set(ENV{CXX} g++) @@ -33,7 +34,7 @@ ADIOS2_USE_ZFP:BOOL=ON MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS} -PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.4 +PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2.7 ") set(CTEST_TEST_ARGS PARALLEL_LEVEL 1) diff --git a/scripts/ci/cmake/ci-el7-intel18-openmpi-ohpc.cmake b/scripts/ci/cmake/ci-el7-intel18-openmpi-ohpc.cmake index c6362f842..0eeef5c7d 100644 --- a/scripts/ci/cmake/ci-el7-intel18-openmpi-ohpc.cmake +++ b/scripts/ci/cmake/ci-el7-intel18-openmpi-ohpc.cmake @@ -8,9 +8,10 @@ find_package(EnvModules REQUIRED) env_module(purge) env_module(load intel) -env_module(load py2-numpy) +env_module(load py3-numpy) env_module(load openmpi3) -env_module(load py2-mpi4py) +env_module(load phdf5) +env_module(load py3-mpi4py) set(ENV{CC} icc) set(ENV{CXX} icpc) @@ -33,7 +34,7 @@ ADIOS2_USE_ZFP:STRING=ON MPIEXEC_EXTRA_FLAGS:STRING=--allow-run-as-root --oversubscribe MPIEXEC_MAX_NUMPROCS:STRING=${N2CPUS} -PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python2.7 +PYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3.4 ") set(CTEST_TEST_ARGS PARALLEL_LEVEL 1) diff --git a/scripts/ci/images/el7-base/Dockerfile b/scripts/ci/images/el7-base/Dockerfile new file mode 100644 index 000000000..abf806aae --- /dev/null +++ b/scripts/ci/images/el7-base/Dockerfile @@ -0,0 +1,25 @@ +FROM centos:centos7 + +# Install core dev packages +RUN yum -y install make curl file git 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 + +# Install and setup newer version of git from the +# Red Hat Software Collections Library +RUN yum -y install centos-release-scl-rh && \ + yum -y install rh-git218 +ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ + PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} + +# Install the most recent CMake nightly binary +WORKDIR /opt/cmake +RUN curl -L https://cmake.org/files/dev/$(curl https://cmake.org/files/dev/ | sed -n '/Linux-x86_64.tar.gz/s/.*>\(cmake[^<]*\)<.*/\1/p' | sort | tail -1) | tar --strip-components=1 -xzv +ENV PATH=/opt/cmake/bin:${PATH} + +# Misc cleanup of unneeded files +RUN yum clean all && \ + rm -rfv /tmp/* /var/cache/yum diff --git a/scripts/ci/images/el7-gnu8-ohpc-base/Dockerfile b/scripts/ci/images/el7-gnu8-ohpc-base/Dockerfile new file mode 100644 index 000000000..3e3ede94c --- /dev/null +++ b/scripts/ci/images/el7-gnu8-ohpc-base/Dockerfile @@ -0,0 +1,42 @@ +FROM ornladios/adios2:el7-base + +# Install OpenHPC packages +RUN yum -y install https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm && \ + yum -y install lmod-ohpc gnu8-compilers-ohpc + +# 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 && \ + source /etc/profile && \ + module load gnu8 && \ + export CC=gcc CXX=g++ FC=gfortran && \ + cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ + mkdir build && \ + cd build && \ + source /etc/profile && \ + module load gnu8 && \ + export CC=gcc CXX=g++ FC=gfortran && \ + cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ + make -j$(grep -c '^processor' /proc/cpuinfo) install && \ + cd .. && \ + rm -rf SZ-2.1.8.0 build +ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} + +# Misc cleanup of unneeded files +RUN rm -rfv \ + /tmp/* \ + /var/cache/yum diff --git a/scripts/ci/images/el7-gnu8-ohpc/Dockerfile b/scripts/ci/images/el7-gnu8-ohpc/Dockerfile index e4aff371c..5a26e8619 100644 --- a/scripts/ci/images/el7-gnu8-ohpc/Dockerfile +++ b/scripts/ci/images/el7-gnu8-ohpc/Dockerfile @@ -1,71 +1,7 @@ -FROM centos:centos7 - -# Install core dev packages -RUN yum -y install make curl file git valgrind vim bison flex sudo gdb \ - pkgconfig bison flex pkgconfig gcc gcc-c++ \ - zlib-devel bzip2-devel libpng-devel libfabric-devel libffi-devel -RUN yum -y install epel-release && \ - yum -y install zeromq-devel blosc-devel python34-devel libzstd libzstd-devel - -# Install and setup newer version of git from the -# Red Hat Software Collections Library -RUN yum -y install centos-release-scl-rh && \ - yum -y install rh-git218 -ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} +FROM ornladios/adios2:el7-gnu8-ohpc-base # Install OpenHPC packages -RUN yum -y install https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm -RUN yum -y install lmod-ohpc \ - gnu8-compilers-ohpc python34-numpy-gnu8-ohpc hdf5-gnu8-ohpc - -# Install the CMake -WORKDIR /opt/cmake -RUN yum install -y openssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${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 && \ - source /etc/profile && \ - module load gnu8 && \ - export CC=gcc CXX=g++ FC=gfortran && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - source /etc/profile && \ - module load gnu8 && \ - export CC=gcc CXX=g++ FC=gfortran && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} - -# Install git-lfs -RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | bash && \ - yum install -y git-lfs +RUN yum -y install python34-devel python34-numpy-gnu8-ohpc hdf5-gnu8-ohpc # Misc cleanup of unneeded files RUN yum clean all && \ diff --git a/scripts/ci/images/el7-gnu8-openmpi-ohpc/Dockerfile b/scripts/ci/images/el7-gnu8-openmpi-ohpc/Dockerfile index 1f98b3d47..7d538a505 100644 --- a/scripts/ci/images/el7-gnu8-openmpi-ohpc/Dockerfile +++ b/scripts/ci/images/el7-gnu8-openmpi-ohpc/Dockerfile @@ -1,89 +1,8 @@ -FROM centos:centos7 - -# Install core dev packages -RUN yum -y install make curl file git valgrind vim bison flex sudo gdb \ - pkgconfig bison flex pkgconfig bzip2 bzip2-libs gcc gcc-c++ \ - zlib-devel bzip2-devel libpng-devel libfabric-devel libffi-devel -RUN yum -y install epel-release && \ - yum -y install zeromq-devel blosc-devel python34-devel libzstd libzstd-devel - -# Install and setup newer version of git from the -# Red Hat Software Collections Library -RUN yum -y install centos-release-scl-rh && \ - yum -y install rh-git218 -ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} +FROM ornladios/adios2:el7-gnu8-ohpc-base # Install OpenHPC packages -RUN yum -y install https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm -RUN yum -y install lmod-ohpc \ - gnu8-compilers-ohpc openmpi3-gnu8-ohpc \ - python34-numpy-gnu8-ohpc python34-mpi4py-gnu8-openmpi3-ohpc - -# Install the CMake -WORKDIR /opt/cmake -RUN yum install -y openssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${PATH} - -# Install HDF5 1.10.4 (the current 1.10.5 has a parallel close bug affecting -# the tests -WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.4/src/hdf5-1.10.4.tar.bz2 | \ - tar -xvj && \ - cd hdf5-1.10.4 && \ - source /etc/profile && \ - module load gnu8 openmpi3 && \ - export CC=mpicc CXX=mpicxx FC=mpif90 && \ - ./configure --prefix=/opt/hdf5/1.10.4 --enable-shared --disable-static --enable-parallel && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf hdf5-1.10.4 -ENV PATH=/opt/hdf5/1.10.4/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.10.4/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.10.4:${CMAKE_PREFIX_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 && \ - source /etc/profile && \ - module load gnu8 && \ - export CC=gcc CXX=g++ FC=gfortran && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - source /etc/profile && \ - module load gnu8 && \ - export CC=gcc CXX=g++ FC=gfortran && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} - -# Install git-lfs -RUN curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | bash && \ - yum install -y git-lfs +RUN yum -y install python-devel python-numpy-gnu8-ohpc openmpi3-gnu8-ohpc \ + phdf5-gnu8-openmpi3-ohpc python-mpi4py-gnu8-openmpi3-ohpc # Misc cleanup of unneeded files RUN yum clean all && \ diff --git a/scripts/ci/images/el7-intel18-ohpc-base/Dockerfile b/scripts/ci/images/el7-intel18-ohpc-base/Dockerfile new file mode 100644 index 000000000..5bd9b3b42 --- /dev/null +++ b/scripts/ci/images/el7-intel18-ohpc-base/Dockerfile @@ -0,0 +1,55 @@ +FROM ornladios/adios2:el7-base + +# Install Intel C++ compiler +WORKDIR /tmp +COPY silent-custom.cfg /tmp +RUN curl -L 'https://data.kitware.com/api/v1/file/5c1a96318d777f072bdbff4b/download' | tar -xz && \ + ./parallel_studio_xe_2018_update4_cluster_edition/install.sh -s ./silent-custom.cfg && \ + rm -rf parallel_studio_xe_2018* silent* + +# Install OpenHPC packages +RUN yum -y install https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm && \ + yum -y install lmod-ohpc intel-compilers-devel-ohpc + +# 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 && \ + source /etc/profile && \ + module load intel && \ + export CC=icc CXX=icpc FC=ifort && \ + cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ + mkdir build && \ + cd build && \ + source /etc/profile && \ + module load intel && \ + export CC=icc CXX=icpc FC=ifort && \ + cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ + make -j$(grep -c '^processor' /proc/cpuinfo) install && \ + cd .. && \ + rm -rf SZ-2.1.8.0 build +ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} + +# Misc cleanup of unneeded files +RUN rm -rfv \ + /tmp/* \ + /opt/intel/man \ + /opt/intel/documentation_2018 \ + /opt/intel/ide_support_2018 \ + /opt/intel/samples_2018 \ + /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/benchmarks \ + /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/examples \ + /var/cache/yum diff --git a/scripts/ci/images/el7-intel18-ohpc/silent-custom.cfg b/scripts/ci/images/el7-intel18-ohpc-base/silent-custom.cfg similarity index 100% rename from scripts/ci/images/el7-intel18-ohpc/silent-custom.cfg rename to scripts/ci/images/el7-intel18-ohpc-base/silent-custom.cfg diff --git a/scripts/ci/images/el7-intel18-ohpc/Dockerfile b/scripts/ci/images/el7-intel18-ohpc/Dockerfile index 001ca7ab4..d39bf0ba0 100644 --- a/scripts/ci/images/el7-intel18-ohpc/Dockerfile +++ b/scripts/ci/images/el7-intel18-ohpc/Dockerfile @@ -1,85 +1,8 @@ -FROM centos:centos7 +FROM ornladios/adios2:el7-intel18-ohpc-base -# Install core dev packages -RUN yum -y install make curl file git gcc gcc-g++ valgrind vim \ - gdb zlib zlib-devel bzip2 bzip2-libs bzip2-devel python-devel \ - libfabric libfabric-devel -RUN yum -y install epel-release && \ - yum -y install blosc-devel zeromq-devel libzstd libzstd-devel - -# Install and setup newer version of git from the -# Red Hat Software Collections Library -RUN yum -y install centos-release-scl-rh && \ - yum -y install rh-git218 -ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} - -# Install Intel C++ compiler -WORKDIR /tmp -COPY silent-custom.cfg /tmp -RUN curl -L 'https://data.kitware.com/api/v1/file/5c1a96318d777f072bdbff4b/download' | tar -xz \ - && ./parallel_studio_xe_2018_update4_cluster_edition/install.sh -s ./silent-custom.cfg \ - && rm -rf parallel_studio_xe_2018* silent* - -# Install extra repos -RUN yum -y install epel-release https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm - -# Install intel OpenHPC packages -RUN yum -y install \ - lmod-ohpc intel-compilers-devel-ohpc \ - python-numpy-intel-ohpc hdf5-intel-ohpc - -# Install the CMake binary -WORKDIR /opt/cmake -RUN yum install -y openssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${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 && \ - source /etc/profile && \ - module load intel && \ - export CC=icc CXX=icpc FC=ifort && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - source /etc/profile && \ - module load intel && \ - export CC=icc CXX=icpc FC=ifort && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} +# Install OpenHPC packages +RUN yum -y install python-devel python-numpy-intel-ohpc hdf5-intel-ohpc # Misc cleanup of unneeded files -RUN rm -rfv \ - /tmp/* \ - /opt/intel/man \ - /opt/intel/documentation_2018 \ - /opt/intel/ide_support_2018 \ - /opt/intel/samples_2018 \ - /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/benchmarks \ - /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/examples \ - /var/cache/yum +RUN yum clean all && \ + rm -rfv /tmp/* /var/cache/yum diff --git a/scripts/ci/images/el7-intel18-openmpi-ohpc/Dockerfile b/scripts/ci/images/el7-intel18-openmpi-ohpc/Dockerfile index 03f70578c..cfc49b1dc 100644 --- a/scripts/ci/images/el7-intel18-openmpi-ohpc/Dockerfile +++ b/scripts/ci/images/el7-intel18-openmpi-ohpc/Dockerfile @@ -1,102 +1,10 @@ -FROM centos:centos7 +FROM ornladios/adios2:el7-intel18-ohpc-base -# Install core dev packages -RUN yum -y install make curl file git gcc gcc-g++ pkg-config valgrind vim \ - gdb zlib zlib-devel bzip2 bzip2-libs bzip2-devel python-devel \ - libfabric libfabric-devel -RUN yum -y install epel-release && \ - yum -y install blosc-devel zeromq-devel libzstd libzstd-devel - -# Install and setup newer version of git from the -# Red Hat Software Collections Library -RUN yum -y install centos-release-scl-rh && \ - yum -y install rh-git218 -ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} - -# Install Intel C++ compiler -WORKDIR /tmp -COPY silent-custom.cfg /tmp -RUN curl -L 'https://data.kitware.com/api/v1/file/5c1a96318d777f072bdbff4b/download' | tar -xz \ - && ./parallel_studio_xe_2018_update4_cluster_edition/install.sh -s ./silent-custom.cfg \ - && rm -rf parallel_studio_xe_2018* silent* - -# Install extra repos -RUN yum -y install epel-release https://github.com/openhpc/ohpc/releases/download/v1.3.GA/ohpc-release-1.3-1.el7.x86_64.rpm - -# Install intel OpenHPC packages -RUN yum -y install \ - lmod-ohpc intel-compilers-devel-ohpc python-numpy-intel-ohpc \ - openmpi3-intel-ohpc python-mpi4py-intel-openmpi3-ohpc - -# Install the CMake binary -WORKDIR /opt/cmake -RUN yum install -y openssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${PATH} - -# Install HDF5 1.10.4 (the current 1.10.5 has a parallel close bug affecting -# the tests -WORKDIR /opt/hdf5 -RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.4/src/hdf5-1.10.4.tar.bz2 | \ - tar -xvj && \ - cd hdf5-1.10.4 && \ - source /etc/profile && \ - module load intel openmpi3 && \ - export CC=mpicc CXX=mpicxx FC=mpif90 && \ - ./configure --prefix=/opt/hdf5/1.10.4 --enable-shared --disable-static --enable-parallel && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf hdf5-1.10.4 -ENV PATH=/opt/hdf5/1.10.4/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/hdf5/1.10.4/lib:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/hdf5/1.10.4:${CMAKE_PREFIX_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 && \ - source /etc/profile && \ - module load intel && \ - export CC=icc CXX=icpc FC=ifort && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - source /etc/profile && \ - module load intel && \ - export CC=icc CXX=icpc FC=ifort && \ - cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} +# Install OpenHPC packages +RUN yum -y install python34-devel python34-numpy-intel-ohpc \ + openmpi3-intel-ohpc phdf5-intel-openmpi3-ohpc \ + python34-mpi4py-intel-openmpi3-ohpc # Misc cleanup of unneeded files -RUN rm -rfv \ - /tmp/* \ - /opt/intel/man \ - /opt/intel/documentation_2018 \ - /opt/intel/ide_support_2018 \ - /opt/intel/samples_2018 \ - /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/benchmarks \ - /opt/intel/compilers_and_libraries_2018.2.199/linux/mkl/examples \ - /var/cache/yum +RUN yum clean all && \ + rm -rfv /tmp/* /var/cache/yum diff --git a/scripts/ci/images/el7-intel18-openmpi-ohpc/silent-custom.cfg b/scripts/ci/images/el7-intel18-openmpi-ohpc/silent-custom.cfg deleted file mode 100644 index a3176cd9c..000000000 --- a/scripts/ci/images/el7-intel18-openmpi-ohpc/silent-custom.cfg +++ /dev/null @@ -1,9 +0,0 @@ -ACCEPT_EULA=accept -CONTINUE_WITH_OPTIONAL_ERROR=yes -PSET_INSTALL_DIR=/opt/intel -CONTINUE_WITH_INSTALLDIR_OVERWRITE=yes -PSET_MODE=install -ACTIVATION_TYPE=trial_lic -INTEL_SW_IMPROVEMENT_PROGRAM_CONSENT=no -ARCH_SELECTED=INTEL64 -COMPONENTS=;intel-comp__x86_64;intel-comp-doc__noarch;intel-comp-l-all-common__noarch;intel-comp-l-all-vars__noarch;intel-comp-nomcu-vars__noarch;intel-comp-ps__x86_64;intel-comp-ps-ss__x86_64;intel-comp-ps-ss-bec__x86_64;intel-openmp__x86_64;intel-openmp-common__noarch;intel-openmp-common-icc__noarch;intel-openmp-common-ifort__noarch;intel-openmp-ifort__x86_64;intel-tbb-libs__x86_64;intel-idesupport-icc-common-ps__noarch;intel-icc__x86_64;intel-c-comp-common__noarch;intel-icc-common__noarch;intel-icc-common-ps__noarch;intel-icc-common-ps-ss-bec__noarch;intel-icc-doc__noarch;intel-icc-doc-ps__noarch;intel-icc-ps__x86_64;intel-icc-ps-ss__x86_64;intel-icc-ps-ss-bec__x86_64;intel-ifort__x86_64;intel-ifort-common__noarch;intel-ifort-doc__noarch;intel-mkl-common__noarch;intel-mkl-core__x86_64;intel-mkl-core-rt__x86_64;intel-mkl-doc__noarch;intel-mkl-doc-ps__noarch;intel-mkl-cluster__x86_64;intel-mkl-cluster-common__noarch;intel-mkl-cluster-rt__x86_64;intel-mkl-common-ps__noarch;intel-mkl-core-ps__x86_64;intel-mkl-common-c__noarch;intel-mkl-core-c__x86_64;intel-mkl-common-c-ps__noarch;intel-mkl-cluster-c__noarch;intel-mkl-common-f__noarch;intel-mkl-core-f__x86_64;intel-mkl-cluster-f__noarch;intel-mkl-f95-common__noarch;intel-mkl-f__x86_64;intel-tbb-devel__x86_64;intel-tbb-common__noarch;intel-tbb-doc__noarch;intel-ism__noarch;intel-icsxe__noarch;intel-psxe-common__noarch;intel-psxe-doc__noarch;intel-psxe-common-doc__noarch;intel-icsxe-doc__noarch;intel-psxe-licensing__noarch;intel-psxe-licensing-doc__noarch;intel-icsxe-pset diff --git a/scripts/ci/images/el7/Dockerfile b/scripts/ci/images/el7/Dockerfile index 082b875eb..8750a3739 100644 --- a/scripts/ci/images/el7/Dockerfile +++ b/scripts/ci/images/el7/Dockerfile @@ -1,31 +1,7 @@ -FROM centos:centos7 +FROM ornladios/adios2:el7-base -# Install core dev packages -RUN yum -y install sudo gcc gcc-c++ gcc-gfortran make curl file valgrind \ - vim gdb bison flex pkgconfig \ - zlib-devel bzip2-devel libpng-devel libfabric-devel libffi-devel \ - python-devel numpy -RUN yum -y install epel-release && \ - yum -y install zeromq-devel hdf5 hdf5-devel blosc-devel - -# Install and setup newer version of git from the -# Red Hat Software Collections Library -RUN yum -y install centos-release-scl-rh && \ - yum -y install rh-git218 -ENV LD_LIBRARY_PATH=/opt/rh/httpd24/root/usr/lib64:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:${PATH} - -# Install the CMake binary -WORKDIR /opt/cmake -RUN yum install -y openssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${PATH} +# Install extra system dev packages +RUN yum -y install hdf5-devel python-devel numpy # Install ZFP WORKDIR /opt/zfp @@ -56,4 +32,3 @@ ENV CMAKE_PREFIX_PATH /opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files RUN yum clean all && \ rm -rfv /tmp/* /var/cache/yum - diff --git a/scripts/ci/images/suse-pgi-base/Dockerfile b/scripts/ci/images/suse-pgi-base/Dockerfile new file mode 100644 index 000000000..3fae6328e --- /dev/null +++ b/scripts/ci/images/suse-pgi-base/Dockerfile @@ -0,0 +1,77 @@ +FROM opensuse/leap:15.2 + +# Install core dev packages +RUN zypper addrepo -fc https://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_15.2/devel:tools:scm.repo +RUN zypper --gpg-auto-import-keys ref +RUN zypper in -y gcc gcc-c++ gcc-fortran git make curl tar f2c glibc-locale \ + glibc-devel libbz2-devel pkg-config libzmq-devel zlib-devel gdb vim valgrind \ + bzip2 gzip blosc-devel libzstd-devel openssl-devel environment-modules + +# Workaround so pgi can find g77 +WORKDIR /usr/bin +RUN ln -s gfortran g77 + +# Install PGI compiler +WORKDIR /tmp/pgi-install +RUN curl -L https://data.kitware.com/api/v1/file/5defe4f7af2e2eed35763524/download | tar -xz +RUN 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 + +RUN echo 'export MODULEPATH=/opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.sh \ + && echo 'setenv MODULEPATH /opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.csh + +# Install the most recent CMake nightly binary +WORKDIR /opt/cmake +RUN curl -L https://cmake.org/files/dev/$(curl https://cmake.org/files/dev/ | sed -n '/Linux-x86_64.tar.gz/s/.*>\(cmake[^<]*\)<.*/\1/p' | sort | tail -1) | tar --strip-components=1 -xzv +ENV PATH=/opt/cmake/bin:${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 && \ + source /etc/profile && \ + module load pgi && \ + export CC=pgcc CXX=pgc++ FC=pgffort && \ + /opt/cmake/bin/cmake \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -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.0.tar.gz | tar -xvz && \ + mkdir build && \ + cd build && \ + source /etc/profile && \ + module load pgi && \ + export CC=pgcc CXX=pgc++ FC=pgffort && \ + /opt/cmake/bin/cmake \ + -DBUILD_SHARED_LIBS=ON \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 \ + ../SZ-2.1.8.0 && \ + make -j$(grep -c '^processor' /proc/cpuinfo) install && \ + cd .. && \ + rm -rf SZ-2.1.8.0 build +ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} + +# Misc cleanup of unneeded files +RUN rm -rf /tmp/* && \ + zypper clean diff --git a/scripts/ci/images/suse-pgi-openmpi/Dockerfile b/scripts/ci/images/suse-pgi-openmpi/Dockerfile index c94188542..8556e7d7d 100644 --- a/scripts/ci/images/suse-pgi-openmpi/Dockerfile +++ b/scripts/ci/images/suse-pgi-openmpi/Dockerfile @@ -1,43 +1,4 @@ -FROM opensuse/leap:15.2 - -# Install core dev packages -RUN zypper addrepo -fc https://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_15.2/devel:tools:scm.repo -RUN zypper --gpg-auto-import-keys ref -RUN zypper in -y gcc gcc-c++ gcc-fortran git make curl tar f2c glibc-locale \ - glibc-devel libbz2-devel pkg-config libzmq-devel zlib-devel gdb vim valgrind \ - bzip2 gzip blosc-devel libzstd-devel openssl-devel environment-modules - -# Workaround so pgi can find g77 -WORKDIR /usr/bin -RUN ln -s gfortran g77 - -# Install PGI compiler -WORKDIR /tmp/pgi-install -RUN curl -L https://data.kitware.com/api/v1/file/5defe4f7af2e2eed35763524/download | tar -xz -RUN 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 - -RUN echo 'export MODULEPATH=/opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.sh \ - && echo 'setenv MODULEPATH /opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.csh - -# Install CMake -WORKDIR /opt/cmake -RUN git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) all && \ - make install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${PATH} +FROM ornladios/adios2:suse-pgi-base # Install OpenMPI WORKDIR /opt/openmpi @@ -87,46 +48,6 @@ ENV PATH=/opt/hdf5/1.10.4/bin:${PATH} \ LD_LIBRARY_PATH=/opt/hdf5/1.10.4/lib:${LD_LIBRARY_PATH} \ CMAKE_PREFIX_PATH=/opt/hdf5/1.10.4:${CMAKE_PREFIX_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 && \ - source /etc/profile && \ - module load pgi && \ - export CC=pgcc CXX=pgc++ FC=pgffort && \ - /opt/cmake/bin/cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -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.0.tar.gz | tar -xvz && \ - mkdir build && \ - cd build && \ - source /etc/profile && \ - module load pgi && \ - export CC=pgcc CXX=pgc++ FC=pgffort && \ - /opt/cmake/bin/cmake \ - -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 \ - ../SZ-2.1.8.0 && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} - # Misc cleanup of unneeded files -RUN rm -rf /tmp/* \ - && zypper clean +RUN rm -rf /tmp/* && \ + zypper clean diff --git a/scripts/ci/images/suse-pgi/Dockerfile b/scripts/ci/images/suse-pgi/Dockerfile index d6e56da4b..0ea8b209d 100644 --- a/scripts/ci/images/suse-pgi/Dockerfile +++ b/scripts/ci/images/suse-pgi/Dockerfile @@ -1,77 +1,32 @@ -FROM opensuse/leap:15.2 +FROM ornladios/adios2:suse-pgi-base -# Install core dev packages -RUN zypper addrepo -fc https://download.opensuse.org/repositories/devel:/tools:/scm/openSUSE_Leap_15.2/devel:tools:scm.repo -RUN zypper --gpg-auto-import-keys ref -RUN zypper in -y gcc gcc-c++ gcc-fortran git make curl tar f2c glibc-locale \ - glibc-devel libbz2-devel python-devel python-numpy pkg-config libzmq-devel \ - hdf5-devel gzip zlib-devel vim valgrind gdb blosc-devel libzstd-devel - -# Workaround so pgi can find g77 -WORKDIR /usr/bin -RUN ln -s gfortran g77 - -# Install PGI compiler -WORKDIR /tmp/pgi-install -RUN curl -L https://data.kitware.com/api/v1/file/5defe4f7af2e2eed35763524/download | tar -xz -RUN 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 - -RUN zypper ref && zypper in -y environment-modules \ - && echo 'export MODULEPATH=/opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.sh \ - && echo 'setenv MODULEPATH /opt/pgi/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.csh - -# Install the CMake binary -WORKDIR /opt/cmake -RUN zypper in -y libopenssl-devel && \ - git clone https://gitlab.kitware.com/cmake/cmake.git source && \ - mkdir build && \ - cd build && \ - ../source/bootstrap --prefix=/opt/cmake --parallel=$(grep -c '^processor' /proc/cpuinfo) && \ - make -j$(grep -c '^processor' /proc/cpuinfo) install && \ - cd .. && \ - rm -rf source build -ENV PATH=/opt/cmake/bin:${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 && \ - source /etc/profile && \ - module load pgi && \ - export CC=pgcc CXX=pgc++ FC=pgffort && \ - /opt/cmake/bin/cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -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.0.tar.gz | tar -xvz && \ +# Install HDF5 1.10.4 (the current 1.10.5 has a parallel close bug affecting +# the tests +WORKDIR /opt/hdf5 +RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.4/src/hdf5-1.10.4.tar.bz2 | \ + tar -xvj && \ mkdir build && \ cd build && \ source /etc/profile && \ - module load pgi && \ - export CC=pgcc CXX=pgc++ FC=pgffort && \ - /opt/cmake/bin/cmake -DBUILD_SHARED_LIBS=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.0 ../SZ-2.1.8.0 && \ + module load pgi openmpi && \ + export CC=pgcc CXX=pgc++ FC=pgfortran && \ + /opt/cmake/bin/cmake \ + -DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.10.4 \ + -DBUILD_SHARED_LIBS=ON \ + -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.10.4 && \ make -j$(grep -c '^processor' /proc/cpuinfo) install && \ cd .. && \ - rm -rf SZ-2.1.8.0 build -ENV PATH=/opt/sz/2.1.8.0/bin:${PATH} \ - LD_LIBRARY_PATH=/opt/sz/2.1.8.0/lib64:${LD_LIBRARY_PATH} \ - CMAKE_PREFIX_PATH=/opt/sz/2.1.8.0:${CMAKE_PREFIX_PATH} + rm -rf hdf5-1.10.4 build +ENV PATH=/opt/hdf5/1.10.4/bin:${PATH} \ + LD_LIBRARY_PATH=/opt/hdf5/1.10.4/lib:${LD_LIBRARY_PATH} \ + CMAKE_PREFIX_PATH=/opt/hdf5/1.10.4:${CMAKE_PREFIX_PATH} # Misc cleanup of unneeded files -RUN rm -rf /tmp/* \ - && zypper clean +RUN rm -rf /tmp/* && \ + zypper clean -- GitLab