Skip to content

Revert "Шульпин Илья. Задача 2. Вариант 18. Умножение матриц, ленточная горизонтальная схема А, вертикальное В" #5217

Revert "Шульпин Илья. Задача 2. Вариант 18. Умножение матриц, ленточная горизонтальная схема А, вертикальное В"

Revert "Шульпин Илья. Задача 2. Вариант 18. Умножение матриц, ленточная горизонтальная схема А, вертикальное В" #5217

Workflow file for this run

name: Build application
on:
push:
pull_request:
schedule:
- cron: '0 */4 * * *'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true
jobs:
ubuntu-gcc-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-13 g++-13
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install valgrind
python3 -m pip install xlsxwriter
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
env:
CC: gcc-13
CXX: g++-13
- name: Ninja build
run: |
cmake --build build
env:
CC: gcc-13
CXX: g++-13
- name: Run func tests (num_proc=2)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
- name: Run func tests (num_proc=3)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=3
source scripts/run.sh
- name: Run func tests (num_proc=4)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
ubuntu-clang-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install python3-pip
sudo apt-get install valgrind
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18 all
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-G Ninja -D USE_CPPCHECK=ON -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
env:
CC: clang-18
CXX: clang++-18
- name: Ninja build
run: |
cmake --build build
env:
CC: clang-18
CXX: clang++-18
- name: Run func tests (num_proc=2)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
- name: Run func tests (num_proc=3)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=3
source scripts/run.sh
- name: Run func tests (num_proc=4)
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
ubuntu-clang-sanitizer-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install python3-pip
wget https://apt.llvm.org/llvm.sh
chmod u+x llvm.sh
sudo ./llvm.sh 18 all
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE -D ENABLE_ADDRESS_SANITIZER=ON -D ENABLE_UB_SANITIZER=ON
env:
CC: clang-18
CXX: clang++-18
- name: Ninja build
run: |
cmake --build build
env:
CC: clang-18
CXX: clang++-18
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export ASAN_RUN=1
export PROC_COUNT=4
source scripts/run.sh
macos-clang-build:
runs-on: macOS-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
brew update-reset
brew install cppcheck ninja mpich llvm
brew install libomp
brew link libomp --overwrite --force
brew install openssl
brew link openssl --overwrite --force
- name: ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
create-symlink: true
- name: CMake configure
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-G Ninja -D USE_CPPCHECK=ON -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-DCMAKE_C_FLAGS="-I$(brew --prefix)/opt/libomp/include" -DCMAKE_CXX_FLAGS="-I$(brew --prefix)/opt/libomp/include"
-D CMAKE_BUILD_TYPE=RELEASE -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
- name: Ninja build
run: |
cmake --build build
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=2
source scripts/run.sh
windows-msvc-build:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: Setup MPI
uses: mpi4py/setup-mpi@v1
with:
mpi: msmpi
- name: Download dependencies
run: |
choco install openssl --execution-timeout 6000
- name: Setup ccache
uses: Chocobo1/setup-ccache-action@v1
with:
windows_compile_environment: msvc
- name: CMake configure
shell: bash
run: >
cmake -S . -B build
-D CMAKE_C_COMPILER_LAUNCHER=ccache -D CMAKE_CXX_COMPILER_LAUNCHER=ccache
-D USE_CPPCHECK=ON -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
- name: MSBuild
shell: bash
run: |
cmake --build build --config Release --parallel
- name: Run tests
run: |
scripts/run.bat
env:
OMP_NUM_THREADS: 4
windows-clang-build:
runs-on: windows-latest
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: CMake configure
run: >
cmake -S . -B build -A x64 -T ClangCL
-D USE_SEQ=ON -D USE_MPI=OFF -D USE_OMP=OFF -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
env:
CC: clang-cl
CXX: clang-cl
- name: Ninja build
run: |
cmake --build build --config Release --parallel -v
env:
CC: clang-cl
CXX: clang-cl
- name: Run tests
run: |
scripts/run.bat
env:
CLANG_BUILD: 1
OMP_NUM_THREADS: 4
ubuntu-gcc-build-codecov:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup environment
run: |
sudo apt-get update
sudo apt-get install gcc g++
sudo apt-get install cppcheck ninja-build
sudo apt-get install mpich libmpich* mpi* openmpi-bin
sudo apt-get install libomp-dev
sudo apt-get install valgrind
sudo apt-get install gcovr lcov
- name: CMake configure
run: >
cmake -S . -B build
-G Ninja -D USE_SEQ=ON -D USE_MPI=ON -D USE_OMP=ON -D USE_TBB=ON -D USE_STL=ON
-D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON
-D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_VERBOSE_MAKEFILE=ON
-D USE_COVERAGE=ON
- name: Ninja build
run: |
cmake --build build --parallel
- name: Run tests
run: |
export OMP_NUM_THREADS=4
export PROC_COUNT=4
source scripts/run.sh
- name: Generate gcovr Coverage Data
run: |
cd build
gcovr -r ../ --xml --output ../coverage.xml
- name: Upload coverage reports to Codecov
uses: codecov/[email protected]
with:
token: 01474879-5a86-4c59-bd1d-6e29d3ed9550
files: coverage.xml
- name: Generate lcov Coverage Data
run: |
cd build
lcov --capture --directory . --output-file ../coverage.info
lcov --remove ../coverage.info '*/3rdparty/*' '/usr/*' '*/perf_tests/*' '*/func_tests/*' --output-file ../coverage.info
cd ..
genhtml coverage.info --output-directory cov-report
- name: Upload coverage report artifact
uses: actions/upload-artifact@v4
with:
name: cov-report
path: 'cov-report'