Unverified Commit 06b6216c authored by Jean-Noël Grad's avatar Jean-Noël Grad Committed by GitHub
Browse files

Merge pull request #177 from jngrad/reduce-ci-images

Reduce number of CUDA images
parents b0de8c7d de95a492
......@@ -9,10 +9,8 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
image: ['centos', 'clang', 'debian', 'fedora', 'opensuse', 'rocm',
'ubuntu-18.04', 'ubuntu-20.04',
'ubuntu-cuda-10.1', 'ubuntu-cuda-9.0',
'ubuntu-wo-dependencies']
image: ['centos', 'debian', 'fedora', 'opensuse', 'rocm',
'ubuntu-18.04', 'ubuntu-20.04', 'ubuntu-wo-dependencies']
steps:
- uses: actions/checkout@master
- name: Build and deploy
......
FROM nvidia/cuda:9.0-devel-ubuntu16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \
apt-utils \
build-essential \
clang-6.0 clang-tidy-6.0 clang-format-6.0 \
curl \
openmpi-bin \
libfftw3-dev \
libboost-dev libboost-serialization-dev libboost-mpi-dev libboost-filesystem-dev libboost-test-dev \
python3 python3-numpy python3-scipy python3-h5py \
git \
# python3-vtk7 \ # not available in 16.04
python3-pip \
python3-setuptools \
libpython3-dev \
libhdf5-openmpi-dev \
libblas-dev \
liblapack-dev \
doxygen \
vim \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& ln -s /usr/bin/llvm-symbolizer-6.0 /usr/bin/llvm-symbolizer \
&& ln -s /usr/bin/clang-format-6.0 /usr/bin/clang-format \
&& curl -Lo /usr/local/bin/git-clang-format https://llvm.org/svn/llvm-project/cfe/trunk/tools/clang-format/git-clang-format \
&& chmod +x /usr/local/bin/git-clang-format
RUN cd /tmp \
&& curl https://www.samba.org/ftp/ccache/ccache-3.4.3.tar.xz | tar xJ \
&& cd ccache-3.4.3 \
&& ./configure --prefix=/usr/local \
&& make && make install \
&& cd \
&& rm -r /tmp/ccache-3.4.3
RUN cd /usr/src && \
git clone --depth=1 -b 1.9.5 https://github.com/thrust/thrust.git && \
rm -r /usr/local/cuda/include/thrust && \
ln -s /usr/src/thrust/thrust /usr/local/cuda/include/thrust
ENV CC=/usr/bin/clang-6.0 CXX=/usr/bin/clang++-6.0 NVCC=/usr/bin/clang++-6.0
# removes superfluous Clang-tidy warnings from the boost libraries
COPY boost.patch /tmp/
RUN cd /usr/include/boost && patch -p1 < /tmp/boost.patch
RUN useradd -m espresso
USER espresso
ENV HOME="/home/espresso"
# install Python3 packages locally
ENV PATH="${PATH}:${HOME}/.local/bin"
RUN pip3 install --upgrade pip
RUN pip install --user requests autopep8==1.3.4 pycodestyle==2.3.1 pylint==2.2.2 astroid==2.1.0 isort==4.3.4 cython==0.26 cmake==3.10.3 cmake-format==0.6.9 pre-commit
WORKDIR /home/espresso
......@@ -2,8 +2,8 @@ ARG BASE_VERSION=3.3
FROM rocm/dev-ubuntu-18.04:${BASE_VERSION}
ENV DEBIAN_FRONTEND noninteractive
COPY ubuntu-packages.txt /tmp
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install -y \
&& apt-get install -y \
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install --no-install-recommends -y \
&& apt-get install --no-install-recommends -y \
rocrand rocfft rocthrust kmod \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
......
FROM ubuntu:bionic
ENV DEBIAN_FRONTEND noninteractive
COPY build-and-install-scafacos.sh /tmp/
COPY build-and-install-scafacos.sh /tmp
COPY ubuntu-packages.txt /tmp
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install -y \
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install --no-install-recommends -y \
&& apt-get install --no-install-recommends -y \
libthrust-dev \
nvidia-cuda-toolkit \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN bash /tmp/build-and-install-scafacos.sh
ENV NVIDIA_VISIBLE_DEVICES all
ENV NVIDIA_DRIVER_CAPABILITIES compute,utility
RUN useradd -m espresso
USER 1000
USER espresso
WORKDIR /home/espresso
FROM ubuntu:focal
ENV DEBIAN_FRONTEND noninteractive
COPY build-and-install-scafacos.sh /tmp/
COPY build-and-install-scafacos.sh /tmp
COPY ubuntu-packages.txt /tmp
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install -y \
&& apt-get install -y \
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install --no-install-recommends -y \
&& apt-get install -y --no-install-recommends \
clang-9 clang-tidy-9 clang-format-9 \
doxygen \
ffmpeg \
gcc-8 g++-8 \
gcc-9 g++-9 \
graphviz \
ipython3 jupyter-notebook jupyter-nbconvert \
libthrust-dev \
nvidia-cuda-toolkit \
python3-lxml python3-matplotlib \
texlive-base \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN bash /tmp/build-and-install-scafacos.sh
ENV NVIDIA_VISIBLE_DEVICES all
......@@ -26,5 +33,9 @@ RUN pip3 install --user \
astroid==2.1.0 \
isort==4.3.4 \
cmake-format==0.6.9 \
pre-commit
pre-commit \
'sphinx>=2.0,!=2.1.0,!=3.0.0' \
sphinxcontrib-bibtex \
'MDAnalysis>=0.18' \
'pint>=0.9'
WORKDIR /home/espresso
FROM nvidia/cuda:10.1-devel-ubuntu18.04
ENV DEBIAN_FRONTEND noninteractive
COPY build-and-install-scafacos.sh /tmp/
COPY ubuntu-packages.txt /tmp
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install -y \
&& apt-get install -y \
doxygen \
ffmpeg \
graphviz \
ipython3 jupyter-notebook jupyter-nbconvert \
python3-lxml python3-matplotlib \
texlive-base \
&& apt-get install -y --no-install-recommends software-properties-common \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# install ScaFaCoS
RUN bash /tmp/build-and-install-scafacos.sh
RUN useradd -m espresso
USER espresso
# install Python3 packages locally
RUN pip3 install --user --upgrade 'sphinx>=2.0,!=2.1.0,!=3.0.0' sphinxcontrib-bibtex 'MDAnalysis==0.16' 'pint>=0.9'
ENV PATH="/home/espresso/.local/bin:${PATH}"
WORKDIR /home/espresso
FROM nvidia/cuda:9.2-devel-ubuntu18.04
ENV DEBIAN_FRONTEND noninteractive
COPY ubuntu-packages.txt /tmp
RUN apt-get update && xargs -a /tmp/ubuntu-packages.txt apt-get install -y \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN useradd -m espresso
USER espresso
ENV HOME="/home/espresso"
WORKDIR /home/espresso
......@@ -2,19 +2,25 @@ FROM ubuntu:bionic
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y \
apt-utils \
cmake \
build-essential \
openmpi-bin libopenmpi-dev \
curl \
ccache \
cmake \
cython3 \
gdb \
git \
libboost-dev libboost-serialization-dev libboost-mpi-dev libboost-filesystem-dev libboost-test-dev \
cython3 python3 python3-numpy python3-scipy python3-h5py \
libopenmpi-dev \
openssh-client \
openmpi-bin \
python3 \
python3-numpy \
python3-scipy \
python3-h5py \
python3-pip \
python3-setuptools \
gdb \
git \
python3-vtk7 \
vim \
ccache \
curl \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
......
diff -ru boost/mpi/collectives/all_reduce.hpp boost/mpi/collectives/all_reduce.hpp
--- boost/mpi/collectives/all_reduce.hpp 2017-12-20 14:26:58.105542000 +0100
+++ boost/mpi/collectives/all_reduce.hpp 2017-12-20 14:56:39.862227286 +0100
@@ -51,7 +51,8 @@
T* out_values, Op op, mpl::false_ /*is_mpi_op*/,
mpl::true_ /*is_mpi_datatype*/)
{
- user_op<Op, T> mpi_op(op);
+ static auto lop = op;
+ user_op<Op, T> mpi_op(lop);
BOOST_MPI_CHECK_RESULT(MPI_Allreduce,
(const_cast<T*>(in_values), out_values, n,
boost::mpi::get_mpi_datatype<T>(*in_values),
diff -ru /tmp/boost/mpi/collectives/reduce.hpp /usr/include/boost/mpi/collectives/reduce.hpp
--- boost/mpi/collectives/reduce.hpp 2018-01-08 12:24:08.143526811 +0100
+++ boost/mpi/collectives/reduce.hpp 2018-01-08 12:27:01.368661956 +0100
@@ -81,7 +81,8 @@
T* out_values, Op op, int root, mpl::false_ /*is_mpi_op*/,
mpl::true_/*is_mpi_datatype*/)
{
- user_op<Op, T> mpi_op(op);
+ static Op lop = op;
+ user_op<Op, T> mpi_op(lop);
BOOST_MPI_CHECK_RESULT(MPI_Reduce,
(const_cast<T*>(in_values), out_values, n,
boost::mpi::get_mpi_datatype<T>(*in_values),
@@ -96,7 +97,8 @@
reduce_impl(const communicator& comm, const T* in_values, int n, Op op,
int root, mpl::false_/*is_mpi_op*/, mpl::true_/*is_mpi_datatype*/)
{
- user_op<Op, T> mpi_op(op);
+ static Op lop = op;
+ user_op<Op, T> mpi_op(lop);
BOOST_MPI_CHECK_RESULT(MPI_Reduce,
(const_cast<T*>(in_values), 0, n,
boost::mpi::get_mpi_datatype<T>(*in_values),
diff -ru /tmp/boost/mpi/collectives/scan.hpp /usr/include/boost/mpi/collectives/scan.hpp
--- boost/mpi/collectives/scan.hpp 2018-01-08 12:24:08.143526811 +0100
+++ boost/mpi/collectives/scan.hpp 2018-01-08 12:28:38.185296393 +0100
@@ -67,7 +67,8 @@
scan_impl(const communicator& comm, const T* in_values, int n, T* out_values,
Op op, mpl::false_ /*is_mpi_op*/, mpl::true_ /*is_mpi_datatype*/)
{
- user_op<Op, T> mpi_op(op);
+ static Op lop = op;
+ user_op<Op, T> mpi_op(lop);
BOOST_MPI_CHECK_RESULT(MPI_Scan,
(const_cast<T*>(in_values), out_values, n,
boost::mpi::get_mpi_datatype<T>(*in_values),
diff -ru boost/mpi/collectives/scatter.hpp boost/mpi/collectives/scatter.hpp
--- boost/mpi/collectives/scatter.hpp 2017-12-20 14:26:58.079548000 +0100
+++ boost/mpi/collectives/scatter.hpp 2017-12-20 15:07:44.242734024 +0100
@@ -69,7 +69,7 @@
// Send archive
packed_oarchive oa(comm);
for (int i = 0; i < n; ++i)
- oa << in_values[dest * n + i];
+ oa << in_values[dest * n + i]; // NOLINT
detail::packed_archive_send(comm, dest, tag, oa);
}
}
diff -ru boost/variant/detail/forced_return.hpp boost/variant/detail/forced_return.hpp
--- boost/variant/detail/forced_return.hpp 2017-12-20 14:26:13.518182000 +0100
+++ boost/variant/detail/forced_return.hpp 2017-12-20 16:24:49.834173291 +0100
@@ -39,7 +39,7 @@
BOOST_ASSERT(false);
T (*dummy_function_ptr)() = 0;
- return dummy_function_ptr();
+ return dummy_function_ptr(); // NOLINT
}
template <>
apt-utils
autoconf
automake
build-essential
ccache
cmake
curl
cython3
openmpi-bin libopenmpi-dev
gfortran
gdb
git
......@@ -17,14 +17,19 @@ libfftw3-dev
libgsl-dev
libhdf5-openmpi-dev
liblapack-dev
libopenmpi-dev
libtool
openmpi-bin
openssh-client
pkg-config
python3
python3-dev
python3-numpy
python3-numpydoc
python3-scipy
python3-h5py
python3-pip
python3-lxml
python3-requests
python3-setuptools
python3-vtk7
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment