Skip to content

Improve Intel cmake compiler flags #587

Improve Intel cmake compiler flags

Improve Intel cmake compiler flags #587

Workflow file for this run

name: CI Tests
on: [push, pull_request]
env:
# for cache install
LINUX_ONEAPI_COMPONENTS: intel-oneapi-compiler-fortran:intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic:intel-oneapi-mpi:intel-oneapi-mpi-devel:intel-oneapi-mkl
jobs:
GNU:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-20.04]
compiler: [gfortran-9]
env:
FC: ${{ matrix.compiler }}
name: ${{ matrix.os }} / ${{ matrix.compiler }}
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- uses: actions/setup-python@v1
with:
python-version: '3.7'
- name: Install Cmake
run: pip3 install cmake
- name: Install python dependencies
run: pip3 install numpy pytest
- name: Install blas, lapack and other dependencies
run: sudo apt-get install libblas-dev liblapack-dev doxygen
- name: Install Zofu Test Framework
run: |
mkdir -p external && cd external
git clone https://github.com/acroucher/zofu.git
mkdir zofu/build && cd zofu/build
cmake \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_INSTALL_PREFIX=/home/runner/work/greenX/greenX/external/zofu/install \
-DZOFU_FORTRAN_MODULE_INSTALL_DIR:PATH=include \
..
make -j 4
make install
- name: Build
run: |
mkdir -p build
cd build
cmake -DENABLE_UNITTESTS=ON -DZOFU_PATH=/home/runner/work/greenX/greenX/external/zofu/install ../
make -j$(nproc) VERBOSE=1
- name: Run Tests
run: |
cd python && pip install -e . && cd ../
cd build
ctest -j1 --output-on-failure
# The build system exports GX_BUILD_DIR, but I do not know how to
# propagate env vars between steps in Github Actions
env:
GX_BUILD_DIR: "/home/runner/work/greenX/greenX/build"
intel-oneapi:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [{cc: icx, cxx: icpx, fc: ifx}, {cc: icc, cxx: icpc, fc: ifort}]
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cxx }}
FC: ${{ matrix.compiler.fc }}
steps:
- name: Intel Apt repository
timeout-minutes: 1
run: |
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
rm 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
# dump dependencies of oneAPI components
echo "$LINUX_ONEAPI_COMPONENTS" | sed "s/:/ /g" | xargs -n 1 apt-cache depends | tee depends.txt
- name: Cache install
timeout-minutes: 2
id: cache-install
uses: actions/cache@v3
with:
path: /opt/intel/oneapi/
key: install-${{ env.LINUX_ONEAPI_COMPONENTS }}-${{ hashFiles('**/depends.txt') }}
- name: Install Intel oneAPI
timeout-minutes: 5
if: steps.cache-install.outputs.cache-hit != 'true'
run: |
sudo apt-get install $(echo "$LINUX_ONEAPI_COMPONENTS" | sed 's/:/ /g')
- name: Install ninja-build
run: |
sudo apt-get install ninja-build
- name: checkout project code
uses: actions/checkout@v2
- name: Setup Intel oneAPI environment
run: |
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- uses: actions/setup-python@v1
with:
python-version: '3.7'
- name: Install Cmake
run: pip3 install cmake
- name: Install python dependencies
run: pip3 install numpy pytest
- name: Install Zofu Test Framework
run: |
mkdir -p external && cd external
git clone https://github.com/acroucher/zofu.git
mkdir zofu/build && cd zofu/build
cmake \
-DCMAKE_BUILD_TYPE=release \
-DCMAKE_INSTALL_PREFIX=/home/runner/work/greenX/greenX/external/zofu/install \
-DZOFU_FORTRAN_MODULE_INSTALL_DIR:PATH=include \
..
make -j 4
make install
- name: Build
run: |
mkdir -p build
cd build
cmake -DENABLE_UNITTESTS=ON -DZOFU_PATH=/home/runner/work/greenX/greenX/external/zofu/install ../
make -j$(nproc) VERBOSE=1
- name: Run Tests
run: |
cd python && pip install -e . && cd ../
cd build
ctest -j1 --output-on-failure
# The build system exports GX_BUILD_DIR, but I do not know how to
# propagate env vars between steps in Github Actions
env:
GX_BUILD_DIR: "/home/runner/work/greenX/greenX/build"