Skip to content
Closed
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
30 changes: 20 additions & 10 deletions Dockerfile.intel
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@
ENV CMPLR_ROOT=${ONEAPI_ROOT}/compiler/latest

# Set library paths and include paths
ENV LIBRARY_PATH=${ONEAPI_ROOT}/tbb/latest/lib/intel64/gcc4.8:${ONEAPI_ROOT}/mpi/latest/lib:${MKLROOT}/lib/intel64:${ONEAPI_ROOT}/compiler/latest/lib/:${LIBRARY_PATH}

Check warning on line 37 in Dockerfile.intel

View workflow job for this annotation

GitHub Actions / build_container_and_push (intel)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$LIBRARY_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
ENV LD_LIBRARY_PATH=${ONEAPI_ROOT}/tbb/latest/lib/intel64/gcc4.8:${ONEAPI_ROOT}/mpi/latest/lib:${MKLROOT}/lib/intel64:${ONEAPI_ROOT}/compiler/latest/lib/:${LD_LIBRARY_PATH}

Check warning on line 38 in Dockerfile.intel

View workflow job for this annotation

GitHub Actions / build_container_and_push (intel)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$LD_LIBRARY_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
ENV PATH=${ONEAPI_ROOT}/vtune/latest/bin64:${ONEAPI_ROOT}/mpi/latest/bin:${MKLROOT}/bin/intel64:${ONEAPI_ROOT}/compiler/latest/bin:${PATH}
ENV CPATH=${MKLROOT}/include:${ONEAPI_ROOT}/mpi/latest/include:${CPATH}

Check warning on line 40 in Dockerfile.intel

View workflow job for this annotation

GitHub Actions / build_container_and_push (intel)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$CPATH' (did you mean $PATH?) More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/
ENV PKG_CONFIG_PATH=${MKLROOT}/lib/pkgconfig:${ONEAPI_ROOT}/mpi/latest/lib/pkgconfig:${PKG_CONFIG_PATH}

Check warning on line 41 in Dockerfile.intel

View workflow job for this annotation

GitHub Actions / build_container_and_push (intel)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$PKG_CONFIG_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

# Set CMAKE related paths
ENV CMAKE_PREFIX_PATH=${ONEAPI_ROOT}/tbb/latest:${MKLROOT}/lib/cmake:${ONEAPI_ROOT}/dpl/latest/lib/cmake:${ONEAPI_ROOT}/dnnl/latest/lib/cmake:${ONEAPI_ROOT}/dal/latest:${ONEAPI_ROOT}/compiler/latest:${CMAKE_PREFIX_PATH}

Check warning on line 44 in Dockerfile.intel

View workflow job for this annotation

GitHub Actions / build_container_and_push (intel)

Variables should be defined before their use

UndefinedVar: Usage of undefined variable '$CMAKE_PREFIX_PATH' More info: https://docs.docker.com/go/dockerfile/rule/undefined-var/

SHELL ["/bin/bash", "-c"]
ENV CC=mpiicx CXX=mpiicpx FC=mpiifx
Expand Down Expand Up @@ -88,19 +88,23 @@
ENV SUPERLU_DIST32_ROOT=/usr/local/superlu_dist32-${SUPERLU_DIST_VERSION}

