1
1
# 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
4
4
FROM $BASE
5
5
6
6
ARG NPROC=8
7
7
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
-
10
8
# Avoid tzdata dialog
11
9
ARG DEBIAN_FRONTEND=noninteractive
12
10
13
- RUN apt-get update && apt-get install -yq \
11
+ RUN apt-get -yqq update && apt-get install -yq \
14
12
autoconf \
15
13
bc \
16
14
build-essential \
15
+ ca-certificates \
17
16
ccache \
18
17
curl \
19
- environment-modules \
20
18
gawk \
21
19
gfortran \
20
+ g++ \
22
21
git \
23
22
lcov \
24
23
libatlas-base-dev \
25
24
libbz2-dev \
26
- python2.7-dev \
27
- tmux \
28
- unzip \
25
+ libssl-dev \
26
+ mpich \
27
+ ninja-build \
28
+ python3-dev \
29
29
valgrind \
30
30
vim \
31
31
wget \
32
32
&& \
33
33
apt-get clean && \
34
34
rm -rf /var/lib/apt/lists/*
35
35
36
- # Install CMake
37
36
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 && \
42
39
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} && \
47
41
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 && \
49
45
rm -rf ${SCRATCH_DIR}
50
46
ENV PATH=${CMAKE_DIR}/bin:$PATH
51
47
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
-
73
48
# Install Trilinos
74
49
ENV TRILINOS_DIR=/opt/trilinos
75
50
RUN TRILINOS_VERSION=13-2-0 && \
@@ -81,14 +56,13 @@ RUN TRILINOS_VERSION=13-2-0 && \
81
56
tar -xf ${TRILINOS_ARCHIVE} -C trilinos --strip-components=1 && \
82
57
mkdir -p build && cd build && \
83
58
cmake \
59
+ -G Ninja \
84
60
-D CMAKE_BUILD_TYPE=RelWithDebInfo \
85
61
-D BUILD_SHARED_LIBS=ON \
86
62
\
87
63
-D CMAKE_INSTALL_PREFIX=${TRILINOS_DIR} \
88
64
\
89
65
-D TPL_ENABLE_Boost=OFF \
90
- -D TPL_ENABLE_CUDA=ON \
91
- -D TPL_ENABLE_CUDA=OFF \
92
66
-D TPL_ENABLE_DLlib=OFF \
93
67
-D TPL_ENABLE_MPI=ON \
94
68
\
@@ -129,6 +103,6 @@ RUN TRILINOS_VERSION=13-2-0 && \
129
103
-D Tpetra_ENABLE_DEPRECATED_CODE=OFF \
130
104
\
131
105
../trilinos && \
132
- make -j${NPROC} install && \
106
+ ninja -j${NPROC} install && \
133
107
rm -rf ${SCRATCH_DIR}
134
108
ENV TRILINOS_DIR=/opt/trilinos
0 commit comments