diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 18c914718..999d8db22 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -116,7 +116,7 @@ the community. This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. +. Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity). @@ -124,5 +124,5 @@ enforcement ladder](https://github.com/mozilla/diversity). [homepage]: https://www.contributor-covenant.org For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. +. Translations are available at +. diff --git a/.github/PULL_REQUEST_TEMPLATE/task_submission_en.md b/.github/PULL_REQUEST_TEMPLATE/task_submission_en.md index 59ecfe046..1db6cdad7 100644 --- a/.github/PULL_REQUEST_TEMPLATE/task_submission_en.md +++ b/.github/PULL_REQUEST_TEMPLATE/task_submission_en.md @@ -31,8 +31,10 @@ Please ensure the following items are completed **before** submitting your pull - [ ] **clang-tidy**: My changes pass `clang-tidy` locally in my fork (no warnings/errors) - [ ] **Functional Tests**: All functional tests are passing locally on my machine - [ ] **Performance Tests**: All performance tests are passing locally on my machine -- [ ] **Branch**: I am working on a branch named exactly as my task directory (e.g., `nesterov_a_vector_sum`), not on `master`. -- [ ] **Truthful Content**: I confirm that every detail provided in this pull request is accurate and truthful to the best of my knowledge. +- [ ] **Branch**: I am working on a branch named exactly as my task directory (e.g., `nesterov_a_vector_sum`), + not on `master`. +- [ ] **Truthful Content**: I confirm that every detail provided in this pull request is accurate and truthful to the + best of my knowledge. diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml new file mode 100644 index 000000000..4cb540b5e --- /dev/null +++ b/.markdownlint-cli2.yaml @@ -0,0 +1,7 @@ +config: + MD013: + line_length: 120 + code_blocks: false + tables: false + MD041: false + MD029: false diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 0d5f14bfb..55044d401 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -74,6 +74,13 @@ repos: files: (^|/)(Dockerfile|.*\.Dockerfile)$ args: [--config, .hadolint.yaml] + - repo: https://github.com/DavidAnson/markdownlint-cli2 + rev: v0.20.0 + hooks: + - id: markdownlint-cli2 + exclude: ^(3rdparty/|build.*/|install/) + args: ["--fix"] + # Configuration default_stages: [pre-commit] fail_fast: false diff --git a/README.md b/README.md index eb7abc9a6..e1a88d931 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,34 @@ +# Parallel Programming Course + [![Build application](https://github.com/learning-process/parallel_programming_course/actions/workflows/main.yml/badge.svg?branch=master)](https://github.com/learning-process/parallel_programming_course/actions/workflows/main.yml) [![Pages](https://github.com/learning-process/parallel_programming_course/actions/workflows/pages.yml/badge.svg?branch=master)](https://github.com/learning-process/parallel_programming_course/actions/workflows/pages.yml) [![CodeQL](https://github.com/learning-process/parallel_programming_course/actions/workflows/codeql.yml/badge.svg?branch=master)](https://github.com/learning-process/parallel_programming_course/actions/workflows/codeql.yml) [![codecov](https://codecov.io/gh/learning-process/parallel_programming_course/graph/badge.svg?token=qCOtqeFyIz)](https://codecov.io/gh/learning-process/parallel_programming_course) [![OpenSSF Scorecard](https://api.scorecard.dev/projects/github.com/learning-process/parallel_programming_course/badge)](https://scorecard.dev/viewer/?uri=github.com/learning-process/parallel_programming_course) -# Parallel Programming Course - Welcome to the Parallel Programming Course! Resources: -- Documentation (full instructions and quick start): [English](https://learning-process.github.io/parallel_programming_course/en/), [Russian](https://learning-process.github.io/parallel_programming_course/ru/) + +- Documentation (full instructions and quick start): + [English](https://learning-process.github.io/parallel_programming_course/en/), + [Russian](https://learning-process.github.io/parallel_programming_course/ru/) - [Parallel Programming Course Slides](https://learning-process.github.io/parallel_programming_slides/) - [Course Scoreboard](https://learning-process.github.io/parallel_programming_course/scoreboard/) - [Code Coverage Report](https://learning-process.github.io/parallel_programming_course/coverage/) -### Parallel programming technologies: - The following parallel programming technologies are considered in practice: - * [Message Passing Interface (MPI)](https://www.mpi-forum.org/) - * [OpenMP (Open Multi-Processing)](https://www.openmp.org/) - * [oneAPI Threading Building Blocks (oneTBB)](https://github.com/oneapi-src/oneTBB) - * [Multithreading in C++ (`std::thread`)](https://en.cppreference.com/w/cpp/thread/thread) +## Parallel programming technologies + +The following parallel programming technologies are considered in practice: + +- [Message Passing Interface (MPI)](https://www.mpi-forum.org/) +- [OpenMP (Open Multi-Processing)](https://www.openmp.org/) +- [oneAPI Threading Building Blocks (oneTBB)](https://github.com/oneapi-src/oneTBB) +- [Multithreading in C++ (`std::thread`)](https://en.cppreference.com/w/cpp/thread/thread) + +## Rules for submissions -### 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 +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. diff --git a/docker/CHANGELOG.md b/docker/CHANGELOG.md index 1dfb1b310..bc22b8bd4 100644 --- a/docker/CHANGELOG.md +++ b/docker/CHANGELOG.md @@ -1,10 +1,11 @@ -Changelog -========= +# Changelog ## ppc-ubuntu ### [1.1] - 2025-08-30 + - Update LLVM version to 21 ### [1.0] - 2025-07-28 + - Initial Ubuntu-based image diff --git a/docs/README.md b/docs/README.md index 763790e28..899a953c0 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,39 +1,46 @@ # Parallel Programming Course Documentation -### How to make and test your changes +## How to make and test your changes 1. Navigate to the project root directory: + ```bash cd parallel_programming_course ``` 2. (Optional) Create a virtual environment: + ```bash python3 -m venv venv ``` 3. Install the required dependencies (for the projects and the docs): + ```bash pip install -r requirements.txt pip install -r docs/requirements.txt ``` 4. Configure the documentation build: + ```bash cmake -S . -B build -DUSE_DOCS=ON ``` 5. Generate API documentation with Doxygen: + ```bash doxygen Doxyfile ``` 6. Build the documentation: + ```bash cmake --build build -t docs_html ``` 7. Update the documentation: + ```bash cmake --build build -t docs_gettext # update documentation @@ -41,17 +48,21 @@ cmake --build build -t docs_update ``` 8. Re-build the documentation: + ```bash cmake --build build -t docs_html ``` 9. Make local deployment of the changes: + ```bash cd docs/_build/html python3 -m http.server 8080 ``` -10. Open the documentation in your browser. Depending on your platform use `open` (macOS), `xdg-open` (Linux), or `start` (Windows): +10. Open the documentation in your browser. + Depending on your platform use `open` (macOS), `xdg-open` (Linux), or `start` (Windows): + ```bash open http://localhost:8080/en # macOS xdg-open http://localhost:8080/en # Linux diff --git a/scoreboard/README.md b/scoreboard/README.md index b43c87571..9b4df5571 100644 --- a/scoreboard/README.md +++ b/scoreboard/README.md @@ -41,7 +41,7 @@ HTML table with columns: S (solution), A (acceleration), E (efficiency), D (dead - Due time is 23:59 MSK on the shown date. - File `data/deadlines.yml` can shift dates per item by integer day offsets (default 0). Example: -``` +```yaml threads: seq: 0 # no shift omp: -2 # 2 days earlier