Skip to content

Commit

Permalink
Merge pull request #645 from chuckatkins/add-ompi-images
Browse files Browse the repository at this point in the history
Add aditional openmpi images
  • Loading branch information
Chuck Atkins authored May 25, 2018
2 parents 18b4102 + 5300fa5 commit d5aba34
Show file tree
Hide file tree
Showing 5 changed files with 192 additions and 0 deletions.
52 changes: 52 additions & 0 deletions scripts/circle/circle_el7-intel18-openmpi.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Client maintainer: [email protected]
set(CTEST_SITE "CircleCI")

set(CTEST_BUILD_CONFIGURATION Debug)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
set(CTEST_BUILD_FLAGS "-k -j4")
set(CTEST_TEST_ARGS PARALLEL_LEVEL 1)

set(dashboard_model Experimental)
set(dashboard_binary_name "build_$ENV{CIRCLE_JOB}")
set(dashboard_track "Continuous Integration")

set(CTEST_GIT_COMMAND "/usr/bin/git")
set(CTEST_UPDATE_VERSION_ONLY TRUE)
set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}/source")
set(CTEST_DASHBOARD_ROOT "$ENV{HOME}")

include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake)
module(purge)
module(load intel)
module(load py2-numpy)
module(load openmpi3)
module(load py2-mpi4py)
module(load phdf5)
module(load adios)

set(ENV{CC} icc)
set(ENV{CXX} icpc)
set(ENV{FC} ifort)
set(ENV{CFLAGS} -Werror)
set(ENV{CXXFLAGS} -Werror)
set(ENV{FFLAGS} "-warn errors")

set(dashboard_cache "
ADIOS2_USE_ADIOS1:STRING=ON
ADIOS2_USE_BZip2:STRING=ON
ADIOS2_USE_DataMan:STRING=ON
ADIOS2_USE_Fortran:STRING=ON
ADIOS2_USE_HDF5:STRING=ON
ADIOS2_USE_MPI:STRING=ON
ADIOS2_USE_Python:STRING=ON
#ADIOS2_USE_ZFP:STRING=ON
ADIOS2_USE_ZeroMQ:STRING=ON
#ZFP_ROOT:PATH=/opt/zfp/install
MPI_C_COMPILER:FILEPATH=${MPI_C_COMPILER}
MPI_CXX_COMPILER:FILEPATH=${MPI_CXX_COMPILER}
MPI_Fortran_COMPILER:FILEPATH=${MPI_Fortran_COMPILER}
MPIEXEC_MAX_NUMPROCS:STRING=16
")

include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake)
40 changes: 40 additions & 0 deletions scripts/circle/circle_fedora-openmpi-ubsan.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Client maintainer: [email protected]
set(CTEST_SITE "CircleCI")
set(CTEST_BUILD_CONFIGURATION Debug)
set(CTEST_CMAKE_GENERATOR "Unix Makefiles")
set(CTEST_BUILD_FLAGS "-k -j4")
set(CTEST_TEST_ARGS PARALLEL_LEVEL 4)

set(dashboard_model Experimental)
set(dashboard_binary_name "build_$ENV{CIRCLE_JOB}")
set(dashboard_track "Analysis")

set(CTEST_GIT_COMMAND "/usr/bin/git")
set(CTEST_UPDATE_VERSION_ONLY TRUE)
set(CTEST_SOURCE_DIRECTORY "$ENV{CIRCLE_WORKING_DIRECTORY}/source")
set(CTEST_DASHBOARD_ROOT "$ENV{HOME}")

set(ENV{CC} gcc)
set(ENV{CXX} g++)
set(ENV{FC} gfortran)
set(ENV{CFLAGS} -fsanitize=undefined -fno-sanitize-recover=all -pthread)
set(ENV{CXXFLAGS} -fsanitize=undefined -fno-sanitize-recover=all -pthread)
set(ENV{FFLAGS} -fsanitize=undefined -fno-sanitize-recover=all -pthread)
set(ENV{UBSAN_OPTIONS} "print_stacktrace=1")

include(${CMAKE_CURRENT_LIST_DIR}/EnvironmentModules.cmake)
module(load mpi)

