Welcome to the Parallel Programming Course!
For more detailed documentation and resources, please visit documentation pages: en, ru.
Course scoreboard is available here.
Coverage report is available here.
The following parallel programming technologies are considered in practice:
Message Passing Interface (MPI)OpenMP (Open Multi-Processing)oneAPI Threading Building Blocks (oneTBB)Multithreading in C++ (std::thread)
- Configure:
cmake -S . -B build [-DENABLE_ADDRESS_SANITIZER=ON] - Build:
cmake --build build -j - Optional install:
cmake --install build --prefix install
Set environment and use the helper runner:
export PPC_NUM_THREADS=4
export PPC_NUM_PROC=2
# Shared-memory tests
python3 scripts/run_tests.py --running-type threads --counts 1 2 4
# MPI tests
python3 scripts/run_tests.py --running-type processes --counts 2 4
# Performance
python3 scripts/run_tests.py --running-type performance
pip install -r scoreboard/requirements.txtpython3 scoreboard/main.py -o scoreboard/out
cmake -S . -B build -DUSE_DOCS=ONcmake --build build -t docs_html
pre-commit install && pre-commit run -a
- You are not supposed to trigger CI jobs by frequent updates of your pull request. First you should test you work locally with all the scripts (code style).
- Respect others time and don't slow down the job queue
- Carefully check if the program can hang.