Set Up Your Environment
Development Container (Recommended)
The easiest way to set up your development environment is using the provided .devcontainer configuration with VS Code and Docker.
Prerequisites:
Setup:
Clone the repository and open it in VS Code
When prompted, click “Reopen in Container” or use Command Palette:
Dev Containers: Reopen in ContainerVS Code will automatically build the container with all dependencies pre-installed
The container includes:
Ubuntu environment with gcc-14, CMake, MPI, OpenMP
Pre-configured C++ and Python development tools
All project dependencies ready to use
This provides a consistent development environment across all platforms without manual dependency installation.
Manual Setup
If you prefer manual setup or cannot use containers, follow the instructions below.
Build prerequisites
Windows: Download and install CMake from https://cmake.org/download (select the Windows installer) or install using Chocolatey:
choco install cmake
Linux (Ubuntu/Debian): Install using package manager:
sudo apt update sudo apt install -y cmake
macOS: Install using Homebrew:
brew update brew install cmake
Code Style Analysis
Please follow the Google C++ Style Guide.
Code style is checked using the clang-format tool.
Optional tools (clang-tidy, gcovr)
Install these to match the CI toolchain for static analysis and coverage reports.
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
Parallel Programming Technologies
MPI
Windows (MSVC):
Installers link. You have to install
msmpisdk.msiandmsmpisetup.exe.Linux (gcc and clang):
sudo apt install -y mpich openmpi-bin libopenmpi-dev
MacOS (apple clang):
brew install open-mpi
OpenMP
OpenMP is included in gcc and msvc, but some components should be installed additionally:
Linux (gcc and clang):
sudo apt install -y libomp-dev
MacOS (llvm):
brew install llvm brew install libomp brew link libomp --overwrite --force
TBB
Windows (MSVC), Linux (gcc and clang), MacOS (apple clang): Build as 3rdparty in the current project.
std::thread
std::thread is included in STL libraries.