Skip to content

Commit

Permalink
Merge pull request #2509 from chuckatkins/update-ci-images
Browse files Browse the repository at this point in the history
Update ci images and re-enable PGI
  • Loading branch information
Chuck Atkins authored Nov 20, 2020
2 parents 301b4e2 + 6d1f35e commit facd2e1
Show file tree
Hide file tree
Showing 19 changed files with 131 additions and 150 deletions.
6 changes: 6 additions & 0 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ jobs:
el7-gnu8-ohpc,
el7-gnu8-openmpi-ohpc,
el7-gnu8-openmpi-ohpc-static,
suse-pgi,
suse-pgi-openmpi,
debian-sid,
debian-sid-openmpi ]
include:
Expand All @@ -39,6 +41,10 @@ jobs:
container: ornladios/adios2:ci-el7-gnu8-openmpi-ohpc
- jobname: el7-gnu8-openmpi-ohpc-static
container: ornladios/adios2:ci-el7-gnu8-openmpi-ohpc
- jobname: suse-pgi
container: ornladios/adios2:ci-suse-nvhpcsdk
- jobname: suse-pgi-openmpi
container: ornladios/adios2:ci-suse-nvhpcsdk-openmpi
- jobname: debian-sid
container: ornladios/adios2:ci-debian-sid
- jobname: debian-sid-openmpi
Expand Down
1 change: 1 addition & 0 deletions CTestCustom.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"Warning: stand-alone `data16' prefix"
"Warning: Type mismatch between actual argument.*"
"Warning: Rank mismatch between actual argument.*"
"zfp/types.h.*typedef"
)
list(APPEND CTEST_CUSTOM_COVERAGE_EXCLUDE
".*/thirdparty/.*"
Expand Down
5 changes: 4 additions & 1 deletion cmake/upstream/FindMPI.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -1720,10 +1720,13 @@ if(MPICXX IN_LIST MPI_FIND_COMPONENTS)
list(APPEND _MPI_REQ_VARS "MPI_MPICXX_FOUND")
endif()

if((CMAKE_VERSION VERSION_GREATER_EQUAL "3.16") AND _MPI_FAIL_REASON)
set(_MPI_FAIL_REASON_ARG REASON_FAILURE_MESSAGE "${_MPI_FAIL_REASON}")
endif()
find_package_handle_standard_args(MPI
REQUIRED_VARS ${_MPI_REQ_VARS}
VERSION_VAR ${_MPI_MIN_VERSION}
REASON_FAILURE_MESSAGE "${_MPI_FAIL_REASON}"
${_MPI_FAIL_REASON_ARG}
HANDLE_COMPONENTS)

#=============================================================================
Expand Down
5 changes: 1 addition & 4 deletions scripts/ci/cmake/ci-suse-pgi-openmpi.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@ math(EXPR N2CPUS "${NCPUS}*2")
find_package(EnvModules REQUIRED)

env_module(purge)
env_module(load pgi)
env_module(load nvhpc)

set(ENV{CC} pgcc)
set(ENV{CXX} pgc++)
set(ENV{FC} pgfortran)
#set(ENV{CFLAGS} -Werror)
set(ENV{CXXFLAGS} --brief_diagnostics)
#set(ENV{FFLAGS} "-warn errors")
Expand Down
5 changes: 1 addition & 4 deletions scripts/ci/cmake/ci-suse-pgi.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,8 @@
find_package(EnvModules REQUIRED)

env_module(purge)
env_module(load pgi)
env_module(load nvhpc-nompi)

set(ENV{CC} pgcc)
set(ENV{CXX} pgc++)
set(ENV{FC} pgfortran)
#set(ENV{CFLAGS} -Werror)
set(ENV{CXXFLAGS} --brief_diagnostics)
#set(ENV{FFLAGS} "-warn errors")
Expand Down
8 changes: 4 additions & 4 deletions scripts/ci/images/build-native-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ then
echo "************************************************************"
echo "* Building fully squashed root base images *"
echo "************************************************************"
ROOT_BASE_IMAGES="el7-base suse-pgi-base fedora-sanitizers-base debian-sid"
ROOT_BASE_IMAGES="el7-base suse-nvphcsdk-base fedora-sanitizers-base debian-sid"
for IMAGE in ${ROOT_BASE_IMAGES}
do
echo "${IMAGE}"
docker build --squash -t ornladios/adios2:ci-${IMAGE} ${IMAGE}
docker build --no-cache --squash -t ornladios/adios2:ci-${IMAGE} ${IMAGE}
echo
done

Expand All @@ -51,7 +51,7 @@ done
echo "************************************************************"
echo "* Building partially squashed final images *"
echo "************************************************************"
LEAF_IMAGES="el7-base,el7 el7-gnu8-ohpc-base,el7-gnu8-ohpc el7-gnu8-ohpc-base,el7-gnu8-openmpi-ohpc el7-intel-ohpc-base,el7-intel-ohpc el7-intel-ohpc-base,el7-intel-openmpi-ohpc suse-pgi-base,suse-pgi suse-pgi-base,suse-pgi-openmpi fedora-sanitizers-base,fedora-asan fedora-sanitizers-base,fedora-ubsan"
LEAF_IMAGES="el7-base,el7 el7-gnu8-ohpc-base,el7-gnu8-ohpc el7-gnu8-ohpc-base,el7-gnu8-openmpi-ohpc el7-intel-ohpc-base,el7-intel-ohpc el7-intel-ohpc-base,el7-intel-openmpi-ohpc suse-nvphcsdk-base,suse-pgi suse-nvphcsdk-base,suse-nvphcsdk-openmpi fedora-sanitizers-base,fedora-asan fedora-sanitizers-base,fedora-ubsan"
for IMAGE_PAIR in ${LEAF_IMAGES}
do
echo "${IMAGE_PAIR%,*} -> ${IMAGE_PAIR#*,}"
Expand All @@ -68,7 +68,7 @@ then
echo "************************************************************"
echo "* Push all images *"
echo "************************************************************"
ALL_IMAGES="el7-base el7 el7-gnu8-ohpc-base el7-gnu8-ohpc el7-gnu8-openmpi-ohpc el7-intel-ohpc-base el7-intel-ohpc el7-intel-openmpi-ohpc suse-pgi-base suse-pgi suse-pgi-openmpi fedora-sanitizers-base fedora-asan fedora-ubsan debian-sid"
ALL_IMAGES="el7-base el7 el7-gnu8-ohpc-base el7-gnu8-ohpc el7-gnu8-openmpi-ohpc el7-intel-ohpc-base el7-intel-ohpc el7-intel-openmpi-ohpc suse-nvphcsdk-base suse-pgi suse-nvphcsdk-openmpi fedora-sanitizers-base fedora-asan fedora-ubsan debian-sid"
for IMAGE in ${ALL_IMAGES}
do
echo "${IMAGE}"
Expand Down
21 changes: 10 additions & 11 deletions scripts/ci/images/debian-sid/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
FROM debian:sid

RUN apt-get update && \
apt-get dist-upgrade -y --no-install-recommends && \
apt-get install -y --no-install-recommends \
RUN apt update && \
apt full-upgrade -y --no-install-recommends && \
apt install -y --no-install-recommends \
curl \
python3-all \
ca-certificates \
devscripts \
git \
Expand All @@ -19,7 +18,11 @@ RUN apt-get update && \
pybind11-dev \
libgtest-dev \
nlohmann-json3-dev \
libpython3-dev \
python3.8-dev \
libpython3.8-dev \
python3.9-dev \
libpython3.9-dev \
python3-distutils \
python3-numpy \
python3-mpi4py \
libblosc-dev \
Expand All @@ -30,9 +33,5 @@ RUN apt-get update && \
libhdf5-serial-dev \
libhdf5-openmpi-dev \
libfabric-dev \
libffi-dev

# Just for the purposes of CI, grab a newer CMake to allow test re-runs
RUN mkdir -p /opt/cmake && \
curl -L https://github.com/Kitware/CMake/releases/download/v3.17.3/cmake-3.17.3-Linux-x86_64.tar.gz | \
tar -C /opt/cmake --strip-components=1 -xzv
libffi-dev && \
apt autoremove -y
1 change: 1 addition & 0 deletions scripts/ci/images/suse-nvhpcsdk-base/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nvhpc*.tar.gz
Original file line number Diff line number Diff line change
Expand Up @@ -11,35 +11,43 @@ RUN zypper in -y gcc gcc-c++ gcc-fortran git make curl tar f2c glibc-locale \
WORKDIR /usr/bin
RUN ln -s gfortran g77

# Install PGI compiler
WORKDIR /tmp/pgi-install
COPY pgilinux-2019-1910-x86-64.tar.gz /tmp/pgi-install
RUN tar -xzf pgilinux-2019-1910-x86-64.tar.gz && \
# Install NVidia HPC SDK
WORKDIR /tmp/nvhpcsdk-install
COPY nvhpc_2020_209_Linux_x86_64_cuda_11.0.tar.gz .
RUN tar -xzf nvhpc_2020_209_Linux_x86_64_cuda_11.0.tar.gz && \
cd nvhpc_2020_209_Linux_x86_64_cuda_11.0 && \
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 && \
NVHPC_SILENT=true \
NVHPC_INSTALL_DIR=/opt/nvidia/hpc_sdk \
NVHPC_INSTALL_TYPE=single && \
./install && \
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
echo 'export MODULEPATH=/opt/nvidia/hpc_sdk/modulefiles:${MODULEPATH}' > /etc/profile.d/nvhpc-modules.sh && \
echo 'setenv MODULEPATH /opt/nvidia/hpc_sdk/modulefiles:${MODULEPATH}' > /etc/profile.d/pgi-modules.csh

# Remove all the CUDA components since we don't need them for CI images
WORKDIR /opt/nvidia/hpc_sdk
RUN rm -rf \
Linux_x86_64/2020 \
Linux_x86_64/20.9/cuda \
Linux_x86_64/20.9/math \
Linux_x86_64/20.9/profilers \
Linux_x86_64/20.9/examples \
Linux_x86_64/20.9/REDIST \
modulefiles/nvhpc-byo-compiler && \
sed -e '/cuda/d' -e '/math/d' -i modulefiles/*/*

# 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
# Note that ZFP needs to be built with GCC at the moment as the results
# are broken when built with PGI
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 \
Expand All @@ -54,23 +62,22 @@ ENV PATH=/opt/zfp/0.5.5/bin:${PATH} \

# Install SZ
WORKDIR /opt/sz
RUN curl -L https://github.com/disheng222/SZ/archive/v2.1.8.3.tar.gz | tar -xvz && \
RUN curl -L https://github.com/szcompressor/SZ/releases/download/v2.1.11/SZ-2.1.11.tar.gz | tar -xvz && \
mkdir build && \
cd build && \
source /etc/profile && \
module load pgi && \
export CC=pgcc CXX=pgc++ FC=pgffort && \
module load nvhpc-nompi && \
/opt/cmake/bin/cmake \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.8.3 \
../SZ-2.1.8.3 && \
-DCMAKE_INSTALL_PREFIX=/opt/sz/2.1.11 \
../SZ-2.1.11 && \
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}
rm -rf SZ-2.1.11 build
ENV PATH=/opt/sz/2.1.11/bin:${PATH} \
LD_LIBRARY_PATH=/opt/sz/2.1.11/lib64:${LD_LIBRARY_PATH} \
CMAKE_PREFIX_PATH=/opt/sz/2.1.11:${CMAKE_PREFIX_PATH}

# Misc cleanup of unneeded files
RUN rm -rf /tmp/* && \
Expand Down
31 changes: 31 additions & 0 deletions scripts/ci/images/suse-nvhpcsdk-openmpi/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
FROM ornladios/adios2:ci-suse-nvhpcsdk-base

# Install HDF5 1.12.0
WORKDIR /opt/hdf5
RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \
tar -xvj && \
mkdir build && \
cd build && \
source /etc/profile && \
module load nvhpc && \
/opt/cmake/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.0 \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DHDF5_ENABLE_PARALLEL=ON \
-DHDF5_BUILD_CPP_LIB=OFF\
-DHDF5_BUILD_EXAMPLES=OFF \
-DBUILD_TESTING=OFF \
-DHDF5_BUILD_TOOLS=OFF \
../hdf5-1.12.0 && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
rm -rf hdf5-1.12.0 build
ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \
LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \
CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH}

# Misc cleanup of unneeded files
RUN rm -rf /tmp/* && \
zypper clean
Original file line number Diff line number Diff line change
@@ -1,31 +1,30 @@
FROM ornladios/adios2:ci-suse-pgi-base
FROM ornladios/adios2:ci-suse-nvhpcsdk-base

# Install HDF5 1.10.4 (the current 1.10.5 has a parallel close bug affecting
# the tests
# Install HDF5
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 | \
RUN curl -L https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.12/hdf5-1.12.0/src/hdf5-1.12.0.tar.bz2 | \
tar -xvj && \
mkdir build && \
cd build && \
source /etc/profile && \
module load pgi openmpi && \
export CC=pgcc CXX=pgc++ FC=pgfortran && \
module load nvhpc-nompi && \
/opt/cmake/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.10.4 \
-DCMAKE_INSTALL_PREFIX=/opt/hdf5/1.12.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.10.4 && \
../hdf5-1.12.0 && \
make -j$(grep -c '^processor' /proc/cpuinfo) install && \
cd .. && \
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}
rm -rf hdf5-1.12.0 build
ENV PATH=/opt/hdf5/1.12.0/bin:${PATH} \
LD_LIBRARY_PATH=/opt/hdf5/1.12.0/lib:${LD_LIBRARY_PATH} \
CMAKE_PREFIX_PATH=/opt/hdf5/1.12.0:${CMAKE_PREFIX_PATH}

# Misc cleanup of unneeded files
RUN rm -rf /tmp/* && \
Expand Down
1 change: 0 additions & 1 deletion scripts/ci/images/suse-pgi-base/.gitignore

This file was deleted.

53 changes: 0 additions & 53 deletions scripts/ci/images/suse-pgi-openmpi/Dockerfile

This file was deleted.

5 changes: 3 additions & 2 deletions source/adios2/toolkit/sst/cp/cp_common.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,9 @@ void CP_validateParams(SstStream Stream, SstParams Params, int Writer)
"Invalid QueueLimit parameter value (%d) for SST Stream %s\n",
Params->QueueLimit, Stream->Filename);
}
Stream->QueueFullPolicy = Params->QueueFullPolicy;
Stream->RegistrationMethod = Params->RegistrationMethod;
Stream->QueueFullPolicy = (SstQueueFullPolicy)Params->QueueFullPolicy;
Stream->RegistrationMethod =
(SstRegistrationMethod)Params->RegistrationMethod;
if (Params->DataTransport != NULL)
{
int i;
Expand Down
Loading

0 comments on commit facd2e1

Please sign in to comment.