set(dashboard_cache "
ADIOS2_USE_ADIOS1:STRING=OFF
ADIOS2_USE_BZip2:STRING=ON
ADIOS2_USE_DataMan:STRING=ON
ADIOS2_USE_Fortran:STRING=ON
ADIOS2_USE_HDF5:STRING=ON
ADIOS2_USE_MPI:STRING=ON
ADIOS2_USE_Python:STRING=ON
ADIOS2_USE_ZFP:STRING=OFF
ADIOS2_USE_ZeroMQ:STRING=ON
")

include(${CMAKE_CURRENT_LIST_DIR}/../dashboard/adios_common.cmake)
63 changes: 63 additions & 0 deletions scripts/circle/el7-intel18-openmpi-ohpc/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
FROM centos:centos7

# Install core dev packages
RUN yum -y install make curl file git gcc pkg-config \
gdb zlib zlib-devel bzip2 bzip2-libs bzip2-devel python-devel
RUN yum -y install epel-release
RUN yum -y install zeromq-devel

# Install Intel C++ compiler
WORKDIR /tmp
COPY silent-custom.cfg /tmp
RUN curl -L http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12717/parallel_studio_xe_2018_update2_cluster_edition.tgz | tar -xz \
&& ./parallel_studio_xe_2018_update2_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 \
phdf5-intel-openmpi3-ohpc netcdf-intel-openmpi3-ohpc adios-intel-openmpi3-ohpc

# Cleanup headers and packages
RUN yum clean all

# Install libfabric
WORKDIR /opt/libfabric
RUN curl -L https://github.com/ofiwg/libfabric/releases/download/v1.6.0/libfabric-1.6.0.tar.bz2 | tar -xj \
&& pushd libfabric-1.6.0 \
&& ./configure --prefix=/opt/libfabric/1.6.0 --libdir=/opt/libfabric/1.6.0/lib64 \
&& make -j8 install \
&& popd \
&& rm -rf libfabric-1.6.0

# Install the CMake binary
WORKDIR /opt/cmake/3.6.3
RUN curl -L https://cmake.org/files/v3.6/cmake-3.6.3-Linux-x86_64.tar.gz | \
tar --strip-components=1 -xz

# Create a non-root user to run the builds/tests
RUN export uid=1001 gid=1001 && \
mkdir -p /home/adios2 && \
echo "adios2:x:${uid}:${gid}:adios2,,,:/home/adios2:/bin/bash" >> /etc/passwd && \
echo "adios2:x:${uid}:" >> /etc/group && \
chown ${uid}:${gid} -R /home/adios2

# Misc cleanup of unneeded files
RUN rm -rfv /tmp/* \
&& rm -rfv \
/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 \
&& rm -rf /var/cache/yum

USER adios2
ENV HOME /home/adios2
WORKDIR /home/adios2
CMD /bin/bash
9 changes: 9 additions & 0 deletions scripts/circle/el7-intel18-openmpi-ohpc/silent-custom.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
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
28 changes: 28 additions & 0 deletions scripts/circle/fedora-openmpi-ubsan/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
FROM fedora:latest

# Install core dev packages
RUN dnf -y install gcc gcc-c++ gcc-gfortran cmake git make curl file patch \
zlib-devel bzip2-devel openmpi-devel hdf5-openmpi-devel \
python3-devel python3-numpy python3-mpi4py-openmpi zeromq-devel libubsan

# Patch the installed Lmod to properly deal with a CMake shell
RUN curl https://github.com/TACC/Lmod/commit/516a986322ac462876218ce140214824f47f5887.patch | patch -p 2 /usr/share/lmod/7.5.16/libexec/tcl2lua.tcl

# Cleanup headers and packages
RUN dnf clean all

# Create a non-root user to run the builds/tests
RUN export uid=1001 gid=1001 && \
mkdir -p /home/adios2 && \
echo "adios2:x:${uid}:${gid}:adios2,,,:/home/adios2:/bin/bash" >> /etc/passwd && \
echo "adios2:x:${uid}:" >> /etc/group && \
chown ${uid}:${gid} -R /home/adios2

# Misc cleanup of unneeded files
RUN rm -rfv /tmp/* \
&& rm -rf /var/cache/dnf

USER adios2
ENV HOME /home/adios2
WORKDIR /home/adios2
CMD /bin/bash

0 comments on commit d5aba34

Please sign in to comment.