Skip to content

Commit 2f783d2

Browse files
committed
Update dockerfile and jenkins for Trilinos 13.2
1 parent e7b0568 commit 2f783d2

File tree

2 files changed

+20
-45
lines changed

2 files changed

+20
-45
lines changed

.jenkins

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ pipeline {
3131
dir('build') {
3232
sh '''
3333
cmake \
34+
-GNinja \
3435
-D CMAKE_INSTALL_PREFIX=$FORTRILINOS_DIR \
3536
-D CMAKE_BUILD_TYPE=Debug \
3637
-D CMAKE_CXX_COMPILER_LAUNCHER=ccache \
@@ -39,7 +40,7 @@ pipeline {
3940
-D ForTrilinos_EXAMPLES=ON \
4041
..
4142
'''
42-
sh 'make -j8 VERBOSE=1'
43+
sh 'ninja -v'
4344
sh 'ctest $CTEST_OPTIONS'
4445
}
4546
}
@@ -49,7 +50,7 @@ pipeline {
4950
xunit reduceLog: false, tools:[CTest(deleteOutputFiles: true, failIfNotNew: true, pattern: 'build/Testing/**/Test.xml', skipNoTestFiles: false, stopProcessingIfError: true)]
5051
}
5152
success {
52-
sh 'cd build && make install'
53+
sh 'cd build && ninja install'
5354
sh 'rm -rf test_install && mkdir -p test_install'
5455
dir('test_install') {
5556
sh 'cp -r ../example/test-installation .'

docker/Dockerfile

+17-43
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,50 @@
11
# Build command:
2-
# $ docker build -t aprokop/fortrilinos-stack:latest -f Dockerfile .
3-
ARG BASE=nvidia/cuda:11.0.3-devel-ubuntu18.04
2+
# $ docker build -t sethrj/fortrilinos-stack:latest -f Dockerfile .
3+
ARG BASE=nvidia/cuda:11.2.2-devel-ubuntu20.04
44
FROM $BASE
55

66
ARG NPROC=8
77

8-
RUN if test ${NV_CUDA_LIB_VERSION}; then apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/3bf863cc.pub; fi
9-
108
# Avoid tzdata dialog
119
ARG DEBIAN_FRONTEND=noninteractive
1210

13-
RUN apt-get update && apt-get install -yq \
11+
RUN apt-get -yqq update && apt-get install -yq \
1412
autoconf \
1513
bc \
1614
build-essential \
15+
ca-certificates \
1716
ccache \
1817
curl \
19-
environment-modules \
2018
gawk \
2119
gfortran \
20+
g++ \
2221
git \
2322
lcov \
2423
libatlas-base-dev \
2524
libbz2-dev \
26-
python2.7-dev \
27-
tmux \
28-
unzip \
25+
libssl-dev \
26+
mpich \
27+
ninja-build \
28+
python3-dev \
2929
valgrind \
3030
vim \
3131
wget \
3232
&& \
3333
apt-get clean && \
3434
rm -rf /var/lib/apt/lists/*
3535

36-
# Install CMake
3736
ENV CMAKE_DIR=/opt/cmake
38-
RUN CMAKE_VERSION=3.23.3 && \
39-
CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION} && \
40-
CMAKE_SCRIPT=cmake-${CMAKE_VERSION}-Linux-x86_64.sh && \
41-
CMAKE_SHA256=cmake-${CMAKE_VERSION}-SHA-256.txt && \
37+
RUN CMAKE_URL=https://github.com/Kitware/CMake/releases/download/v3.23.3/cmake-3.23.3.tar.gz && \
38+
CMAKE_ARCHIVE=cmake.tar.gz && \
4239
SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \
43-
wget --quiet ${CMAKE_URL}/${CMAKE_SHA256} && \
44-
wget --quiet ${CMAKE_URL}/${CMAKE_SHA256}.asc && \
45-
wget --quiet ${CMAKE_URL}/${CMAKE_SCRIPT} && \
46-
grep ${CMAKE_SCRIPT} ${CMAKE_SHA256} | sha256sum --check && \
40+
wget --quiet ${CMAKE_URL} --output-document=${CMAKE_ARCHIVE} && \
4741
mkdir -p ${CMAKE_DIR} && \
48-
sh ${CMAKE_SCRIPT} --skip-license --prefix=${CMAKE_DIR} && \
42+
tar -xf ${CMAKE_ARCHIVE} --strip-components=1 && \
43+
./bootstrap --prefix=${CMAKE_DIR} --generator=Ninja && \
44+
ninja install && \
4945
rm -rf ${SCRATCH_DIR}
5046
ENV PATH=${CMAKE_DIR}/bin:$PATH
5147

52-
# Install OpenMPI
53-
ENV OPENMPI_DIR=/opt/openmpi
54-
RUN OPENMPI_VERSION=4.1.4 && \
55-
OPENMPI_VERSION_SHORT=$(echo "$OPENMPI_VERSION" | cut -d. -f1,2) && \
56-
OPENMPI_SHA256=92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d && \
57-
OPENMPI_URL=https://download.open-mpi.org/release/open-mpi/v${OPENMPI_VERSION_SHORT}/openmpi-${OPENMPI_VERSION}.tar.bz2 && \
58-
OPENMPI_ARCHIVE=openmpi-${OPENMPI_VERSION}.tar.bz2 && \
59-
SCRATCH_DIR=/scratch && mkdir -p ${SCRATCH_DIR} && cd ${SCRATCH_DIR} && \
60-
wget --quiet ${OPENMPI_URL} --output-document=${OPENMPI_ARCHIVE} && \
61-
echo "${OPENMPI_SHA256} ${OPENMPI_ARCHIVE}" | sha256sum --check && \
62-
mkdir -p openmpi && \
63-
tar -xf ${OPENMPI_ARCHIVE} -C openmpi --strip-components=1 && \
64-
mkdir -p build && cd build && \
65-
../openmpi/configure --prefix=${OPENMPI_DIR} ${CUDA_OPTIONS} CFLAGS=-w && \
66-
make -j${NPROCS} install && \
67-
rm -rf ${SCRATCH_DIR}
68-
ENV PATH=${OPENMPI_DIR}/bin:$PATH
69-
70-
# Workaround for Kokkos to find libcudart
71-
ENV LD_LIBRARY_PATH=/usr/local/cuda/targets/x86_64-linux/lib:${LD_LIBRARY_PATH}
72-
7348
# Install Trilinos
7449
ENV TRILINOS_DIR=/opt/trilinos
7550
RUN TRILINOS_VERSION=13-2-0 && \
@@ -81,14 +56,13 @@ RUN TRILINOS_VERSION=13-2-0 && \
8156
tar -xf ${TRILINOS_ARCHIVE} -C trilinos --strip-components=1 && \
8257
mkdir -p build && cd build && \
8358
cmake \
59+
-G Ninja \
8460
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
8561
-D BUILD_SHARED_LIBS=ON \
8662
\
8763
-D CMAKE_INSTALL_PREFIX=${TRILINOS_DIR} \
8864
\
8965
-D TPL_ENABLE_Boost=OFF \
90-
-D TPL_ENABLE_CUDA=ON \
91-
-D TPL_ENABLE_CUDA=OFF \
9266
-D TPL_ENABLE_DLlib=OFF \
9367
-D TPL_ENABLE_MPI=ON \
9468
\
@@ -129,6 +103,6 @@ RUN TRILINOS_VERSION=13-2-0 && \
129103
-D Tpetra_ENABLE_DEPRECATED_CODE=OFF \
130104
\
131105
../trilinos && \
132-
make -j${NPROC} install && \
106+
ninja -j${NPROC} install && \
133107
rm -rf ${SCRATCH_DIR}
134108
ENV TRILINOS_DIR=/opt/trilinos

0 commit comments

Comments
 (0)