# 2. install GKlib
RUN wget https://codeload.github.com/KarypisLab/GKlib/zip/refs/heads/${GKLIB_VERSION} -O GKlib-${GKLIB_VERSION}.zip && \
RUN wget --no-check-certificate --quiet --tries=3 --timeout=30 \
https://codeload.github.com/KarypisLab/GKlib/zip/refs/heads/${GKLIB_VERSION} \
-O GKlib-${GKLIB_VERSION}.zip && \
unzip GKlib-${GKLIB_VERSION}.zip && \
cd GKlib-${GKLIB_VERSION} && \
make config shared=1 prefix=${GKLIB_ROOT} openmp=set && \
make -j$(nproc) && \
make install && \
ls ${GKLIB_ROOT}/lib && \
cp ${GKLIB_ROOT}/lib/libGKlib.so.0 ${GKLIB_ROOT}/lib/libGKlib.so && \
cp -n ${GKLIB_ROOT}/lib/libGKlib.so.0 ${GKLIB_ROOT}/lib/libGKlib.so || true && \
cd / && rm -rf GKlib-${GKLIB_VERSION} GKlib-${GKLIB_VERSION}.zip
#.so file CANNOT be found otherwise.
# 2. install METIS
RUN export LD_LIBRARY_PATH=${GKLIB_ROOT}/lib:${LD_LIBRARY_PATH} && \
wget https://codeload.github.com/KarypisLab/METIS/zip/refs/heads/${METIS_VERSION} -O METIS-${METIS_VERSION}.zip && \
wget --no-check-certificate --quiet --tries=3 --timeout=30 \
https://codeload.github.com/KarypisLab/METIS/zip/refs/heads/${METIS_VERSION} \
-O METIS-${METIS_VERSION}.zip && \
unzip METIS-${METIS_VERSION}.zip && \
cd METIS-${METIS_VERSION} && \
make config shared=1 prefix=${METIS32_ROOT} gklib_path=${GKLIB_ROOT} && \
Expand All @@ -110,7 +114,9 @@

# 3. install ParMETIS
RUN export LD_LIBRARY_PATH=${METIS32_ROOT}/lib:${GKLIB_ROOT}/lib:${LD_LIBRARY_PATH} && \
wget https://codeload.github.com/KarypisLab/ParMETIS/zip/refs/heads/${PARMETIS_VERSION} -O ParMETIS-${PARMETIS_VERSION}.zip && \
wget --no-check-certificate --quiet --tries=3 --timeout=30 \
https://codeload.github.com/KarypisLab/ParMETIS/zip/refs/heads/${PARMETIS_VERSION} \
-O ParMETIS-${PARMETIS_VERSION}.zip && \
unzip ParMETIS-${PARMETIS_VERSION}.zip && \
cd ParMETIS-${PARMETIS_VERSION} && \
make config shared=1 prefix=${PARMETIS32_ROOT} gklib_path=${GKLIB_ROOT} metis_path=${METIS32_ROOT} && \
Expand All @@ -119,7 +125,9 @@
cd / && rm -rf ParMETIS-${PARMETIS_VERSION} ParMETIS-${PARMETIS_VERSION}.zip

