Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable Linux Emulation build (Power8, IBM XL) #3537

Merged
merged 1 commit into from
Mar 22, 2023
Merged
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
14 changes: 6 additions & 8 deletions .github/workflows/everything.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 &&
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@caitlinross this is the only diff. It means just to run in master/release* and when code changes

(
contains('refs/heads/master', github.ref) ||
contains('refs/heads/release_', github.ref)
)

runs-on: ubuntu-latest
container:
Expand All @@ -164,20 +168,14 @@ jobs:
cpu: [power8]
os: [el7]
compiler: [xl]
parallel: [serial, mpi]
parallel: [serial]
include:
- cpu: power8
os: el7
compiler: xl
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
Expand Down
37 changes: 0 additions & 37 deletions scripts/ci/cmake-v2/ci-power8-el7-xl-mpi.cmake

This file was deleted.

3 changes: 2 additions & 1 deletion scripts/ci/cmake-v2/ci-power8-el7-xl-serial.cmake
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Client maintainer: chuck.atkins@kitware.com
# Client maintainer: vicente.bolea@kitware.com

set(ENV{CC} xlc)
set(ENV{CXX} xlc++)
Expand All @@ -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}")
Expand Down
2 changes: 1 addition & 1 deletion scripts/ci/gh-actions/linux-setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
*-stamp
*.tar.gz
*.rpm
33 changes: 33 additions & 0 deletions scripts/ci/images/build-emu-power8-image.sh
Original file line number Diff line number Diff line change
@@ -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
125 changes: 0 additions & 125 deletions scripts/ci/images/build-emu-power8-images.sh

This file was deleted.

76 changes: 53 additions & 23 deletions scripts/ci/images/emu-el7-base/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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}
2 changes: 1 addition & 1 deletion scripts/ci/images/emu-el7/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion scripts/ci/images/power8-el7-leaf-smpi/.gitignore

This file was deleted.

Loading