Skip to content

Add a new thread pool that switches between single- and multi- threaded execution #240

Add a new thread pool that switches between single- and multi- threaded execution

Add a new thread pool that switches between single- and multi- threaded execution #240

Workflow file for this run

# Copyright 2023 Intel Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: Linux Build and Test
on:
push:
branches:
- main
pull_request:
permissions:
contents: read
# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: true
jobs:
build:
name: ${{ matrix.cxx }}, ${{ matrix.build_type }}
runs-on: ubuntu-22.04
strategy:
matrix:
build_type: [RelWithDebugInfo]
cxx: [g++-11, g++-12, clang++-15]
include:
- cxx: g++-11
cc: gcc-11
- cxx: g++-12
cc: gcc-12
- cxx: clang++-15
cc: clang-15
steps:
- uses: actions/checkout@v4
- name: Install MKL
timeout-minutes: 5
run: |
.github/scripts/setup_apt_repo_linux.sh
sudo apt install intel-oneapi-mkl intel-oneapi-mkl-devel
# Setup environment variables for building against MKL.
# Persist the environment variables for use across multiple subsequent actions.
source /opt/intel/oneapi/setvars.sh
printenv >> $GITHUB_ENV
- name: Configure build
working-directory: ${{ runner.temp }}
env:
CXX: ${{ matrix.cxx }}
CC: ${{ matrix.cc }}
TEMP_WORKSPACE: ${{ runner.temp }}
run: |
cmake -B${TEMP_WORKSPACE}/build -S${GITHUB_WORKSPACE} \
-DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \
-DSVS_BUILD_BINARIES=YES \
-DSVS_BUILD_TESTS=YES \
-DSVS_BUILD_EXAMPLES=YES \
-DSVS_EXPERIMENTAL_LEANVEC=YES \
-DSVS_NO_AVX512=NO
- name: Build Tests and Utilities
working-directory: ${{ runner.temp }}/build
run: make -j$(nproc)
- name: Run tests
env:
CTEST_OUTPUT_ON_FAILURE: 1
working-directory: ${{ runner.temp }}/build/tests
run: ctest -C ${{ matrix.build_type }}