Provide functions to terminate the TBB thread pool in library interfaces #141
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |