1
- # Dockerfile for building preCICE on ubuntu 22.04 with the intel oneAPI HPC Kit
1
+ # Dockerfile for building preCICE on ubuntu with the intel oneAPI compilers and MPI
2
2
3
- FROM ubuntu:20 .04
3
+ FROM ubuntu:24 .04
4
4
5
5
# # Install and setup Intel oneAPI
6
6
@@ -17,46 +17,11 @@ RUN --mount=type=cache,target=/var/cache/apt \
17
17
apt-get update && \
18
18
\
19
19
apt-get install -y --no-install-recommends build-essential pkg-config gnupg libarchive13 openssh-server openssh-client wget net-tools git && \
20
- apt-get install -y --no-install-recommends intel-oneapi-ccl -devel intel-oneapi-common-vars intel-oneapi- compiler-dpcpp-cpp intel-oneapi-dev-utilities intel-oneapi-ipp-devel intel-oneapi-ippcp-devel intel-oneapi-libdpstd-devel intel-oneapi- compiler-dpcpp-cpp-and-cpp-classic intel-oneapi-compiler- fortran intel-oneapi-mpi-devel && \
20
+ apt-get install -y --no-install-recommends intel-oneapi-mpi -devel intel-oneapi-compiler-dpcpp-cpp intel-oneapi-compiler-fortran && \
21
21
rm -rf /var/lib/apt/lists/*
22
22
23
- # Setup environment for Intel oneAPI
24
-
25
- # General
26
- ENV LANG=C.UTF-8
27
- ENV CCL_CONFIGURATION='cpu_gpu_dpcpp'
28
- ENV CCL_ROOT='/opt/intel/oneapi/ccl/latest'
29
- ENV CMPLR_ROOT='/opt/intel/oneapi/compiler/latest'
30
- ENV DAALROOT='/opt/intel/oneapi/dal/2023.2.0'
31
- ENV DALROOT='/opt/intel/oneapi/dal/2023.2.0'
32
- ENV DAL_MAJOR_BINARY='1'
33
- ENV DAL_MINOR_BINARY='1'
34
- ENV DPL_ROOT='/opt/intel/oneapi/dpl/latest'
35
- ENV FI_PROVIDER_PATH='/opt/intel/oneapi/mpi/latest//libfabric/lib/prov:/usr/lib/x86_64-linux-gnu/libfabric'
36
- ENV INTEL_LICENSE_FILE='/opt/intel/licenses:/root/intel/licenses:/opt/intel/licenses:/root/intel/licenses:/Users/Shared/Library/Application Support/Intel/Licenses'
37
- ENV IPPCP_TARGET_ARCH='intel64'
38
- ENV IPPCRYPTOROOT='/opt/intel/oneapi/ippcp/latest'
39
- ENV IPPROOT='/opt/intel/oneapi/ipp/latest'
40
- ENV IPP_TARGET_ARCH='intel64'
41
- ENV I_MPI_ROOT='/opt/intel/oneapi/mpi/latest'
42
- # ENV NLSPATH='/opt/intel/oneapi/mkl/latest/lib/intel64/locale/%l_%t/%N:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin/locale/%l_%t/%N'
43
- ENV OCL_ICD_FILENAMES='libintelocl_emu.so:libalteracl.so:/opt/intel/oneapi/compiler/latest/linux/lib/x64/libintelocl.so'
44
- ENV ONEAPI_ROOT='/opt/intel/oneapi'
45
- ENV TBBROOT='/opt/intel/oneapi/tbb/latest/env/..'
46
- ENV SETVARS_COMPLETED='1'
47
-
48
- # Package files
49
- ENV CMAKE_PREFIX_PATH='/opt/intel/oneapi/tbb/latest/env/..:/opt/intel/oneapi/ipp/latest/lib/cmake/ipp:/opt/intel/oneapi/compiler/latest/linux/IntelDPCPP:/opt/intel/oneapi/ccl/latest/lib/cmake/oneCCL'
50
- ENV PKG_CONFIG_PATH='/opt/intel/oneapi/tbb/latest/env/../lib/pkgconfig:/opt/intel/oneapi/mpi/latest/lib/pkgconfig:/opt/intel/oneapi/mkl/latest/lib/pkgconfig:/opt/intel/oneapi/ippcp/latest/lib/pkgconfig:/opt/intel/oneapi/dpl/latest/lib/pkgconfig:/opt/intel/oneapi/compiler/latest/lib/pkgconfig:/opt/intel/oneapi/ccl/latest/lib/pkgconfig'
51
-
52
- # General includes
53
- ENV CPATH='/opt/intel/oneapi/tbb/latest/env/../include:/opt/intel/oneapi/mpi/latest/include:/opt/intel/oneapi/mkl/latest/include:/opt/intel/oneapi/ippcp/latest/include:/opt/intel/oneapi/ipp/latest/include:/opt/intel/oneapi/dev-utilities/latest/include:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/include:/opt/intel/oneapi/ccl/latest/include/cpu_gpu_dpcpp'
54
- ENV PATH='/opt/intel/oneapi/mpi/latest/libfabric/bin:/opt/intel/oneapi/mpi/latest/bin:/opt/intel/oneapi/mkl/2023.2.0/bin/intel64:/opt/intel/oneapi/itac/2021.10.0/bin:/opt/intel/oneapi/inspector/2023.2.0/bin64:/opt/intel/oneapi/dev-utilities/latest/bin:/opt/intel/oneapi/debugger/latest/gdb/intel64/bin:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/bin:/opt/intel/oneapi/compiler/latest/linux/bin/intel64:/opt/intel/oneapi/compiler/latest/linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
55
- ENV LD_LIBRARY_PATH='/opt/intel/oneapi/tbb/latest/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/latest//libfabric/lib:/opt/intel/oneapi/mpi/latest//lib/release:/opt/intel/oneapi/mpi/latest//lib:/opt/intel/oneapi/mkl/latest/lib/intel64:/opt/intel/oneapi/ippcp/latest/lib/intel64:/opt/intel/oneapi/ipp/latest/lib/intel64:/opt/intel/oneapi/dnnl/2023.2.0/cpu_dpcpp_gpu_dpcpp/lib:/opt/intel/oneapi/debugger/latest/gdb/intel64/lib:/opt/intel/oneapi/debugger/latest/libipt/intel64/lib:/opt/intel/oneapi/debugger/latest/dep/lib:/opt/intel/oneapi/dal/2023.2.0/lib/intel64:/opt/intel/oneapi/compiler/latest/linux/lib:/opt/intel/oneapi/compiler/latest/linux/lib/x64:/opt/intel/oneapi/compiler/latest/linux/lib/oclfpga/host/linux64/lib:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/ccl/latest/lib/cpu_gpu_dpcpp:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/ccl/latest/lib/cpu_gpu_dpcpp'
56
- ENV LIBRARY_PATH='/opt/intel/oneapi/tbb/latest/env/../lib/intel64/gcc4.8:/opt/intel/oneapi/mpi/latest//libfabric/lib:/opt/intel/oneapi/mpi/latest//lib/release:/opt/intel/oneapi/mpi/latest//lib:/opt/intel/oneapi/mkl/latest/lib/intel64:/opt/intel/oneapi/ippcp/latest/lib/intel64:/opt/intel/oneapi/ipp/latest/lib/intel64:/opt/intel/oneapi/compiler/latest/linux/compiler/lib/intel64_lin:/opt/intel/oneapi/compiler/latest/linux/lib:/opt/intel/oneapi/ccl/latest/lib/cpu_gpu_dpcpp'
57
-
58
23
# Check if Intel compilers are available
59
- RUN icx --version && icpx --version && ifx --version
24
+ RUN . /opt/intel/oneapi/setvars.sh icx --version && icpx --version && ifx --version
60
25
61
26
# Add the precice user to run test with mpi
62
27
RUN useradd -m -s /bin/bash precice
@@ -75,7 +40,7 @@ RUN --mount=type=cache,target=/var/cache/apt \
75
40
libeigen3-dev \
76
41
libxml2-dev \
77
42
lsb-release \
78
- ninja \
43
+ ninja-build \
79
44
python3-dev \
80
45
python3-numpy \
81
46
python3-pip \
@@ -89,7 +54,8 @@ RUN --mount=type=cache,target=/var/cache/apt \
89
54
RUN rm -rf /var/lib/apt/lists/* /var/cache/apt/*
90
55
91
56
92
- RUN git clone -b release --depth 1 https://gitlab.com/petsc/petsc.git /petsc && \
57
+ RUN . /opt/intel/oneapi/setvars.sh && \
58
+ git clone -b release --depth 1 https://gitlab.com/petsc/petsc.git /petsc && \
93
59
cd /petsc && \
94
60
export I_MPI_CC=icx I_MPI_CXX=icpx I_MPI_FC=ifx && \
95
61
./configure --with-cc=mpicc --with-cxx=mpicxx --with-fc=mpifc --prefix=/usr/local/ && \
@@ -100,10 +66,6 @@ RUN git clone -b release --depth 1 https://gitlab.com/petsc/petsc.git /petsc &&
100
66
COPY --chown=root:root intel/99-setup-intel.sh /etc/profile.d/
101
67
102
68
103
- # Environment variables are set in the .env file
104
- # COPY --chown=root:root ginkgo/99-ginkgo-env.sh /etc/profile.d/
105
- # COPY ginkgo/ginkgo-install.sh ginkgo-install.sh
106
- # RUN ./ginkgo-install.sh && rm ginkgo-install.sh
107
69
CMD ["/bin/bash" , "--login" ]
108
70
109
71
# vim: set ft=dockerfile :
0 commit comments