Настройка окружения

Ручная настройка

Если вы предпочитаете ручную настройку или не можете использовать контейнеры, следуйте инструкциям ниже.

Требования к сборке

  • Windows: Загрузите и установите CMake с https://cmake.org/download (выберите установщик для Windows) или установите с помощью Chocolatey:

    choco install cmake
    
  • Linux (Ubuntu/Debian): Установите с помощью менеджера пакетов:

    sudo apt update
    sudo apt install -y cmake
    
  • macOS: Установите с помощью Homebrew:

    brew update
    brew install cmake
    

Анализ стиля кодирования

Пожалуйста пройдите по ссылке для изучения стиля кодирования - Google C++ Style Guide.

Проверка стиля кода выполняется с помощью инструмента clang-format.

Дополнительные инструменты (clang-tidy, gcovr)

Установите их, чтобы соответствовать инструментам CI для статического анализа и отчётов по покрытию.

  • Linux (Ubuntu/Debian):

    # clang-tidy 21 (recommended)
    sudo apt update && sudo apt install -y clang-tidy-21
    # gcovr via pip (or use your distro package)
    python3 -m pip install gcovr
    # GCC 14 coverage helper (used in CI)
    which gcov-14 || echo "Install GCC 14 to use gcov-14"
    
  • macOS (Homebrew):

    brew install llvm gcovr
    # clang-tidy path (if not on PATH):
    echo "$(brew --prefix)/opt/llvm/bin/clang-tidy"
    
  • Windows:

    choco install llvm
    py -m pip install gcovr
    # Ensure clang-tidy.exe is available in PATH
    

Технологии параллельного программирования

MPI

  • Windows (MSVC):

    Ссылка на установку. Вы должны установить 2 файла - msmpisdk.msi и msmpisetup.exe.

  • Linux (gcc and clang):

    sudo apt install -y mpich openmpi-bin libopenmpi-dev
    
  • MacOS (apple clang):

    brew install open-mpi
    

OpenMP

OpenMP в большинстве случаев включен в компиляторы gcc и msvc, но ряд компонент все равно должны быть установлены дополнительно:

  • Linux (gcc and clang):

    sudo apt install -y libomp-dev
    
  • MacOS (llvm):

    brew install llvm
    brew install libomp
    

TBB

  • Windows (MSVC), Linux (gcc and clang), MacOS (apple clang): Данная библиотека строится как внешняя в составе текущего проекта и не требует дополнительных операций.

std::thread

std::thread включена в состав STL библиотек.