All tasks I worked on are located in the branch baranov_a_branch
- Number of Orderly Violations
- Ring Topology
- Odd-Even Merge Sort
git submodule update --init --recursive --depth=1
- Windows (MSVC):
Unsupported operating system!
- Ubuntu / Debian (
gcc
andclang
):
sudo apt install -y cppcheck
- NixOS / Nix (with flakes enabled):
nix develop .
- MacOS (apple clang):
brew install cppcheck
Please, follow Google C++ Style Guide.
Code style is checked using clang-format tool.
- Windows (MSVC):
Installers link. You have to install msmpisdk.msi
and msmpisetup.exe
.
- Ubuntu / Debian (
gcc
andclang
):
sudo apt install -y mpich openmpi-bin libopenmpi-dev
- NixOS / Nix (with flakes enabled):
nix develop .
- MacOS (apple clang):
brew install open-mpi
OpenMP
is included into gcc
and msvc
, but some components should be installed additionally:
- Ubuntu / Debian (
gcc
andclang
):
sudo apt install -y libomp-dev
- NixOS / Nix (with flakes enabled):
nix develop .
- MacOS (
llvm
):
brew install llvm
brew install libomp
- Windows (
MSVC
), Linux (gcc
andclang
), MacOS (apple clang):- Build as 3rdparty in the current project
std::thread
is included into STL libraries.
Navigate to a source code folder.
- Configure the build:
Makefile
,.sln
, etc.
mkdir build && cd build
cmake -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 ..
Help on CMake keys:
-D USE_SEQ=ON
enableSequential
labs (based on OpenMP's CMakeLists.txt).-D USE_MPI=ON
enableMPI
labs.-D USE_OMP=ON
enableOpenMP
labs.-D USE_TBB=ON
enableTBB
labs.-D USE_STL=ON
enablestd::thread
labs.-D USE_FUNC_TESTS=ON
enable functional tests.-D USE_PERF_TESTS=ON
enable performance tests.-D USE_CPPCHECK=ON
enable cppcheck.-D CMAKE_BUILD_TYPE=Release
required parameter for stable work of repo.
A corresponding flag can be omitted if it's not needed.
- Build the project:
cmake --build . --config RELEASE
- Check the task
- Run
<project's folder>/build/bin