Skip to content

Latest commit

 

History

History
67 lines (50 loc) · 2.99 KB

File metadata and controls

67 lines (50 loc) · 2.99 KB

Build application Pages CodeQL codecov OpenSSF Scorecard

Parallel Programming Course

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.

Parallel programming technologies:

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)

Quickstart

Build

  • Configure: cmake -S . -B build [-DENABLE_ADDRESS_SANITIZER=ON]
  • Build: cmake --build build -j
  • Optional install: cmake --install build --prefix install

Run tests locally (preferred)

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

Scoreboard generation

  • pip install -r scoreboard/requirements.txt
  • python3 scoreboard/main.py -o scoreboard/out

Docs

  • cmake -S . -B build -DUSE_DOCS=ON
  • cmake --build build -t docs_html

Pre-commit

  • pre-commit install && pre-commit run -a

Rules for submissions:

  1. 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
  2. Carefully check if the program can hang.