From 85e830b2ccf9deb1085b7d01b8a2e2ed8dabb1e6 Mon Sep 17 00:00:00 2001 From: Marc Fehling Date: Thu, 13 Jan 2022 12:18:10 +0100 Subject: [PATCH] Add Intel oneAPI to github-actions. PR: #12554 #13057 #13138 --- .github/workflows/linux.yml | 71 +++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index d1be33ae19..19446b2d47 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -150,3 +150,74 @@ jobs: - name: build run: | make -j 2 + + + linux-debug-intel-oneapi: + # parallel debug build with Intel oneAPI including MPI and MKL + # + # Based on https://github.com/oneapi-src/oneapi-ci + # For a list of Intel packages see https://oneapi-src.github.io/oneapi-ci/#linux-apt + + name: linux debug intel oneapi + runs-on: [ubuntu-18.04] + + steps: + - uses: actions/checkout@v2 + - name: setup apt repo + run: | + # oneapi-ci/scripts/setup_apt_repo_linux.sh + wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + sudo apt-key add GPG-PUB-KEY-INTEL-SW-PRODUCTS-2023.PUB + echo "deb https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list + sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/oneAPI.list" -o APT::Get::List-Cleanup="0" + - name: collect versioned dependencies of apt packages + run : | + # oneapi-ci/scripts/apt_depends.sh + apt-cache depends intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic \ + intel-oneapi-mpi-devel \ + intel-oneapi-mkl-devel \ + intel-oneapi-tbb-devel | tee dependencies.txt + - name: cache install + id: cache-install + uses: actions/cache@v2 + with: + path: /opt/intel/oneapi + key: install-${{ hashFiles('**/dependencies.txt') }} + - name: install + if: steps.cache-install.outputs.cache-hit != 'true' + run: | + # oneapi-ci/scripts/install_linux_apt.sh + sudo apt-get install -y intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic \ + intel-oneapi-mpi-devel \ + intel-oneapi-mkl-devel \ + intel-oneapi-tbb-devel + sudo apt-get clean + - name: info + run: | + source /opt/intel/oneapi/setvars.sh + mpiicpc -v + cmake --version + - name: configure + run: | + source /opt/intel/oneapi/setvars.sh + cmake -D CMAKE_BUILD_TYPE=Debug \ + -D CMAKE_CXX_COMPILER=icpc \ + -D DEAL_II_CXX_FLAGS='-Werror' \ + -D DEAL_II_EARLY_DEPRECATIONS=ON \ + -D DEAL_II_WITH_MPI=ON \ + -D DEAL_II_WITH_LAPACK=ON \ + -D DEAL_II_WITH_TBB=ON \ + -D MPI_DIR=${I_MPI_ROOT} \ + -D BLAS_DIR=${MKLROOT} \ + -D LAPACK_DIR=${MKLROOT} \ + -D TBB_DIR=${TBBROOT} \ + . + - name: archive + uses: actions/upload-artifact@v1 + with: + name: linux-intel-detailed.log + path: detailed.log + - name: build + run: | + source /opt/intel/oneapi/setvars.sh + make -j 2 -- 2.39.5