Skip to content

CI for Intel Compilers #251

CI for Intel Compilers

CI for Intel Compilers #251

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
# linux-gcc:
# runs-on: ubuntu-22.04
# continue-on-error: true
# strategy:
# matrix:
# gcc_version: [9, 10, 11, 12]
# scheduler: [nemesis, sherwood, distrib]
# topology: [hwloc, binders, no]
# env:
# CC: gcc-${{ matrix.gcc_version }}
# CXX: g++-${{ matrix.gcc_version }}
# steps:
# - uses: actions/checkout@v3
# - name: install compiler
# run: sudo apt-get install gcc-${{ matrix.gcc_version }} g++-${{ matrix.gcc_version }}
# - if: ${{ matrix.topology != 'no' }}
# run: |
# sudo apt-get install hwloc libhwloc-dev
# hwloc-ls --version
# - name: build qthreads
# run: |
# ./autogen.sh
# ./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
# make -j2
# - name: make check
# run: timeout -k 10s --foreground 3m make check
# timeout-minutes: 4
#
# linux-clang:
# runs-on: ubuntu-22.04
# continue-on-error: true
# strategy:
# matrix:
# clang_version: [11, 12, 13, 14, 15, 16]
# scheduler: [nemesis, sherwood, distrib]
# topology: [hwloc, binders, no]
# include:
# - clang_version: 11
# gcc_version: 10
# - clang_version: 12
# gcc_version: 11
# - clang_version: 13
# gcc_version: 11
# - clang_version: 14
# gcc_version: 11
# - clang_version: 15
# gcc_version: 12
# - clang_version: 16
# gcc_version: 13
# - clang_version: 17
# gcc_version: 13
# env:
# CC: clang-${{ matrix.clang_version }}
# CXX: clang++${{ matrix.clang_version }}
# steps:
# - uses: actions/checkout@v3
# - if: ${{ matrix.clang_version == '16' || matrix.clang_version == 17 }}
# run: |
# wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
# sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-${{ matrix.clang_version }} main' && break || sleep 1
# - if: ${{ matrix.gcc_version == '13' && ! matrix.use_libcxx }}
# run: sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test' && break || sleep 1
# - name: install gcc
# run: sudo apt-get install gcc-${{ matrix.gcc_version }} g++-${{ matrix.gcc_version }}
# - name: install clang
# run: sudo apt-get install clang-${{ matrix.clang_version }}
# - if: ${{ matrix.topology != 'no' }}
# run: |
# sudo apt-get install hwloc libhwloc-dev
# hwloc-ls --version
# - name: build qthreads
# run: |
# ./autogen.sh
# ./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
# make -j2
# - name: make check
# run: timeout -k 10s --foreground 6m make check
# timeout-minutes: 7
#
linux-icx:
runs-on: ubuntu-22.04
continue-on-error: true
strategy:
matrix:
scheduler: [nemesis, sherwood, distrib]
topology: [hwloc, binders, no]
env:
CC: icx
CXX: icpx
steps:
- uses: actions/checkout@v3
- if: ${{ matrix.topology != 'no' }}
run: |
sudo apt-get install hwloc libhwloc-dev
hwloc-ls --version
- name: install gcc
run: |
sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test' && break || sleep 1
sudo apt-get install gcc-13 g++-13
- name: install icx
run: |
wget -O - https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | sudo apt-key add - && break || sleep 1
sudo apt-add-repository 'deb https://apt.repos.intel.com/oneapi all main' && break || sleep 1
sudo apt-get install intel-oneapi-compiler-dpcpp-cpp-and-cpp-classic
source /opt/intel/oneapi/setvars.sh
icx -v
icc -v
- name: build qthreads
run: |
source /opt/intel/oneapi/setvars.sh
./autogen.sh
./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }} || cat config.log
make -j2
- name: make check
run: |
source /opt/intel/oneapi/setvars.sh
timeout -k 10s --foreground 6m make check
timeout-minutes: 7
# mac:
# runs-on: macos-latest
# continue-on-error: true
# strategy:
# matrix:
# scheduler: [nemesis, sherwood, distrib]
# topology: [hwloc, binders, no]
# use_asserts: [true, false]
# env:
# QTHREADS_ENABLE_ASSERTS: ${{ matrix.use_asserts && '--enable-asserts' || '' }}
# steps:
# - uses: actions/checkout@v3
# - name: install deps
# run: |
# brew install autoconf automake libtool coreutils # coreutils is to get gtimeout for CI and is not universally required by qthreads.
# - if: ${{ matrix.topology != 'no' }}
# run: |
# brew install hwloc
# hwloc-ls --version
# - name: build qthreads
# run: |
# ./autogen.sh
# ./configure $QTHREADS_ENABLE_ASSERTS --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
# make -j3
# - name: make check
# run: gtimeout -k 10s --foreground 8m make check
# timeout-minutes: 9
#
# sanitizers:
# runs-on: ubuntu-22.04
# continue-on-error: true
# strategy:
# matrix:
# sanitizer: [address, memory, thread, undefined]
# scheduler: [nemesis, sherwood, distrib]
# topology: [hwloc, binders, no]
# use_libcxx: [false] # disable testing on libcxx since its effect seems very limited for now.
# env:
# CC: clang-17
# CXX: clang++-17
# CFLAGS: "-fsanitize=${{ matrix.sanitizer }}"
# CXXFLAGS: ${{ matrix.use_libcxx && format('-stdlib=libc++ -fsanitize={0}', matrix.sanitizer) || format('-fsanitize={0}', matrix.sanitizer) }}
# LDFLAGS: "-fsanitize=${{ matrix.sanitizer }}"
# steps:
# - uses: actions/checkout@v3
# - if: ${{ ! matrix.use_libcxx }}
# run: |
# sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test' && break || sleep 1
# sudo apt-get install gcc-13 g++-13
# - name: install compiler
# run: |
# wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
# sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' && break || sleep 1
# sudo apt-get install clang-17
# - if: ${{ matrix.use_libcxx }}
# run: sudo apt-get install libc++-17-dev libc++abi-17-dev
# - if: ${{ matrix.topology != 'no' }}
# run: |
# sudo apt-get install hwloc libhwloc-dev
# hwloc-ls --version
# - name: build qthreads
# run: |
# ./autogen.sh
# ./configure --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
# make -j2
# - name: make check
# run: timeout -k 10s --foreground 8m make check
# timeout-minutes: 9
#
# linux-thorough:
# runs-on: ubuntu-22.04
# continue-on-error: true
# strategy:
# matrix:
# compiler: [gcc, clang]
# scheduler: [nemesis, sherwood, distrib]
# topology: [hwloc, binders, no]
# use_libcxx: [false] # disable testing on libcxx since its effect seems very limited for now.
# use_asserts: [true, false]
# exclude:
# - compiler: gcc
# use_libcxx: true
# env:
# CC: ${{ matrix.compiler == 'gcc' && 'gcc-13' || 'clang-17' }}
# CXX: ${{ matrix.compiler == 'gcc' && 'g++-13' || 'clang++-17' }}
# CXXFLAGS: ${{ matrix.use_libcxx && '-stdlib=libc++' || '' }}
# QTHREADS_ENABLE_ASSERTS: ${{ matrix.use_asserts && '--enable-asserts' || '' }}
# steps:
# - uses: actions/checkout@v3
# - run: |
# sudo apt-add-repository 'ppa:ubuntu-toolchain-r/test' && break || sleep 1
# sudo apt-get install gcc-13 g++-13
# - if: ${{ matrix.compiler == 'clang' }}
# run: |
# wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - && break || sleep 1
# sudo apt-add-repository 'deb https://apt.llvm.org/jammy/ llvm-toolchain-jammy-17 main' && break || sleep 1
# sudo apt-get install clang-17
# - if: ${{ matrix.use_libcxx }}
# run: sudo apt-get install libc++-17-dev libc++abi-17-dev
# - if: ${{ matrix.topology != 'no' }}
# run: |
# sudo apt-get install hwloc libhwloc-dev
# hwloc-ls --version
# - name: build qthreads
# run: |
# ./autogen.sh
# ./configure $QTHREADS_ENABLE_ASSERTS --enable-picky --with-scheduler=${{ matrix.scheduler }} --with-topology=${{ matrix.topology }}
# make -j2
# - name: make check
# run: timeout -k 10s --foreground 6m make check
# timeout-minutes: 7