# 4. install SuperLU_DIST
RUN wget https://codeload.github.com/xiaoyeli/superlu_dist/tar.gz/refs/tags/v${SUPERLU_DIST_VERSION} -O v${SUPERLU_DIST_VERSION}.tar.gz && \
RUN wget --no-check-certificate --quiet --tries=3 --timeout=30 \
https://codeload.github.com/xiaoyeli/superlu_dist/tar.gz/refs/tags/v${SUPERLU_DIST_VERSION} \
-O v${SUPERLU_DIST_VERSION}.tar.gz && \
tar -xzf v${SUPERLU_DIST_VERSION}.tar.gz && \
cd superlu_dist-${SUPERLU_DIST_VERSION} && \
mkdir build && cd build && \
Expand All @@ -138,7 +146,7 @@
-DCMAKE_C_FLAGS="-O3 -fopenmp" \
-DCMAKE_CXX_FLAGS="-O3 -fopenmp" \
-DXSDK_ENABLE_Fortran=ON \
-DCMAKE_Fortran_COMPILER=mpiifx && \
-DCMAKE_Fortran_COMPILER=mpiifx && \
make -j$(nproc) && \
make install && \
cd / && rm -rf superlu_dist-${SUPERLU_DIST_VERSION} v${SUPERLU_DIST_VERSION}.tar.gz
Expand All @@ -153,7 +161,9 @@
export PKG_CONFIG_PATH=${SUPERLU_DIST32_ROOT}/lib/pkgconfig:${METIS32_ROOT}/lib/pkgconfig:${PARMETIS32_ROOT}/lib/pkgconfig:${GKLIB_ROOT}/lib/pkgconfig:${PKG_CONFIG_PATH} && \
export CPATH=${SUPERLU_DIST32_ROOT}/include:${PARMETIS32_ROOT}/include:${METIS32_ROOT}/include:${GKLIB_ROOT}/include:${CMAKE_PREFIX_PATH} && \
export CMAKE_PREFIX_PATH=${SUPERLU_DIST32_ROOT}:${PARMETIS32_ROOT}:${METIS32_ROOT}:${GKLIB_ROOT}:${CMAKE_PREFIX_PATH} && \
wget https://codeload.github.com/MCresearch/pexsi/tar.gz/refs/heads/${PEXSI_VERSION} -O pexsi-${PEXSI_VERSION}.tar.gz && \
wget --no-check-certificate --quiet --tries=3 --timeout=30 \
https://codeload.github.com/MCresearch/pexsi/tar.gz/refs/heads/${PEXSI_VERSION} \
-O pexsi-${PEXSI_VERSION}.tar.gz && \
tar -xzf pexsi-${PEXSI_VERSION}.tar.gz && \
cd pexsi-${PEXSI_VERSION} && \
sed -i 's/^add_pexsi_f_example_exe/# add_pexsi_f_example_exe/g' fortran/CMakeLists.txt && \
Expand All @@ -169,9 +179,9 @@
make install && \
cd / && rm -rf pexsi-${PEXSI_VERSION} pexsi-${PEXSI_VERSION}.tar.gz

ENV LD_LIBRARY_PATH=${GKLIB_ROOT}/lib:${METIS32_ROOT}/lib:${PARMETIS32_ROOT}/lib:${SUPERLU32_DIST_ROOT}/lib:${PEXSI32_ROOT}/lib:${LD_LIBRARY_PATH}
ENV PKG_CONFIG_PATH=${GKLIB_ROOT}/lib/pkgconfig:${METIS32_ROOT}/lib/pkgconfig:${PARMETIS32_ROOT}/lib/pkgconfig:${SUPERLU32_DIST_ROOT}/lib/pkgconfig:${PEXSI32_ROOT}/lib/pkgconfig:${PKG_CONFIG_PATH}
ENV CPATH=${GKLIB_ROOT}/include:${METIS32_ROOT}/include:${PARMETIS32_ROOT}/include:${SUPERLU32_DIST_ROOT}/include:${PEXSI32_ROOT}/include:${CPATH}
ENV LD_LIBRARY_PATH=${GKLIB_ROOT}/lib:${METIS32_ROOT}/lib:${PARMETIS32_ROOT}/lib:${SUPERLU_DIST32_ROOT}/lib:${PEXSI32_ROOT}/lib:${LD_LIBRARY_PATH}
ENV PKG_CONFIG_PATH=${GKLIB_ROOT}/lib/pkgconfig:${METIS32_ROOT}/lib/pkgconfig:${PARMETIS32_ROOT}/lib/pkgconfig:${SUPERLU_DIST32_ROOT}/lib/pkgconfig:${PEXSI32_ROOT}/lib/pkgconfig:${PKG_CONFIG_PATH}
ENV CPATH=${GKLIB_ROOT}/include:${METIS32_ROOT}/include:${PARMETIS32_ROOT}/include:${SUPERLU_DIST32_ROOT}/include:${PEXSI32_ROOT}/include:${CPATH}
ENV CMAKE_PREFIX_PATH=${PEXSI32_ROOT}:${SUPERLU_DIST32_ROOT}:${PARMETIS32_ROOT}:${METIS32_ROOT}:${GKLIB_ROOT}:${CMAKE_PREFIX_PATH}

### -DCMAKE_C_COMPILER=mpiicc \
Expand Down
Loading