Skip to content

Provide functions to terminate the TBB thread pool in library interfaces #141

Provide functions to terminate the TBB thread pool in library interfaces

Provide functions to terminate the TBB thread pool in library interfaces #141

Workflow file for this run

name: Mt-KaHyPar Master CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
mt_kahypar_compiler_version_test:
name: Ubuntu Build
strategy:
matrix:
compiler: [ { os: ubuntu-20.04, cpp: g++-9, cc: gcc-9, install_cmd: g++-9 gcc-9 },
{ os: ubuntu-20.04, cpp: g++-10, cc: gcc-10, install_cmd: g++-10 gcc-10 },
{ os: ubuntu-22.04, cpp: g++-11, cc: gcc-11, install_cmd: g++-11 gcc-11 },
{ os: ubuntu-22.04, cpp: g++-12, cc: gcc-12, install_cmd: g++-12 gcc-12 },
{ os: ubuntu-22.04, cpp: clang++, cc: clang, install_cmd: clang } ]
runs-on: ${{ matrix.compiler.os }}
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libboost-program-options-dev libhwloc-dev lcov gcovr ${{ matrix.compiler.install_cmd }}
- name: Install Mt-KaHyPar Test Suite
env:
CC: ${{ matrix.compiler.cc }}
CXX: ${{ matrix.compiler.cpp }}
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make -j2 MtKaHyPar
mt_kahypar_test_suite:
name: Test Suite
runs-on: ubuntu-20.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr
- name: Install Mt-KaHyPar Test Suite
run: |
git submodule update --init --recursive
rm -rf debug
mkdir debug
cd debug
cmake .. -DCMAKE_BUILD_TYPE=DEBUG -DKAHYPAR_USE_GCOV=ON -DKAHYPAR_CI_BUILD=ON
make -j2 mt_kahypar_tests;
- name: Run Mt-KaHyPar Tests
run: |
cd debug
./tests/mt_kahypar_tests;
- name: Report Code Coverage
run: |
cd debug
lcov --directory . --capture --output-file coverage.info;
lcov --remove coverage.info '/usr/*' --output-file coverage.info;
lcov --list coverage.info;
gcovr -r ../ -x > report.xml;
cd ..
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
mt_kahypar_integration_tests:
name: Integration Tests
runs-on: ubuntu-20.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr
- name: Install Mt-KaHyPar Integration Tests
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make -j2 MtKaHyPar
make -j2 VerifyPartition
make -j2 GridGraphGenerator
make -j2 FixedVertexFileGenerator
- name: Run Mt-KaHyPar Integration Tests
run: |
./tests/end_to_end/integration_tests.py
mt_kahypar_c_interface_tests:
name: C Interface Tests
runs-on: ubuntu-20.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr
- name: Run Mt-KaHyPar C Library Interface Tests
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make -j2 interface_test
mt_kahypar_python_interface_tests:
name: Python Interface Tests
runs-on: ubuntu-20.04
env:
BOOST_ROOT : "/usr/local/share/boost/1.72.0"
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
sudo apt-get install libtbb-dev libhwloc-dev libboost-program-options-dev lcov gcovr
- name: Build Mt-KaHyPar Python Interface
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make mtkahypar_python -j2
- name: Run Mt-KaHyPar Python Interface Tests
run: |
cd python/tests
cp ../../build/python/mtkahypar*.so mtkahypar.so
python3 test_mtkahypar.py -v
mt_kahypar_windows_build:
name: Windows Build
runs-on: windows-latest
env:
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
install: git make
- name: Install Boost and TBB
shell: msys2 {0}
run: |
pacman --noconfirm -S mingw-w64-x86_64-boost mingw-w64-x86_64-tbb mingw-w64-x86_64-cmake mingw-w64-x86_64-gcc
- name: Put MSYS2_MinGW64 on Path
run: |
echo "${{ runner.temp }}/msys64/mingw64" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Rename TBB library file
run: |
Ren ${{ runner.temp }}/msys64/mingw64/lib/libtbb12.dll.a ${{ runner.temp }}/msys64/mingw64/lib/libtbb.dll.a
- name: Install Mt-KaHyPar Multilevel Tests
shell: msys2 {0}
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
export CMAKE_GENERATOR="MSYS Makefiles"
/mingw64/bin/cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON -DKAHYPAR_ENABLE_HIGHEST_QUALITY_FEATURES=OFF -DKAHYPAR_ENABLE_LARGE_K_PARTITIONING_FEATURES=OFF
make -j2 mt_kahypar_tests
- name: Run Mt-KaHyPar Tests
shell: msys2 {0}
run: |
cd build
./tests/mt_kahypar_tests
mt_kahypar_macos_build:
name: MacOS Build
runs-on: macos-latest
env:
CI_ACTIVE : 1
steps:
- name: Checkout HEAD
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Install Dependencies
run: |
brew install tbb boost hwloc lcov gcovr
- name: Install Mt-KaHyPar Multilevel Tests
run: |
git submodule update --init --recursive
rm -rf build
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RELEASE -DKAHYPAR_CI_BUILD=ON
make -j2 mt_kahypar_tests
- name: Run Mt-KaHyPar Tests
run: |
cd build
./tests/mt_kahypar_tests