diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index db3ca9876..68da0e757 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -37,18 +37,22 @@ jobs: uses: actions/setup-python@v6 with: python-version: '3.13' - - name: Install Doxygen + - name: Install Doxygen and Graphviz run: | sudo apt-get update - sudo apt-get install --no-install-recommends -y doxygen + sudo apt-get install --no-install-recommends -y doxygen graphviz - name: Install dependencies run: | python3 -m pip install -r docs/requirements.txt + python3 -m pip install graphviz pyyaml - name: Download artifact uses: actions/download-artifact@v6 with: name: doxygen-documentation-xml path: xml + - name: Generate CI jobs graph + run: | + python3 scripts/jobs_graph.py --out docs/_static/ci_graph --format svg - name: Configure project run: > cmake -S . -B build -D USE_DOCS=ON diff --git a/README.md b/README.md index 41e8b7497..ba99f4608 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,10 @@ Coverage report is available [here](https://learning-process.github.io/parallel_ * `oneAPI Threading Building Blocks (oneTBB)` * `Multithreading in C++ (std::thread)` +## Quickstart + +See the full user guide for build, tests, docs, and tooling instructions: [documentation en](https://learning-process.github.io/parallel_programming_course/en/), [documentation ru](https://learning-process.github.io/parallel_programming_course/ru/). + ### 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 diff --git a/docs/_static/ci_graph.svg b/docs/_static/ci_graph.svg index ed812dddf..fa7f28903 100644 --- a/docs/_static/ci_graph.svg +++ b/docs/_static/ci_graph.svg @@ -1,114 +1,93 @@ - - - - - - + + + +CI_Overview + + -cpp-lint - -cpp-lint +pre_commit + +pre-commit - + ubuntu - -ubuntu + +ubuntu - + -cpp-lint->ubuntu - - +pre_commit->ubuntu + + - + mac - -mac + +mac - - -cpp-lint->mac - - + + +pre_commit->mac + + - + windows - -windows - - - -cpp-lint->windows - - - - - -shell-lint - -shell-lint - - - -shell-lint->ubuntu - - - - - -shell-lint->mac - - + +windows - - -shell-lint->windows - - + + +pre_commit->windows + + + - + perf - -perf + +perf - + ubuntu->perf - - + + + - + mac->perf - - + + - + windows->perf - - + + - + pages - -pages + +pages - + perf->pages - - + + diff --git a/docs/common_information/introduction.rst b/docs/common_information/introduction.rst index 23e4d4a79..c47e4b086 100644 --- a/docs/common_information/introduction.rst +++ b/docs/common_information/introduction.rst @@ -12,31 +12,25 @@ Practice - Test verification - Task distribution is random for each student. -- An example for each technology can be found in the corresponding directory: ``tasks//example``. -- In each repository, the README.md contains a link to the course documentation (**read it fully!!!**). -- Additionally, each repository includes an example of a properly formatted PULL REQUEST. +- Full automation of quality and performance checks; plagiarism checks are applied. +- Deadlines are set per task. See the penalties and grading rules in ``Points``. +- Examples are provided in ``tasks/example_threads`` and ``tasks/example_processes`` (and extended variations ``tasks/example_processes_2`` / ``tasks/example_processes_3``). +- In each repository, the README.md contains a link to the course documentation. +- Each repository includes an example of a properly formatted PULL REQUEST. - Submission of all tasks is mandatory to pass the course. - A task that has been merged into the master branch continues to be monitored. If a task fails in the master, it is disabled, and a record of this is added to the score table. All disabled tasks will result in a zero points result for those tasks at the end of the semester. It can be seen that your task is disabled due to the following reason: the directory of your task has been renamed from ``seq/nesterov_a_vector_sum`` to ``seq/nesterov_a_vector_sum_disabled`` -- All resources for using the repository will be provided here: - - `Git for half an hour: A Beginner’s Guide `__ - - `Getting Started with Git and GitHub: A Beginner’s Guide `__ - - `Git: A Quick Start Guide to Using Core Operations with Explanations `__ - - `Conflicts resolving in Git `__ - - `Google testing framework (gtest) `__ - - `GoogleTest Primer `__ - - `GitHub Actions documentation `__ - - `Parallel Programming Technologies. Message Passing Interface (MPI) `__ - - `Typing and Layout in the System LaTeX `__ - - `LaTeX for the beginners `__ - - `What is OpenMP? `__ - - `TBB-1 `__ - - `Writing Multithreaded Applications in C++ `__ - - `Multithreading: New Features of the C++11 Standard `__ - - `Introduction to Parallel Computing `__ +Communication +~~~~~~~~~~~~~ -\* *All instructions, repositories, and tables may be updated during the learning process for better usability. Be prepared for changes, check and update them periodically!!!* +- Telegram channel — announcements and quick updates +- GitHub Issues — repository problems and bug reports +- Lessons — Q&A +- Feedback form — critical issues +- Email — non‑urgent matters + +\* *All instructions, repositories, and tables may be updated during the learning process for better usability. Be prepared for changes and check updates periodically.* diff --git a/docs/common_information/points.rst b/docs/common_information/points.rst index c9ca9602f..3c208a283 100644 --- a/docs/common_information/points.rst +++ b/docs/common_information/points.rst @@ -1,153 +1,123 @@ Points ====== -- For “process parallelism” semester - - - 1st MPI task - - +----------+ - | Solution | - +==========+ - | 10 | - +----------+ - - - 2nd MPI task - - ======== =========== - Solution Performance - ======== =========== - 15 5 - ======== =========== - - - 3rd MPI task - - ======== =========== - Solution Performance - ======== =========== - 20 10 - ======== =========== - - - **Total : 60 points** - -- For “thread parallelism” semester - - - Sequential version - - +----------+ - | Solution | - +==========+ - | 4 | - +----------+ - - - OpenMP version - - ======== =========== - Solution Performance - ======== =========== - 6 3 - ======== =========== - - - TBB version - - ======== =========== - Solution Performance - ======== =========== - 6 3 - ======== =========== - - - std::thread version - - ======== =========== - Solution Performance - ======== =========== - 8 6 - ======== =========== - - - “MPI + threads” version (The threading technology is chosen - randomly) - - ======== =========== - Solution Performance - ======== =========== - 10 8 - ======== =========== - - - **Total : 54 points** - -- The rule for earning performance points. - - The ratio of efficiency percentage to points percentage, where the maximum points is 100% and the minimum points is 0%. - - If the score is not an integer, it is rounded up. - - +----------------+-------------------+ - | Efficiency (%) | Points percentage | - +================+===================+ - | >= 50% | 100% | - +----------------+-------------------+ - | [45, 50) | 90% | - +----------------+-------------------+ - | [42, 45) | 80% | - +----------------+-------------------+ - | [40, 42) | 70% | - +----------------+-------------------+ - | [37, 40) | 60% | - +----------------+-------------------+ - | [35, 37) | 50% | - +----------------+-------------------+ - | [32, 35) | 40% | - +----------------+-------------------+ - | [30, 32) | 30% | - +----------------+-------------------+ - | [27, 30) | 20% | - +----------------+-------------------+ - | [25, 27) | 10% | - +----------------+-------------------+ - | < 25% | 0% | - +----------------+-------------------+ - -- Report - - +--------------+--------------+--------------------+-------+ - | Completeness | Text Quality | Formatting Quality | Total | - +==============+==============+====================+=======+ - | 5 | 2.5 | 2.5 | 10 | - +--------------+--------------+--------------------+-------+ - -- Conversion of points into exam assessment or pass/fail - - - For 5-point grading system - - ============ =============== ============ - Points range Exam Assessment Student Pass - ============ =============== ============ - [87, 100] 5 Passed - [70, 87) 4 Passed - [50, 70) 3 Passed - < 50 2 Not Passed - ============ =============== ============ - - - For 7-point grading system **(our current system)** - - ============ =============== ============ - Points range Exam Assessment Student Pass - ============ =============== ============ - [99, 100] 5.5 Passed - [92, 99) 5 Passed - [82, 92) 4.5 Passed - [70, 82) 4 Passed - [50, 70) 3 Passed - < 50 2 Not Passed - ============ =============== ============ - -- Penalties: - - - A deadline will be set for each version. - - 1 point is deducted from the version’s score for each day of delay in submission. - - The task is considered submitted when it is merged into the master/main branch. - - The submission time is defined as the timestamp of the last commit that successfully passes the CI pipeline. - -- Comments: - - - It is forbidden to write the report if all tasks are not completed. - - Please keep in mind that one week before the end of the semester, the repository will be closed for final assessment. +Overview +-------- + +- Total per semester (Practice): 70 points +- Report points are distributed per task and sum to 10 + +Processes semester (MPI) +------------------------ + +- Task 1 — Total: 12 + - Implementation: MPI 8 + Seq 2 + - Performance: 0 + - Report: 2 + +- Task 2 — Total: 23 + - Implementation: MPI 12 + Seq 3 + - Performance: 5 + - Report: 3 + +- Task 3 — Total: 35 + - Implementation: MPI 16 + Seq 4 + - Performance: 10 + - Report: 5 + +- Semester total: 70 + +Threads semester (OpenMP/TBB/std::thread) +----------------------------------------- + +- seq — Total: 5 (S 4, R 1) +- omp — Total: 11 (S 6, A 3, R 2) +- tbb — Total: 11 (S 6, A 3, R 2) +- stl — Total: 16 (S 8, A 6, R 2) +- all — Total: 21 (S 10, A 8, R 3) + +- Semester total: 64 + +Legend: S — Solution (implementation), A — Acceleration (performance), R — Report + +Performance points mapping +-------------------------- + +The ratio of efficiency percentage to points percentage (max 100%, min 0%): + +If the score is not an integer, it is rounded up. + + +----------------+-------------------+ + | Efficiency (%) | Points percentage | + +================+===================+ + | >= 50% | 100% | + +----------------+-------------------+ + | [45, 50) | 90% | + +----------------+-------------------+ + | [42, 45) | 80% | + +----------------+-------------------+ + | [40, 42) | 70% | + +----------------+-------------------+ + | [37, 40) | 60% | + +----------------+-------------------+ + | [35, 37) | 50% | + +----------------+-------------------+ + | [32, 35) | 40% | + +----------------+-------------------+ + | [30, 32) | 30% | + +----------------+-------------------+ + | [27, 30) | 20% | + +----------------+-------------------+ + | [25, 27) | 10% | + +----------------+-------------------+ + | < 25% | 0% | + +----------------+-------------------+ + +Report +------ + ++--------------+--------------+--------------------+-------+ +| Completeness | Text Quality | Formatting Quality | Total | ++==============+==============+====================+=======+ +| 5 | 2.5 | 2.5 | 10 | ++--------------+--------------+--------------------+-------+ + +Conversion to grade +------------------- + +- 5-point scale + + ============ =============== ============ + Points range Exam Assessment Student Pass + ============ =============== ============ + [92, 100] 5 Passed + [70, 92) 4 Passed + [50, 70) 3 Passed + < 50 2 Not Passed + ============ =============== ============ + +- 7-point scale (current) + + ============ =============== ============ + Points range Exam Assessment Student Pass + ============ =============== ============ + [99, 100] 5.5 Passed + [92, 99) 5 Passed + [82, 92) 4.5 Passed + [70, 82) 4 Passed + [50, 70) 3 Passed + < 50 2 Not Passed + ============ =============== ============ + +Penalties +--------- + +- A deadline will be set for each task. +- 1 point is deducted from the version’s score for each day of delay. +- A task is considered accepted when it is merged into the default branch after a successful CI pipeline. +- The submission time is defined as the timestamp of the last meaningful commit (not an empty commit to re-trigger CI jobs). + +Comments +-------- + +- One week before the end of the semester, the repository is closed for final assessment. diff --git a/docs/common_information/report.rst b/docs/common_information/report.rst index dee9afa56..279d59e1f 100644 --- a/docs/common_information/report.rst +++ b/docs/common_information/report.rst @@ -1,7 +1,15 @@ Report ====== -- Report points +Overview and placement +---------------------- +- The report is a Markdown file placed inside your task directory: + ``tasks/__/report.md``. +- Presence of ``report.md`` is required to receive report (R) points for that task (see ``Points``). +- Write the report concisely with enough detail to reproduce the results (environment, commands, data generation). Use English or Russian consistently. + +Report points +------------- +--------------+--------------+--------------------+-------+ | Completeness | Text Quality | Formatting Quality | Total | @@ -9,41 +17,99 @@ Report | 5 | 2.5 | 2.5 | 10 | +--------------+--------------+--------------------+-------+ -- Requirements for Criteria - - - Completeness - - - Introduction (can be a short paragraph) - - Problem Statement (descriptive) - - Algorithm Description - - Description of the Parallel Algorithm Scheme - - Description of the MPI, OpenMP, TBB, std::threads, all versions (depending on the semester) – part of the software implementation description - - Experimental Results (execution time and algorithm quality assessment), description of correctness verification - - Conclusions from the Results - - Conclusion - - References - - Appendix (include code, ensuring readability) +Recommended structure +--------------------- +- Introduction (short context and goal) +- Problem Statement (task definition and constraints) +- Algorithm Description (baseline/sequential) +- Parallelization Scheme (MPI topology/data flow or threads scheduling) +- Experimental Results + - Environment (CPU, OS, compiler, build type; thread/process counts) + - Execution time tables/plots; performance metrics (speedup/efficiency) + - Correctness checks description +- Conclusions (what worked, what didn’t) +- References (articles, docs; provide links) +- Appendix (optional code snippets) - - Text Quality +Evaluation criteria +------------------- +- Completeness + - All items from the recommended structure are present and meaningful + - Results include both correctness and performance evidence +- Text Quality + - Clarity, coherence, correct terminology; acceptable language quality +- Formatting Quality + - Proper Markdown headings, lists, tables, fenced code blocks + - Figures/plots with captions and relative paths; readable formatting - - Meaningfulness - - Coherence - - Clarity - - Quality of language (only the most obvious mistakes are considered) +Notes +----- +- Reports are reviewed online in the Pull Request. The final grade is based on the submitted version that passes the review. +- If the task is disabled by the end of semester (e.g., fails in master; see scoreboard “blue zone”), report points for that task are nullified. +- Plagiarism is prohibited; identical or near‑duplicate reports will be rejected. - - Formatting Quality +Markdown template (report.md) +----------------------------- - - Requirements for Headings - - Requirements for Text Alignment - - Requirements for Paragraph Indentation - - Requirements for the Formatting of Figures, Graphs, and Tables - - The “Teacher” field must include the full name, position, and title of the lecturer +Use the following skeleton as a starting point for your ``report.md``. Keep file paths relative to the task directory (for images/data). -- Comments +.. code-block:: markdown - - Failure to meet the requirements will result in a deduction of points. - - The request will include points and comments regarding any requirement violations (if applicable). - - The report will be checked only once, and the grade will be assigned based on the submitted version according to the requirements. - - The report is reviewed online; the entire review process takes place in the request. - - If a student falls into the **blue zone** for the task, the report points will also be nullified at the end of the semester. - The report will be finally accepted and merged into the master branch only after both the **online** parts of the corresponding lab work are fully completed. + # + + - Student: , group + - Technology: + - Variant: + + ## 1. Introduction + Brief motivation, problem context, expected outcome. + + ## 2. Problem Statement + Formal task definition, input/output format, constraints. + + ## 3. Baseline Algorithm (Sequential) + Describe the base algorithm with enough detail to reproduce. + + ## 4. Parallelization Scheme + - For MPI: data distribution, communication pattern/topology, rank roles. + - For threads: decomposition, scheduling, synchronization. + Diagrams or short pseudocode are welcome. + + ## 5. Implementation Details + - Code structure (files, key classes/functions) + - Important assumptions and corner cases + - Memory usage considerations + + ## 6. Experimental Setup + - Hardware/OS: CPU model, cores/threads, RAM, OS version + - Toolchain: compiler, version, build type (Release/RelWithDebInfo) + - Environment: PPC_NUM_THREADS / PPC_NUM_PROC, other relevant vars + - Data: how test data is generated or sourced (relative paths) + + ## 7. Results and Discussion + + ### 7.1 Correctness + Briefly explain how correctness was verified (reference results, invariants, unit tests). + + ### 7.2 Performance + Present time, speedup and efficiency. Example table: + + | Mode | Count | Time, s | Speedup | Efficiency | + |-------------|-------|---------|---------|------------| + | seq | 1 | 1.234 | 1.00 | N/A | + | omp | 2 | 0.700 | 1.76 | 88.0% | + | omp | 4 | 0.390 | 3.16 | 79.0% | + + Optionally add plots (use relative paths), and discuss bottlenecks and scalability limits. + + ## 8. Conclusions + Summarize findings and limitations. + + ## 9. References + 1.
+ 2. + + ## Appendix (Optional) + ```cpp + // Short, readable code excerpts if needed + ``` diff --git a/docs/conf.py b/docs/conf.py index 88353ff80..e8097f897 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -44,6 +44,7 @@ html_sidebars = { "**": [ "globaltoc.html", + "localtoc.html", "sourcelink.html", "searchbox.html", "language_switcher.html", diff --git a/docs/locale/en/LC_MESSAGES/common_information/points.po b/docs/locale/en/LC_MESSAGES/common_information/points.po index 40fefadaf..e89ceb8ed 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/points.po +++ b/docs/locale/en/LC_MESSAGES/common_information/points.po @@ -38,365 +38,199 @@ msgstr "" #: ../../common_information/points.rst:45 #: ../../common_information/points.rst:53 #: ../../common_information/points.rst:61 -#: ../../common_information/points.rst:70 -msgid "Solution" -msgstr "" - -#: ../../common_information/points.rst:11 -#: ../../common_information/points.rst:27 -#: ../../common_information/points.rst:72 -#: ../../common_information/points.rst:114 -msgid "10" -msgstr "" - -#: ../../common_information/points.rst:14 -msgid "2nd MPI task" +msgid "Report" msgstr "" -#: ../../common_information/points.rst:17 +#: ../../common_information/points.rst:9 ../../common_information/points.rst:17 #: ../../common_information/points.rst:25 -#: ../../common_information/points.rst:45 -#: ../../common_information/points.rst:53 -#: ../../common_information/points.rst:61 -#: ../../common_information/points.rst:70 -msgid "Performance" -msgstr "" - -#: ../../common_information/points.rst:19 -msgid "15" +msgid "2" msgstr "" -#: ../../common_information/points.rst:19 -#: ../../common_information/points.rst:114 -#: ../../common_information/points.rst:124 -#: ../../common_information/points.rst:136 -msgid "5" +#: ../../common_information/points.rst:10 ../../common_information/points.rst:18 +msgid "Performance" msgstr "" -#: ../../common_information/points.rst:22 -msgid "3rd MPI task" +#: ../../common_information/points.rst:10 +msgid "0" msgstr "" +#: ../../common_information/points.rst:11 ../../common_information/points.rst:19 #: ../../common_information/points.rst:27 -msgid "20" -msgstr "" - -#: ../../common_information/points.rst:30 -msgid "**Total : 60 points**" -msgstr "" - -#: ../../common_information/points.rst:32 -msgid "For “thread parallelism” semester" -msgstr "" - -#: ../../common_information/points.rst:34 -msgid "Sequential version" +msgid "MPI" msgstr "" -#: ../../common_information/points.rst:39 -#: ../../common_information/points.rst:125 -#: ../../common_information/points.rst:138 -msgid "4" -msgstr "" - -#: ../../common_information/points.rst:42 -msgid "OpenMP version" -msgstr "" - -#: ../../common_information/points.rst:47 -#: ../../common_information/points.rst:55 -#: ../../common_information/points.rst:63 -msgid "6" -msgstr "" - -#: ../../common_information/points.rst:47 -#: ../../common_information/points.rst:55 -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:139 -msgid "3" -msgstr "" - -#: ../../common_information/points.rst:50 -msgid "TBB version" -msgstr "" - -#: ../../common_information/points.rst:58 -msgid "std::thread version" -msgstr "" - -#: ../../common_information/points.rst:63 -#: ../../common_information/points.rst:72 +#: ../../common_information/points.rst:11 msgid "8" msgstr "" -#: ../../common_information/points.rst:66 -msgid "“MPI + threads” version (The threading technology is chosen randomly)" -msgstr "" - -#: ../../common_information/points.rst:75 -msgid "**Total : 54 points**" +#: ../../common_information/points.rst:12 ../../common_information/points.rst:20 +#: ../../common_information/points.rst:28 ../../common_information/points.rst:40 +#: ../../common_information/points.rst:48 +msgid "Seq" msgstr "" -#: ../../common_information/points.rst:77 -msgid "The rule for earning performance points." -msgstr "" - -#: ../../common_information/points.rst:79 -msgid "" -"The ratio of efficiency percentage to points percentage, where the " -"maximum points is 100% and the minimum points is 0%." +#: ../../common_information/points.rst:12 +msgid "2" msgstr "" -#: ../../common_information/points.rst:81 -msgid "If the score is not an integer, it is rounded up." +#: ../../common_information/points.rst:13 ../../common_information/points.rst:21 +#: ../../common_information/points.rst:29 ../../common_information/points.rst:41 +#: ../../common_information/points.rst:49 ../../common_information/points.rst:57 +#: ../../common_information/points.rst:65 +msgid "Total" msgstr "" -#: ../../common_information/points.rst:84 -msgid "Efficiency (%)" +#: ../../common_information/points.rst:13 +msgid "12" msgstr "" -#: ../../common_information/points.rst:84 -msgid "Points percentage" +#: ../../common_information/points.rst:14 ../../common_information/points.rst:22 +#: ../../common_information/points.rst:30 ../../common_information/points.rst:42 +#: ../../common_information/points.rst:50 ../../common_information/points.rst:58 +#: ../../common_information/points.rst:66 +msgid "Task" msgstr "" -#: ../../common_information/points.rst:86 -msgid ">= 50%" +#: ../../common_information/points.rst:16 +msgid "2nd MPI task" msgstr "" -#: ../../common_information/points.rst:86 -msgid "100%" +#: ../../common_information/points.rst:19 +msgid "12" msgstr "" -#: ../../common_information/points.rst:88 -msgid "[45, 50)" +#: ../../common_information/points.rst:20 +msgid "3" msgstr "" -#: ../../common_information/points.rst:88 -msgid "90%" +#: ../../common_information/points.rst:21 +msgid "23" msgstr "" -#: ../../common_information/points.rst:90 -msgid "[42, 45)" +#: ../../common_information/points.rst:24 +msgid "3rd MPI task" msgstr "" -#: ../../common_information/points.rst:90 -msgid "80%" +#: ../../common_information/points.rst:26 +msgid "5" msgstr "" -#: ../../common_information/points.rst:92 -msgid "[40, 42)" +#: ../../common_information/points.rst:27 +msgid "16" msgstr "" -#: ../../common_information/points.rst:92 -msgid "70%" +#: ../../common_information/points.rst:28 +msgid "4" msgstr "" -#: ../../common_information/points.rst:94 -msgid "[37, 40)" +#: ../../common_information/points.rst:29 +msgid "35" msgstr "" -#: ../../common_information/points.rst:94 -msgid "60%" +#: ../../common_information/points.rst:33 +msgid "For “thread parallelism” semester" msgstr "" -#: ../../common_information/points.rst:96 -msgid "[35, 37)" +#: ../../common_information/points.rst:36 +msgid "OpenMP" msgstr "" -#: ../../common_information/points.rst:96 -msgid "50%" +#: ../../common_information/points.rst:36 ../../common_information/points.rst:44 +#: ../../common_information/points.rst:52 ../../common_information/points.rst:60 +#: ../../common_information/points.rst:68 +msgid "S" msgstr "" -#: ../../common_information/points.rst:98 -msgid "[32, 35)" +#: ../../common_information/points.rst:36 ../../common_information/points.rst:44 +#: ../../common_information/points.rst:52 ../../common_information/points.rst:60 +#: ../../common_information/points.rst:68 +msgid "A" msgstr "" -#: ../../common_information/points.rst:98 -msgid "40%" +#: ../../common_information/points.rst:36 ../../common_information/points.rst:44 +#: ../../common_information/points.rst:52 ../../common_information/points.rst:60 +#: ../../common_information/points.rst:68 +msgid "R" msgstr "" -#: ../../common_information/points.rst:100 -msgid "[30, 32)" +#: ../../common_information/points.rst:37 +msgid "6" msgstr "" -#: ../../common_information/points.rst:100 -msgid "30%" +#: ../../common_information/points.rst:38 ../../common_information/points.rst:46 +#: ../../common_information/points.rst:54 ../../common_information/points.rst:62 +#: ../../common_information/points.rst:70 +msgid "1" msgstr "" -#: ../../common_information/points.rst:102 -msgid "[27, 30)" +#: ../../common_information/points.rst:39 ../../common_information/points.rst:47 +#: ../../common_information/points.rst:55 ../../common_information/points.rst:63 +#: ../../common_information/points.rst:71 +msgid "11" msgstr "" -#: ../../common_information/points.rst:102 -msgid "20%" +#: ../../common_information/points.rst:43 +msgid "TBB" msgstr "" -#: ../../common_information/points.rst:104 -msgid "[25, 27)" +#: ../../common_information/points.rst:47 ../../common_information/points.rst:55 +#: ../../common_information/points.rst:63 ../../common_information/points.rst:71 +msgid "2" msgstr "" -#: ../../common_information/points.rst:104 -msgid "10%" +#: ../../common_information/points.rst:51 +msgid "C++ STL" msgstr "" -#: ../../common_information/points.rst:106 -msgid "< 25%" +#: ../../common_information/points.rst:52 +msgid "8" msgstr "" -#: ../../common_information/points.rst:106 -msgid "0%" +#: ../../common_information/points.rst:56 +msgid "16" msgstr "" -#: ../../common_information/points.rst:109 -msgid "Report" +#: ../../common_information/points.rst:59 +msgid "All" msgstr "" -#: ../../common_information/points.rst:112 -msgid "Completeness" +#: ../../common_information/points.rst:60 +msgid "10" msgstr "" -#: ../../common_information/points.rst:112 -msgid "Text Quality" +#: ../../common_information/points.rst:64 +msgid "21" msgstr "" -#: ../../common_information/points.rst:112 -msgid "Formatting Quality" +#: ../../common_information/points.rst:68 +msgid "4" msgstr "" -#: ../../common_information/points.rst:112 -msgid "Total" +#: ../../common_information/points.rst:72 +msgid "5" msgstr "" -#: ../../common_information/points.rst:114 -msgid "2.5" +#: ../../common_information/points.rst:74 +msgid "Grading" msgstr "" -#: ../../common_information/points.rst:117 -msgid "Conversion of points into exam assessment or pass/fail" +#: ../../common_information/points.rst:76 +msgid "5-point (4-grade) scale" msgstr "" -#: ../../common_information/points.rst:119 -msgid "For 5-point grading system" +#: ../../common_information/points.rst:78 +msgid "Exam" msgstr "" -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 +#: ../../common_information/points.rst:78 msgid "Points range" msgstr "" -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 -msgid "Exam Assessment" -msgstr "" - -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 -msgid "Student Pass" -msgstr "" - -#: ../../common_information/points.rst:124 -msgid "[87, 100]" -msgstr "" - -#: ../../common_information/points.rst:124 -#: ../../common_information/points.rst:125 -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:135 -#: ../../common_information/points.rst:136 -#: ../../common_information/points.rst:137 -#: ../../common_information/points.rst:138 -#: ../../common_information/points.rst:139 +#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 msgid "Passed" msgstr "" -#: ../../common_information/points.rst:125 -msgid "[70, 87)" -msgstr "" - -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:139 -msgid "[50, 70)" -msgstr "" - -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 -msgid "< 50" -msgstr "" - -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 -msgid "2" -msgstr "" - -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 +#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 msgid "Not Passed" msgstr "" -#: ../../common_information/points.rst:130 -msgid "For 7-point grading system **(our current system)**" -msgstr "" - -#: ../../common_information/points.rst:135 -msgid "[99, 100]" -msgstr "" - -#: ../../common_information/points.rst:135 -msgid "5.5" -msgstr "" - -#: ../../common_information/points.rst:136 -msgid "[92, 99)" -msgstr "" - -#: ../../common_information/points.rst:137 -msgid "[82, 92)" -msgstr "" - -#: ../../common_information/points.rst:137 -msgid "4.5" -msgstr "" - -#: ../../common_information/points.rst:138 -msgid "[70, 82)" -msgstr "" - -#: ../../common_information/points.rst:143 -msgid "Penalties:" -msgstr "" - -#: ../../common_information/points.rst:145 -msgid "A deadline will be set for each version." -msgstr "" - -#: ../../common_information/points.rst:146 -msgid "" -"1 point is deducted from the version’s score for each day of delay in " -"submission." -msgstr "" - -#: ../../common_information/points.rst:147 -msgid "" -"The task is considered submitted when it is merged into the master/main " -"branch." -msgstr "" - -#: ../../common_information/points.rst:148 -msgid "" -"The submission time is defined as the timestamp of the last commit that " -"successfully passes the CI pipeline." -msgstr "" - -#: ../../common_information/points.rst:150 -msgid "Comments:" -msgstr "" - -#: ../../common_information/points.rst:152 -msgid "It is forbidden to write the report if all tasks are not completed." -msgstr "" - -#: ../../common_information/points.rst:153 -msgid "" -"Please keep in mind that one week before the end of the semester, the " -"repository will be closed for final assessment." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/common_information/report.po b/docs/locale/en/LC_MESSAGES/common_information/report.po index d85fc9104..6a720743b 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/report.po +++ b/docs/locale/en/LC_MESSAGES/common_information/report.po @@ -2,177 +2,289 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-08 23:43+0100\n" +"POT-Creation-Date: 2025-10-24 15:06+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../common_information/report.rst:2 +#: ../../../../docs/common_information/report.rst:2 msgid "Report" msgstr "" -#: ../../common_information/report.rst:4 +#: ../../../../docs/common_information/report.rst:5 +msgid "Overview and placement" +msgstr "" + +#: ../../../../docs/common_information/report.rst:6 +msgid "" +"The report is a Markdown file placed inside your task directory: " +"``tasks/__/report.md``." +msgstr "" + +#: ../../../../docs/common_information/report.rst:8 +msgid "" +"Presence of ``report.md`` is required to receive report (R) points for " +"that task (see ``Points``)." +msgstr "" + +#: ../../../../docs/common_information/report.rst:9 +msgid "" +"Write the report in a concise, reproducible manner. Use English or " +"Russian consistently." +msgstr "" + +#: ../../../../docs/common_information/report.rst:12 msgid "Report points" msgstr "" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:14 +#: ../../../../docs/common_information/report.rst:15 msgid "Completeness" msgstr "" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:27 +#: ../../../../docs/common_information/report.rst:15 msgid "Text Quality" msgstr "" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:34 +#: ../../../../docs/common_information/report.rst:15 msgid "Formatting Quality" msgstr "" -#: ../../common_information/report.rst:7 +#: ../../../../docs/common_information/report.rst:15 msgid "Total" msgstr "" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "5" msgstr "" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "2.5" msgstr "" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "10" msgstr "" -#: ../../common_information/report.rst:12 -msgid "Requirements for Criteria" +#: ../../../../docs/common_information/report.rst:21 +msgid "Recommended structure" msgstr "" -#: ../../common_information/report.rst:16 -msgid "Introduction (can be a short paragraph)" +#: ../../../../docs/common_information/report.rst:22 +msgid "Introduction (short context and goal)" msgstr "" -#: ../../common_information/report.rst:17 -msgid "Problem Statement (descriptive)" +#: ../../../../docs/common_information/report.rst:23 +msgid "Problem Statement (task definition and constraints)" msgstr "" -#: ../../common_information/report.rst:18 -msgid "Algorithm Description" +#: ../../../../docs/common_information/report.rst:24 +msgid "Algorithm Description (baseline/sequential)" msgstr "" -#: ../../common_information/report.rst:19 -msgid "Description of the Parallel Algorithm Scheme" +#: ../../../../docs/common_information/report.rst:25 +msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" msgstr "" -#: ../../common_information/report.rst:20 -msgid "" -"Description of the MPI, OpenMP, TBB, std::threads, all versions " -"(depending on the semester) – part of the software implementation " -"description" +#: ../../../../docs/common_information/report.rst:26 +msgid "Implementation Details per technology used (only those in your semester)" msgstr "" -#: ../../common_information/report.rst:21 +#: ../../../../docs/common_information/report.rst:27 msgid "" -"Experimental Results (execution time and algorithm quality assessment), " -"description of correctness verification" +"Experimental Results - Environment (CPU, OS, compiler, build type; " +"thread/process counts) - Execution time tables/plots; performance metrics" +" (speedup/efficiency) - Correctness checks description" msgstr "" -#: ../../common_information/report.rst:22 -msgid "Conclusions from the Results" +#: ../../../../docs/common_information/report.rst:31 +msgid "Conclusions (what worked, what didn’t, further work)" msgstr "" -#: ../../common_information/report.rst:23 -msgid "Conclusion" +#: ../../../../docs/common_information/report.rst:32 +msgid "References (articles, docs; provide links)" msgstr "" -#: ../../common_information/report.rst:24 -msgid "References" +#: ../../../../docs/common_information/report.rst:33 +msgid "Appendix (optional code snippets; keep readable)" msgstr "" -#: ../../common_information/report.rst:25 -msgid "Appendix (include code, ensuring readability)" +#: ../../../../docs/common_information/report.rst:36 +msgid "Evaluation criteria" msgstr "" -#: ../../common_information/report.rst:29 -msgid "Meaningfulness" +#: ../../../../docs/common_information/report.rst:37 +msgid "" +"Completeness - All items from the recommended structure are present and " +"meaningful - Results include both correctness and performance evidence" msgstr "" -#: ../../common_information/report.rst:30 -msgid "Coherence" +#: ../../../../docs/common_information/report.rst:40 +msgid "" +"Text Quality - Clarity, coherence, correct terminology; acceptable " +"language quality" msgstr "" -#: ../../common_information/report.rst:31 -msgid "Clarity" +#: ../../../../docs/common_information/report.rst:42 +msgid "" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" +" blocks - Figures/plots with captions and relative paths; readable " +"formatting" msgstr "" -#: ../../common_information/report.rst:32 -msgid "Quality of language (only the most obvious mistakes are considered)" +#: ../../../../docs/common_information/report.rst:47 +msgid "Notes" msgstr "" -#: ../../common_information/report.rst:36 -msgid "Requirements for Headings" +#: ../../../../docs/common_information/report.rst:48 +msgid "" +"Reports are reviewed online in the Pull Request. The final grade is based" +" on the submitted version that passes the review." msgstr "" -#: ../../common_information/report.rst:37 -msgid "Requirements for Text Alignment" +#: ../../../../docs/common_information/report.rst:49 +msgid "" +"If the task is disabled at the end of semester (e.g., fails in master; " +"see scoreboard “blue zone”), report points for that task are nullified." msgstr "" -#: ../../common_information/report.rst:38 -msgid "Requirements for Paragraph Indentation" +#: ../../../../docs/common_information/report.rst:50 +msgid "" +"Plagiarism is prohibited; identical or near‑duplicate reports will be " +"rejected." msgstr "" -#: ../../common_information/report.rst:39 -msgid "Requirements for the Formatting of Figures, Graphs, and Tables" +#: ../../../../docs/common_information/report.rst:55 +msgid "Markdown template (report.md)" msgstr "" -#: ../../common_information/report.rst:40 +#: ../../../../docs/common_information/report.rst:57 msgid "" -"The “Teacher” field must include the full name, position, and title of " -"the lecturer" +"Use the following skeleton as a starting point for your ``report.md``. " +"Keep file paths relative to the task directory (for images/data)." msgstr "" -#: ../../common_information/report.rst:42 -msgid "Comments" -msgstr "" +#~ msgid "Requirements for Criteria" +#~ msgstr "" -#: ../../common_information/report.rst:44 -msgid "Failure to meet the requirements will result in a deduction of points." -msgstr "" +#~ msgid "Introduction (can be a short paragraph)" +#~ msgstr "" -#: ../../common_information/report.rst:45 -msgid "" -"The request will include points and comments regarding any requirement " -"violations (if applicable)." -msgstr "" +#~ msgid "Problem Statement (descriptive)" +#~ msgstr "" -#: ../../common_information/report.rst:46 -msgid "" -"The report will be checked only once, and the grade will be assigned " -"based on the submitted version according to the requirements." -msgstr "" +#~ msgid "Algorithm Description" +#~ msgstr "" -#: ../../common_information/report.rst:47 -msgid "" -"The report is reviewed online; the entire review process takes place in " -"the request." -msgstr "" +#~ msgid "Description of the Parallel Algorithm Scheme" +#~ msgstr "" + +#~ msgid "" +#~ "Description of the MPI, OpenMP, TBB, " +#~ "std::threads, all versions (depending on " +#~ "the semester) – part of the " +#~ "software implementation description" +#~ msgstr "" + +#~ msgid "" +#~ "Experimental Results (execution time and " +#~ "algorithm quality assessment), description of" +#~ " correctness verification" +#~ msgstr "" + +#~ msgid "Conclusions from the Results" +#~ msgstr "" + +#~ msgid "Conclusion" +#~ msgstr "" + +#~ msgid "References" +#~ msgstr "" + +#~ msgid "Appendix (include code, ensuring readability)" +#~ msgstr "" + +#~ msgid "Meaningfulness" +#~ msgstr "" + +#~ msgid "Coherence" +#~ msgstr "" + +#~ msgid "Clarity" +#~ msgstr "" + +#~ msgid "Quality of language (only the most obvious mistakes are considered)" +#~ msgstr "" + +#~ msgid "Requirements for Headings" +#~ msgstr "" + +#~ msgid "Requirements for Text Alignment" +#~ msgstr "" + +#~ msgid "Requirements for Paragraph Indentation" +#~ msgstr "" + +#~ msgid "Requirements for the Formatting of Figures, Graphs, and Tables" +#~ msgstr "" + +#~ msgid "" +#~ "The “Teacher” field must include the " +#~ "full name, position, and title of " +#~ "the lecturer" +#~ msgstr "" + +#~ msgid "Comments" +#~ msgstr "" + +#~ msgid "Failure to meet the requirements will result in a deduction of points." +#~ msgstr "" + +#~ msgid "" +#~ "The request will include points and " +#~ "comments regarding any requirement violations" +#~ " (if applicable)." +#~ msgstr "" + +#~ msgid "" +#~ "The report will be checked only " +#~ "once, and the grade will be " +#~ "assigned based on the submitted version" +#~ " according to the requirements." +#~ msgstr "" + +#~ msgid "" +#~ "The report is reviewed online; the " +#~ "entire review process takes place in " +#~ "the request." +#~ msgstr "" + +#~ msgid "" +#~ "If a student falls into the **blue" +#~ " zone** for the task, the report " +#~ "points will also be nullified at " +#~ "the end of the semester. The " +#~ "report will be finally accepted and " +#~ "merged into the master branch only " +#~ "after both the **online** parts of " +#~ "the corresponding lab work are fully " +#~ "completed." +#~ msgstr "" + +#~ msgid "Russian template (report.md)" +#~ msgstr "" -#: ../../common_information/report.rst:48 -msgid "" -"If a student falls into the **blue zone** for the task, the report points" -" will also be nullified at the end of the semester. The report will be " -"finally accepted and merged into the master branch only after both the " -"**online** parts of the corresponding lab work are fully completed." -msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/user_guide/api.po b/docs/locale/en/LC_MESSAGES/user_guide/api.po index 88a83db8a..9dd535be2 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/api.po @@ -8,11 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-22 21:38+0200\n" +"POT-Creation-Date: 2025-10-24 15:06+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" @@ -71,3 +72,27 @@ msgstr "" msgid "Performance Module" msgstr "" +#~ msgid "Functions" +#~ msgstr "" + +#~ msgid "Parameters" +#~ msgstr "" + +#~ msgid "Returns" +#~ msgstr "" + +#~ msgid "Typedefs" +#~ msgstr "" + +#~ msgid "Template Parameters" +#~ msgstr "" + +#~ msgid "Enums" +#~ msgstr "" + +#~ msgid "Throws" +#~ msgstr "" + +#~ msgid "Variables" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/build.po b/docs/locale/en/LC_MESSAGES/user_guide/build.po index fa1454590..a97e9c197 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/build.po @@ -2,73 +2,90 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-20 23:19+0100\n" +"POT-Creation-Date: 2025-10-24 14:15+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/build.rst:2 +#: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" msgstr "" -#: ../../user_guide/build.rst:4 -msgid "Navigate to a source code folder." +#: ../../../../docs/user_guide/build.rst:4 +msgid "Navigate to the project root." msgstr "" -#: ../../user_guide/build.rst:6 +#: ../../../../docs/user_guide/build.rst:6 msgid "**Configure the build**: ``Makefile``, ``.sln``, etc." msgstr "" -#: ../../user_guide/build.rst:13 +#: ../../../../docs/user_guide/build.rst:12 +msgid "Optional: enable sanitizers for local debugging" +msgstr "" + +#: ../../../../docs/user_guide/build.rst:18 msgid "*Help on CMake keys:*" msgstr "" -#: ../../user_guide/build.rst:20 +#: ../../../../docs/user_guide/build.rst:21 msgid "``-D USE_FUNC_TESTS=ON`` enable functional tests." msgstr "" -#: ../../user_guide/build.rst:21 +#: ../../../../docs/user_guide/build.rst:22 msgid "``-D USE_PERF_TESTS=ON`` enable performance tests." msgstr "" -#: ../../user_guide/build.rst:22 +#: ../../../../docs/user_guide/build.rst:23 msgid "``-D CMAKE_BUILD_TYPE=Release`` normal build (default)." msgstr "" -#: ../../user_guide/build.rst:23 -msgid "``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or running ``valgrind`` to keep debug information." +#: ../../../../docs/user_guide/build.rst:24 +msgid "" +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " +"or running ``valgrind`` to keep debug information." msgstr "" -#: ../../user_guide/build.rst:24 +#: ../../../../docs/user_guide/build.rst:26 msgid "``-D CMAKE_BUILD_TYPE=Debug`` for debugging sessions." msgstr "" -#: ../../user_guide/build.rst:24 +#: ../../../../docs/user_guide/build.rst:28 msgid "*A corresponding flag can be omitted if it's not needed.*" msgstr "" -#: ../../user_guide/build.rst:26 +#: ../../../../docs/user_guide/build.rst:30 msgid "**Build the project**:" msgstr "" -#: ../../user_guide/build.rst:32 -msgid "**Check the task**:" +#: ../../../../docs/user_guide/build.rst:36 +msgid "**Run tests**:" msgstr "" -#: ../../user_guide/build.rst:34 -msgid "Run ``/build/bin``" +#: ../../../../docs/user_guide/build.rst:38 +msgid "Prefer the helper runner described in ``User Guide → CI``." msgstr "" +#~ msgid "Navigate to a source code folder." +#~ msgstr "" + +#~ msgid "**Check the task**:" +#~ msgstr "" + +#~ msgid "Run ``/build/bin``" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/ci.po b/docs/locale/en/LC_MESSAGES/user_guide/ci.po index 60a135e56..9f232ee4e 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/ci.po @@ -2,45 +2,380 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-25 16:54+0100\n" +"POT-Creation-Date: 2025-10-24 18:02+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/ci.rst:2 +#: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" msgstr "" -#: ../../user_guide/ci.rst:4 +#: ../../../../docs/user_guide/ci.rst:5 +msgid "Overview" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:6 +msgid "" +"Your pull request must pass all required CI checks before review/merge. " +"The pipeline validates formatting and static analysis, builds on all " +"platforms, runs functional tests (threads and MPI), measures performance," +" builds docs, and publishes artifacts (coverage report, docs, " +"scoreboard)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:9 +msgid "High‑level pipeline" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:11 +msgid "" +"Pre-commit checks (fast) — runs repository hooks on changed files; fix " +"locally via ``pre-commit run -a``." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:13 +msgid "" +"Platform builds and tests (Ubuntu, macOS, Windows) — Ubuntu (GCC/Clang, " +"amd64+arm), macOS (Clang), Windows (MSVC/Clang‑CL); functional tests via " +"``scripts/run_tests.py`` for threads (``--counts 1 2 3 4``; extended ``5 " +"7 11 13``) and processes (MPI, ``--counts 1 2 3 4``)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:15 +msgid "" +"Sanitizers (Ubuntu/Clang) — Address/UB/Leak; tests use ``PPC_ASAN_RUN=1``" +" to skip valgrind." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:17 +msgid "" +"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to " +"Codecov and uploads ``cov-report`` (HTML)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:19 +msgid "" +"Performance (perf) — ``scripts/generate_perf_results.sh`` produces " +"``build/perf_stat_dir``; uploads ``perf-stat`` (Linux) and ``perf-stat-" +"macos`` (macOS)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:21 +msgid "" +"Pages (docs and scoreboard) — builds Doxygen XML and Sphinx (EN+RU) + " +"scoreboard; on ``master`` deploys with coverage to GitHub Pages." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:23 +msgid "" +"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU" +" pragma``), scheduled CodeQL (C++/Python) and OpenSSF Scorecard." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:26 +msgid "Diagram" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:27 +msgid "The pipeline is illustrated below (blocks may be collapsed in GitHub UI):" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:29 +msgid "CI pipeline (pre-commit → OS builds/tests → perf → pages)" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:34 +msgid "Running tests locally" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:36 +msgid "Use the ``scripts/run_tests.py`` helper. Common environment variables:" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:38 +msgid "``PPC_NUM_THREADS``" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:39 +msgid "Number of threads (also exported as ``OMP_NUM_THREADS``)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:41 +msgid "``PPC_NUM_PROC``" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:42 +msgid "Number of MPI processes to launch." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:44 +msgid "``PPC_ASAN_RUN``" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:45 +msgid "" +"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " +"(default ``0``)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:47 +msgid "``PPC_IGNORE_TEST_TIME_LIMIT``" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:48 +msgid "Set to ``1`` to disable test time limits (default ``0``)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:50 +msgid "" +"Execution modes: - ``--running-type=threads`` — shared-memory backends " +"(OpenMP/TBB/std::thread) - ``--running-type=processes`` — MPI tests - " +"``--running-type=performance`` — performance benchmarks (mirrors CI perf " +"job)" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:55 +msgid "Examples:" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:71 +msgid "" +"Options: - ``--counts`` runs tests for multiple thread/process counts " +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags " +"(e.g., ``--oversubscribe``). - ``--verbose`` prints every executed " +"command." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:77 +msgid "Coverage and sanitizers locally" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:78 +msgid "" +"Sanitizers (Linux): configure with ``-D ENABLE_ADDRESS_SANITIZER=ON`` " +"(and optional UB/Leak), run tests with ``PPC_ASAN_RUN=1``." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:79 +msgid "" +"Coverage (Linux/GCC): configure with ``-D USE_COVERAGE=ON``, run tests, " +"then generate HTML via ``gcovr`` (see CI ``gcc-build-codecov`` for " +"command line)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:82 +msgid "Docs and scoreboard artifacts" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:83 +msgid "" +"Docs: run Doxygen first (``doxygen Doxyfile``), then Sphinx EN/RU via " +"CMake targets ``docs_gettext``, ``docs_update``, ``docs_html``." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:84 +msgid "" +"Scoreboard: generate perf stats (``scripts/generate_perf_results.sh``) " +"and build scoreboard target or use ``python3 scoreboard/main.py`` " +"locally." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:87 +msgid "Troubleshooting" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:88 +msgid "" +"Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-" +"commit install``) and commit fixes." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:89 +msgid "" +"Static analysis (clang-tidy) fails: address comments; do not use " +"``NOLINT``/``IWYU pragma`` in task code." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:90 +msgid "" +"Tests not found/not running: verify ``settings.json`` enables required " +"technologies and tests exist; see :doc:`submit_work`." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:91 +msgid "" +"Time limits exceeded: reduce data sizes; prefer env vars " +"(:doc:`environment_variables`) like " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:92 +msgid "" +"MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-" +"args=\\\"--oversubscribe\\\"``." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Students need to pass all the checks in the CI pipeline before their work" -" can be considered for submission. This includes successful code " -"checkout, build ans testing stages. Each integration is verified by an " -"automated build and automated tests." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " +"Sphinx targets." msgstr "" -#: ../../user_guide/ci.rst:9 -msgid "CI Pipeline" +#: ../../../../docs/user_guide/ci.rst:94 +msgid "" +"Performance job fails: ensure exactly two perf tests (``task`` and " +"``pipeline``) and keep durations within limits." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:97 +msgid "Local clang-tidy and gcovr examples" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:99 +msgid "clang-tidy (static analysis):" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:113 +msgid "gcovr (coverage, GCC):" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:141 +msgid "Tooling tips (versions and install)" +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:143 +msgid "" +"clang-tidy version - CI uses clang-tidy 21. Prefer the same locally to " +"avoid mismatches. - The helper may be named ``clang-tidy-21`` or ``run-" +"clang-tidy-21`` on some systems." msgstr "" -#: ../../user_guide/ci.rst:11 -msgid "The CI pipeline for this project is illustrated in the following diagram:" +#: ../../../../docs/user_guide/ci.rst:147 +msgid "" +"Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" +"tidy-21``) or use the course Docker image. - gcovr: ``python3 -m pip " +"install gcovr`` or a distro package. - GCC version: use ``gcov-14`` when " +"building with GCC 14 (as in CI)." +msgstr "" + +#: ../../../../docs/user_guide/ci.rst:152 +msgid "" +"macOS - clang-tidy: ``brew install llvm``; binary at ``$(brew " +"--prefix)/opt/llvm/bin/clang-tidy``. - Optionally add LLVM to PATH or " +"invoke with full path. - gcovr: ``python3 -m pip install gcovr`` or " +"``brew install gcovr``." msgstr "" -#: ../../user_guide/ci.rst:13 -msgid "CI Pipeline Diagram" +#: ../../../../docs/user_guide/ci.rst:157 +msgid "" +"Windows - clang-tidy: install LLVM (Clang) or use ``choco install llvm``;" +" ensure ``clang-tidy.exe`` is in PATH. - gcovr: ``py -m pip install " +"gcovr``. - Coverage is primarily supported in our CI on Linux/GCC; prefer" +" generating reports on Linux." msgstr "" +#~ msgid "" +#~ "Students need to pass all the " +#~ "checks in the CI pipeline before " +#~ "their work can be considered for " +#~ "submission. This includes successful code " +#~ "checkout, build ans testing stages. Each" +#~ " integration is verified by an " +#~ "automated build and automated tests." +#~ msgstr "" + +#~ msgid "CI Pipeline" +#~ msgstr "" + +#~ msgid "" +#~ "The CI pipeline for this project " +#~ "is illustrated in the following diagram:" +#~ msgstr "" + +#~ msgid "CI Pipeline Diagram" +#~ msgstr "" + +#~ msgid "Running ``scripts/run_tests.py``" +#~ msgstr "" + +#~ msgid "" +#~ "Automated tests are executed through the" +#~ " ``scripts/run_tests.py`` helper. The script " +#~ "requires several environment variables to " +#~ "be defined:" +#~ msgstr "" + +#~ msgid "" +#~ "Number of threads to use. The " +#~ "value is also exported as " +#~ "``OMP_NUM_THREADS``." +#~ msgstr "" + +#~ msgid "" +#~ "Set to ``1`` when sanitizers are " +#~ "enabled to skip ``valgrind`` runs " +#~ "(optional, default ``0``)." +#~ msgstr "" + +#~ msgid "Set to ``1`` to disable test time limits (optional, default ``0``)." +#~ msgstr "" + +#~ msgid "" +#~ "The execution mode is selected with " +#~ "``--running-type``. The most common " +#~ "modes are ``threads`` for shared-memory" +#~ " backends and ``processes`` for MPI " +#~ "based tests. ``performance`` mode runs " +#~ "performance benchmarks." +#~ msgstr "" + +#~ msgid "" +#~ "Note: In ``threads`` and ``processes`` " +#~ "modes the runner also executes core " +#~ "library tests (``core_func_tests``) before the" +#~ " task tests." +#~ msgstr "" + +#~ msgid "Example usage:" +#~ msgstr "" + +#~ msgid "" +#~ "Additional MPI arguments can be supplied" +#~ " with ``--additional-mpi-args`` when " +#~ "running in ``processes`` mode." +#~ msgstr "" + +#~ msgid "" +#~ "The ``--counts`` option allows sequential " +#~ "execution of tests with several " +#~ "thread/process counts. When specified, the" +#~ " script will iterate over the " +#~ "provided values, updating ``PPC_NUM_THREADS`` " +#~ "or ``PPC_NUM_PROC`` accordingly before each" +#~ " run." +#~ msgstr "" + +#~ msgid "" +#~ "Use ``--verbose`` to print every command" +#~ " executed by ``run_tests.py``. This can" +#~ " be helpful for debugging CI failures" +#~ " or verifying the exact arguments " +#~ "passed to the test binaries." +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/environment.po b/docs/locale/en/LC_MESSAGES/user_guide/environment.po index 36751ae21..162c3b6ec 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/environment.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/environment.po @@ -2,119 +2,224 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-19 16:44+0200\n" +"POT-Creation-Date: 2025-10-24 18:03+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/environment.rst:2 +#: ../../../../docs/user_guide/environment.rst:2 msgid "Set Up Your Environment" msgstr "" -#: ../../user_guide/environment.rst:5 +#: ../../../../docs/user_guide/environment.rst:5 +msgid "Development Container (Recommended)" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:6 +msgid "" +"The easiest way to set up your development environment is using the " +"provided ``.devcontainer`` configuration with VS Code and Docker." +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:8 +msgid "**Prerequisites:**" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:10 +msgid "`Visual Studio Code `_" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:11 +msgid "`Docker Desktop `_" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:12 +msgid "" +"`Dev Containers extension " +"`_" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:14 +msgid "**Setup:**" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:16 +msgid "Clone the repository and open it in VS Code" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:17 +msgid "" +"When prompted, click \"Reopen in Container\" or use Command Palette: " +"``Dev Containers: Reopen in Container``" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:18 +msgid "" +"VS Code will automatically build the container with all dependencies pre-" +"installed" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:19 +msgid "The container includes:" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:21 +msgid "Ubuntu environment with gcc-14, CMake, MPI, OpenMP" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:22 +msgid "Pre-configured C++ and Python development tools" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:23 +msgid "All project dependencies ready to use" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:25 +msgid "" +"This provides a consistent development environment across all platforms " +"without manual dependency installation." +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:28 +msgid "Manual Setup" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:30 +msgid "" +"If you prefer manual setup or cannot use containers, follow the " +"instructions below." +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:33 msgid "Build prerequisites" msgstr "" -#: ../../user_guide/environment.rst:6 +#: ../../../../docs/user_guide/environment.rst:34 msgid "" "**Windows**: Download and install CMake from https://cmake.org/download " "(select the Windows installer) or install using Chocolatey:" msgstr "" -#: ../../user_guide/environment.rst:12 +#: ../../../../docs/user_guide/environment.rst:40 msgid "**Linux (Ubuntu/Debian)**: Install using package manager:" msgstr "" -#: ../../user_guide/environment.rst:19 +#: ../../../../docs/user_guide/environment.rst:47 msgid "**macOS**: Install using Homebrew:" msgstr "" -#: ../../user_guide/environment.rst:27 +#: ../../../../docs/user_guide/environment.rst:55 msgid "Code Style Analysis" msgstr "" -#: ../../user_guide/environment.rst:28 +#: ../../../../docs/user_guide/environment.rst:56 msgid "" "Please follow the `Google C++ Style Guide " "`_." msgstr "" -#: ../../user_guide/environment.rst:30 +#: ../../../../docs/user_guide/environment.rst:58 msgid "" "Code style is checked using the `clang-format " "`_ tool." msgstr "" -#: ../../user_guide/environment.rst:33 +#: ../../../../docs/user_guide/environment.rst:61 +msgid "Optional tools (clang-tidy, gcovr)" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:62 +msgid "" +"Install these to match the CI toolchain for static analysis and coverage " +"reports." +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:64 +msgid "Linux (Ubuntu/Debian):" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:75 +msgid "macOS (Homebrew):" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:83 +msgid "Windows:" +msgstr "" + +#: ../../../../docs/user_guide/environment.rst:92 msgid "Parallel Programming Technologies" msgstr "" -#: ../../user_guide/environment.rst:36 +#: ../../../../docs/user_guide/environment.rst:95 msgid "``MPI``" msgstr "" -#: ../../user_guide/environment.rst:37 +#: ../../../../docs/user_guide/environment.rst:96 msgid "**Windows (MSVC)**:" msgstr "" -#: ../../user_guide/environment.rst:39 +#: ../../../../docs/user_guide/environment.rst:98 msgid "" "`Installers link `_. You have to install " "``msmpisdk.msi`` and ``msmpisetup.exe``." msgstr "" -#: ../../user_guide/environment.rst:41 -#: ../../user_guide/environment.rst:57 +#: ../../../../docs/user_guide/environment.rst:100 +#: ../../../../docs/user_guide/environment.rst:116 msgid "**Linux (gcc and clang)**:" msgstr "" -#: ../../user_guide/environment.rst:47 +#: ../../../../docs/user_guide/environment.rst:106 msgid "**MacOS (apple clang)**:" msgstr "" -#: ../../user_guide/environment.rst:54 +#: ../../../../docs/user_guide/environment.rst:113 msgid "``OpenMP``" msgstr "" -#: ../../user_guide/environment.rst:55 +#: ../../../../docs/user_guide/environment.rst:114 msgid "" "``OpenMP`` is included in ``gcc`` and ``msvc``, but some components " "should be installed additionally:" msgstr "" -#: ../../user_guide/environment.rst:63 +#: ../../../../docs/user_guide/environment.rst:122 msgid "**MacOS (llvm)**:" msgstr "" -#: ../../user_guide/environment.rst:71 +#: ../../../../docs/user_guide/environment.rst:130 msgid "``TBB``" msgstr "" -#: ../../user_guide/environment.rst:72 +#: ../../../../docs/user_guide/environment.rst:131 msgid "" "**Windows (MSVC)**, **Linux (gcc and clang)**, **MacOS (apple clang)**: " "Build as 3rdparty in the current project." msgstr "" -#: ../../user_guide/environment.rst:76 +#: ../../../../docs/user_guide/environment.rst:135 msgid "``std::thread``" msgstr "" -#: ../../user_guide/environment.rst:77 +#: ../../../../docs/user_guide/environment.rst:136 msgid "``std::thread`` is included in STL libraries." msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po b/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po index 3347c6877..6e4c9a00e 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po @@ -2,23 +2,25 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-05-29 19:31+0200\n" +"POT-Creation-Date: 2025-10-24 14:15+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/environment_variables.rst:2 msgid "Environment Variables" @@ -33,26 +35,43 @@ msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:6 msgid "" "``PPC_NUM_PROC``: Specifies the number of processes to launch. Default: " -"``1``" +"``1`` Can be queried from C++ with ``ppc::util::GetNumProc()``." msgstr "" -#: ../../../../docs/user_guide/environment_variables.rst:9 +#: ../../../../docs/user_guide/environment_variables.rst:10 msgid "" "``PPC_NUM_THREADS``: Specifies the number of threads to use. Default: " "``1``" msgstr "" -#: ../../../../docs/user_guide/environment_variables.rst:12 +#: ../../../../docs/user_guide/environment_variables.rst:13 msgid "" "``PPC_ASAN_RUN``: Specifies that application is compiler with sanitizers." " Used by ``scripts/run_tests.py`` to skip ``valgrind`` runs. Default: " "``0``" msgstr "" -#: ../../../../docs/user_guide/environment_variables.rst:15 +#: ../../../../docs/user_guide/environment_variables.rst:16 msgid "" "``PPC_IGNORE_TEST_TIME_LIMIT``: Specifies that test time limits are " "ignored. Used by ``scripts/run_tests.py`` to disable time limit " "enforcement. Default: ``0``" msgstr "" +#: ../../../../docs/user_guide/environment_variables.rst:18 +msgid "" +"``PPC_TASK_MAX_TIME``: Maximum allowed execution time in seconds for " +"functional tests. Default: ``1.0``" +msgstr "" + +#: ../../../../docs/user_guide/environment_variables.rst:20 +msgid "" +"``PPC_PERF_MAX_TIME``: Maximum allowed execution time in seconds for " +"performance tests. Default: ``10.0``" +msgstr "" + +#~ msgid "" +#~ "``PPC_NUM_PROC``: Specifies the number of " +#~ "processes to launch. Default: ``1``" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po index 43087b2e7..598369c39 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po @@ -2,132 +2,433 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-20 23:19+0100\n" +"POT-Creation-Date: 2025-10-24 15:07+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/submit_work.rst:2 -msgid "How to submit your work" +#: ../../../../docs/user_guide/submit_work.rst:2 +msgid "How to create, open, and submit your work" msgstr "" -#: ../../user_guide/submit_work.rst:4 +#: ../../../../docs/user_guide/submit_work.rst:4 msgid "" -"There are ``all``, ``mpi``, ``omp``, ``seq``, ``stl``, ``tbb`` folders in" -" the ``tasks`` directory. Move to a folder of your task. Create a " -"directory named ``__``." +"This section reflects the current integration flow used in semester " +"repositories. It is a practical, step-by-step checklist tailored for " +"students." msgstr "" -#: ../../user_guide/submit_work.rst:6 +#: ../../../../docs/user_guide/submit_work.rst:7 +msgid "Repository and branch" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:8 +msgid "Fork the semester repository for your group (processes/threads, program)." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:9 +msgid "" +"Create a branch named exactly as your task folder: " +"``__`` (e.g., ``nesterov_a_elem_vec_sum``)." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:13 +msgid "Prerequisites" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:14 +msgid "Install tools and dependencies (see ``User Guide → Environment``)." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:15 +msgid "Verify you can configure and build the project locally with CMake." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:16 +msgid "" +"If you work from a fork, clone your fork and set the course repo as " +"upstream." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:19 +msgid "Task folder layout (unified)" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:20 +msgid "" +"Create a folder ``tasks/__/`` with the following " +"layout:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:22 +msgid "``common/include/common.hpp`` — shared type aliases and `BaseTask`:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:31 +msgid "" +"Technology implementations (add only those required by the semester): - " +"Processes (MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, " +"``mpi/src`` - Threads: ``seq``, ``omp``, ``tbb``, ``stl`` (same " +"include/src split)" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:35 msgid "" -"Example: ``seq/nesterov_a_vector_sum``. Please name all tasks **with the " -"same** name directory. If the ``seq`` task is named " -"``seq/nesterov_a_vector_sum``, then the ``omp`` task must be named " -"``omp/nesterov_a_vector_sum``." +"Each implementation defines a class derived from ``BaseTask`` and " +"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"``PostProcessingImpl``. Also add:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:44 +msgid "Minimal skeleton (example for SEQ):" msgstr "" -#: ../../user_guide/submit_work.rst:8 +#: ../../../../docs/user_guide/submit_work.rst:76 msgid "" -"Navigate into the newly created folder and begin your work on the task. " -"The folder must contain only 4 directories with files:" +"Tests (unified location): - ``tests/functional/main.cpp`` — functional " +"tests built on ``ppc::util::BaseRunFuncTests`` and helpers. - " +"``tests/performance/main.cpp`` — performance tests built on " +"``ppc::util::BaseRunPerfTests`` + ``MakeAllPerfTasks``." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:80 +msgid "Functional tests example:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:90 +msgid "Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:92 +msgid "Performance tests example:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:100 +msgid "Tips for tests" msgstr "" -#: ../../user_guide/submit_work.rst:10 +#: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"``data`` - Directory with own data files for functional testing of " -"the task." +"Keep tests deterministic and under time limits; prefer env vars (see " +"``User Guide → Environment Variables``) over sleeps." msgstr "" -#: ../../user_guide/submit_work.rst:11 +#: ../../../../docs/user_guide/submit_work.rst:102 +msgid "Use ``PPC_ID_`` to access files from ``data/``." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:103 msgid "" -"``func_tests`` - Directory with Google tests for functional testing of " -"the task." +"Cover edge cases in functional tests; add exactly two performance test " +"styles (``task`` and ``pipeline``) inside the suite." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:105 +msgid "``data/`` — optional input files for tests (e.g., images)." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:106 +msgid "``settings.json`` — enable required technologies for your semester, e.g.:" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:112 +msgid "``info.json`` — student metadata used in automation (scoreboard, macros):" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:119 +msgid "Build and local run" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:120 +msgid "Configure and build:" msgstr "" -#: ../../user_guide/submit_work.rst:12 -msgid "``include`` - Directory for header files with function prototypes." +#: ../../../../docs/user_guide/submit_work.rst:127 +msgid "Run tests via helper:" msgstr "" -#: ../../user_guide/submit_work.rst:13 +#: ../../../../docs/user_guide/submit_work.rst:138 +msgid "Executables (where to find tests)" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:139 msgid "" -"``perf_tests`` - Directory with Google tests for performance testing. The" -" number of tests must be 2: ``run_task`` and ``run_pipeline``." +"``build/bin`` (or ``install/bin``): - ``core_func_tests`` — core library " +"tests first - ``ppc_func_tests`` — functional tests for all " +"tasks/technologies - ``ppc_perf_tests`` — performance tests for all " +"tasks/technologies" msgstr "" -#: ../../user_guide/submit_work.rst:14 +#: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"``src`` - Directory with source files containing the function " -"implementations." +"The runner applies gtest filters automatically to select technology " +"suites." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:147 +msgid "Pull Request" msgstr "" -#: ../../user_guide/submit_work.rst:16 -msgid "There must be 10 executable files for running:" +#: ../../../../docs/user_guide/submit_work.rst:148 +msgid "Title format (example):" msgstr "" -#: ../../user_guide/submit_work.rst:18 +#: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``__tests``. For example, " -"``omp_perf_tests`` - an executable file for performance tests of OpenMP " -"practice tasks." +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" msgstr "" -#: ../../user_guide/submit_work.rst:20 +#: ../../../../docs/user_guide/submit_work.rst:152 msgid "" -"All prototypes and classes in the ``include`` directory must be " -"namespace-escaped. Name your namespace as follows:" +"Description should include: - Полное описание задачи; номер варианта; " +"используемая технология - Краткое описание реализации и отчёта - Чек-лист" +" (CI зелёный в форке, clang-format/clang-tidy пройдены, " +"функциональные/перф тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:160 +msgid "PR checklist template (body)" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:208 +msgid "Common pitfalls (read before pushing)" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:209 +msgid "Wrong folder/branch name. Must be ``__`` everywhere." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:210 +msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." msgstr "" -#: ../../user_guide/submit_work.rst:36 -msgid "Name your group of tests and individual test cases as follows:" +#: ../../../../docs/user_guide/submit_work.rst:211 +msgid "Tests rely on randomness or sleeps instead of env time limits." msgstr "" -#: ../../user_guide/submit_work.rst:38 -msgid "For functional tests (for maximum coverage):" +#: ../../../../docs/user_guide/submit_work.rst:212 +msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." msgstr "" -#: ../../user_guide/submit_work.rst:50 +#: ../../../../docs/user_guide/submit_work.rst:213 +msgid "Namespace doesn’t match the folder name and collides with others." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:214 +msgid "Performance tests count or naming deviates from the required patterns." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:217 +msgid "Useful examples to reference" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"For performance tests (only 2 tests - ``pipeline`` and ``task`` - no more" -" no less):" +"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" msgstr "" -#: ../../user_guide/submit_work.rst:65 -msgid "Name your pull request as follows:" +#: ../../../../docs/user_guide/submit_work.rst:219 +msgid "Threads: ``tasks/example_threads``" msgstr "" -#: ../../user_guide/submit_work.rst:67 -msgid "For tasks:" +#: ../../../../docs/user_guide/submit_work.rst:221 +msgid "" +"Work from your fork in a dedicated branch (not ``master``). Branch name " +"must match your task folder." msgstr "" -#: ../../user_guide/submit_work.rst:74 -msgid "Provide the full task definition in the pull request's description." +#: ../../../../docs/user_guide/submit_work.rst:224 +msgid "Notes" msgstr "" -#: ../../user_guide/submit_work.rst:76 -msgid "Example pull request can be found in the repository's pull requests." +#: ../../../../docs/user_guide/submit_work.rst:225 +msgid "" +"All classes should live in a unique namespace (e.g., " +"``__``)." msgstr "" -#: ../../user_guide/submit_work.rst:78 +#: ../../../../docs/user_guide/submit_work.rst:226 msgid "" -"Work on your forked repository. Keep your work on a separate branch (not " -"on ``master``)!!! Name your branch the same as your task's folder. To " -"create a branch, run:" +"Keep tests deterministic and within time limits; prefer env vars over " +"sleeps." msgstr "" -#: ../../user_guide/submit_work.rst:84 -msgid "**Failing to follow the rules will result in a red project build.**" +#: ../../../../docs/user_guide/submit_work.rst:227 +msgid "" +"Follow code style (clang-format/clang-tidy), and run pre-commit hooks " +"locally." msgstr "" +#~ msgid "" +#~ "Navigate into the newly created folder" +#~ " and begin your work on the " +#~ "task. The folder must contain only " +#~ "4 directories with files:" +#~ msgstr "" + +#~ msgid "There must be 10 executable files for running:" +#~ msgstr "" + +#~ msgid "" +#~ "``__tests``. For example, ``omp_perf_tests``" +#~ " - an executable file for performance" +#~ " tests of OpenMP practice tasks." +#~ msgstr "" + +#~ msgid "How to submit your work" +#~ msgstr "" + +#~ msgid "" +#~ "There are ``all``, ``mpi``, ``omp``, " +#~ "``seq``, ``stl``, ``tbb`` folders in the" +#~ " ``tasks`` directory. Move to a " +#~ "folder of your task. Create a " +#~ "directory named ``__``." +#~ msgstr "" + +#~ msgid "" +#~ "Example: ``seq/nesterov_a_vector_sum``. Please name" +#~ " all tasks **with the same** name " +#~ "directory. If the ``seq`` task is " +#~ "named ``seq/nesterov_a_vector_sum``, then the " +#~ "``omp`` task must be named " +#~ "``omp/nesterov_a_vector_sum``." +#~ msgstr "" + +#~ msgid "" +#~ "Navigate into the newly created folder" +#~ " and begin your work on the " +#~ "task. The folder must contain the " +#~ "following directories:" +#~ msgstr "" + +#~ msgid "" +#~ "``data`` - Directory with own data" +#~ " files for functional testing of the" +#~ " task." +#~ msgstr "" + +#~ msgid "" +#~ "``func_tests`` - Directory with Google " +#~ "tests for functional testing of the " +#~ "task." +#~ msgstr "" + +#~ msgid "``include`` - Directory for header files with function prototypes." +#~ msgstr "" + +#~ msgid "" +#~ "``perf_tests`` - Directory with Google " +#~ "tests for performance testing. The " +#~ "number of tests must be 2: " +#~ "``run_task`` and ``run_pipeline``." +#~ msgstr "" + +#~ msgid "" +#~ "``src`` - Directory with source " +#~ "files containing the function implementations." +#~ msgstr "" + +#~ msgid "" +#~ "Executables are generated in ``build/bin`` " +#~ "(or ``install/bin`` if installed): - " +#~ "``core_func_tests`` — core library tests " +#~ "- ``ppc_func_tests`` — functional tests " +#~ "for all tasks/technologies - " +#~ "``ppc_perf_tests`` — performance tests for " +#~ "all tasks/technologies" +#~ msgstr "" + +#~ msgid "" +#~ "Use gtest filters (the test runner " +#~ "applies them automatically) to select " +#~ "technology-specific suites, e.g. ``*_omp_*``, " +#~ "``*_mpi*``, ``*_seq_*``, ``*_tbb_*``, ``*_stl_*``," +#~ " ``*_all*``." +#~ msgstr "" + +#~ msgid "" +#~ "All prototypes and classes in the " +#~ "``include`` directory must be namespace-" +#~ "escaped. Name your namespace as follows:" +#~ msgstr "" + +#~ msgid "Name your group of tests and individual test cases as follows:" +#~ msgstr "" + +#~ msgid "For functional tests (for maximum coverage):" +#~ msgstr "" + +#~ msgid "" +#~ "For performance tests (only 2 tests " +#~ "- ``pipeline`` and ``task`` - no " +#~ "more no less):" +#~ msgstr "" + +#~ msgid "Name your pull request as follows:" +#~ msgstr "" + +#~ msgid "For tasks:" +#~ msgstr "" + +#~ msgid "Provide the full task definition in the pull request's description." +#~ msgstr "" + +#~ msgid "Example pull request can be found in the repository's pull requests." +#~ msgstr "" + +#~ msgid "" +#~ "Work on your forked repository. Keep " +#~ "your work on a separate branch " +#~ "(not on ``master``)!!! Name your branch" +#~ " the same as your task's folder. " +#~ "To create a branch, run:" +#~ msgstr "" + +#~ msgid "**Failing to follow the rules will result in a red project build.**" +#~ msgstr "" + +#~ msgid "" +#~ "This section reflects the current " +#~ "integration flow used in semester " +#~ "repositories (see example PR: ppc-2025" +#~ "-processes-informatics #6)." +#~ msgstr "" + +#~ msgid "" +#~ "Description should include: - Полное " +#~ "описание задачи; номер варианта; используемая" +#~ " технология - Краткое описание реализации" +#~ " и отчёта - Чек-лист (CI зелёный " +#~ "в форке, clang-format/clang-tidy " +#~ "пройдены, функциональные/перф тесты ок, ветка" +#~ " названа как директория задачи, " +#~ "достоверность сведений). См. пример PR." +#~ msgstr "" + +#~ msgid "" +#~ "This section reflects the current " +#~ "integration flow used in semester " +#~ "repositories." +#~ msgstr "" + diff --git a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po index 093279aa2..8d82fb1c8 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po @@ -2,18 +2,19 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-09 00:23+0100\n" +"POT-Creation-Date: 2025-10-24 14:15+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -21,47 +22,70 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../common_information/introduction.rst:2 +#: ../../../../docs/common_information/introduction.rst:2 msgid "Introduction" msgstr "Вводная информация" -#: ../../common_information/introduction.rst:5 +#: ../../../../docs/common_information/introduction.rst:5 +msgid "Contacts" +msgstr "Контакты" + +#: ../../../../docs/common_information/introduction.rst:7 +msgid "Alexander Nesterov — nesterov.alexander@outlook.com" +msgstr "Александр Нестеров — nesterov.alexander@outlook.com" + +#: ../../../../docs/common_information/introduction.rst:8 +msgid "Arseniy Obolenskiy — me@gooddoog.ru" +msgstr "Арсений Оболенский — me@gooddoog.ru" + +#: ../../../../docs/common_information/introduction.rst:11 msgid "Practice" msgstr "Практика" -#: ../../common_information/introduction.rst:7 +#: ../../../../docs/common_information/introduction.rst:13 msgid "We work online" msgstr "Работа происходит в режиме online" -#: ../../common_information/introduction.rst:9 +#: ../../../../docs/common_information/introduction.rst:15 msgid "Use GitHub repository" msgstr "Используется GitHub репозиторий" -#: ../../common_information/introduction.rst:10 +#: ../../../../docs/common_information/introduction.rst:16 msgid "Use Pull Requests" msgstr "Для задач задействуются Pull Request'ы" -#: ../../common_information/introduction.rst:11 +#: ../../../../docs/common_information/introduction.rst:17 msgid "Merge into the master branch" msgstr "Рабочая git-ветка курса - master" -#: ../../common_information/introduction.rst:12 +#: ../../../../docs/common_information/introduction.rst:18 msgid "Test verification" msgstr "Используются различные виды тестирования" -#: ../../common_information/introduction.rst:14 +#: ../../../../docs/common_information/introduction.rst:20 msgid "Task distribution is random for each student." msgstr "Распределение задач производится случайным образом для каждого человека" -#: ../../common_information/introduction.rst:15 +#: ../../../../docs/common_information/introduction.rst:21 msgid "" -"An example for each technology can be found in the corresponding " -"directory: ``tasks//example``." -msgstr "" -"Пример для каждой технологии находится в директории: " -"``tasks//example``." +"Full automation of quality and performance checks; plagiarism checks are " +"applied." +msgstr "Полная автоматизация проверок качества и производительности; проводится проверка на плагиат." + +#: ../../../../docs/common_information/introduction.rst:22 +msgid "" +"Deadlines are set per task. See the penalties and grading rules in " +"``Points``." +msgstr "Дедлайны задаются на каждую задачу. Подробности в разделе ``Баллы``." -#: ../../common_information/introduction.rst:16 +#: ../../../../docs/common_information/introduction.rst:23 +msgid "" +"Examples are provided in ``tasks/example_threads`` and " +"``tasks/example_processes`` (and extended variations " +"``tasks/example_processes_2`` / ``tasks/example_processes_3``)." +msgstr "Примеры размещены в ``tasks/example_threads`` и ``tasks/example_processes`` (а также расширенные варианты: ``tasks/example_processes_2`` / ``tasks/example_processes_3``)." + +#: ../../../../docs/common_information/introduction.rst:24 msgid "" "In each repository, the README.md contains a link to the course " "documentation (**read it fully!!!**)." @@ -69,17 +93,17 @@ msgstr "" "В каждом из репозиториев в README.md находится документация курса " "(просьба читать полностью!!!)" -#: ../../common_information/introduction.rst:17 +#: ../../../../docs/common_information/introduction.rst:25 msgid "" "Additionally, each repository includes an example of a properly formatted" " PULL REQUEST." msgstr "Также в каждом репозитории представлен пример оформления PULL REQUEST'а" -#: ../../common_information/introduction.rst:18 +#: ../../../../docs/common_information/introduction.rst:26 msgid "Submission of all tasks is mandatory to pass the course." msgstr "Все задачи обязательны к выполнению" -#: ../../common_information/introduction.rst:19 +#: ../../../../docs/common_information/introduction.rst:27 msgid "" "A task that has been merged into the master branch continues to be " "monitored. If a task fails in the master, it is disabled, and a record of" @@ -93,15 +117,55 @@ msgstr "" "задача упала (падение теста) в мастере, она отключается, и запись об этом" " добавляется в таблицу результатов. Все отключенные (не исправленные) " "задания в конце семестра приведут к обнулению баллов за их выполнение. " -"Можно увидеть, что ваша задача является отключенной, по следующему признаку: " -"имя директории вашей задачи будет изменено с " +"Можно увидеть, что ваша задача является отключенной, по следующему " +"признаку: имя директории вашей задачи будет изменено с " "``seq/nesterov_a_vector_sum`` на ``seq/nesterov_a_vector_sum_disabled``" -#: ../../common_information/introduction.rst:24 +#: ../../../../docs/common_information/introduction.rst:34 +msgid "Communication" +msgstr "Коммуникации" + +#: ../../../../docs/common_information/introduction.rst:36 +msgid "Telegram channel — announcements and quick updates" +msgstr "Канал в Telegram — объявления и быстрые обновления" + +#: ../../../../docs/common_information/introduction.rst:37 +msgid "GitHub Issues — repository problems and bug reports" +msgstr "GitHub Issues — проблемы репозитория и отчёты об ошибках" + +#: ../../../../docs/common_information/introduction.rst:38 +msgid "Lessons — Q&A" +msgstr "Занятия — вопросы и ответы" + +#: ../../../../docs/common_information/introduction.rst:39 +msgid "Feedback form — critical issues" +msgstr "Форма обратной связи — критические вопросы" + +#: ../../../../docs/common_information/introduction.rst:40 +msgid "Email — non‑urgent matters" +msgstr "Email — некритичные вопросы" + +#: ../../../../docs/common_information/introduction.rst:43 +msgid "Next steps" +msgstr "Следующие шаги" + +#: ../../../../docs/common_information/introduction.rst:45 +msgid "" +"Practice 1 (intro): task distribution, brief talk on parallelism, MPI " +"examples" +msgstr "Практика 1 (вводная): раздача вариантов, кратко о параллелизме, примеры MPI" + +#: ../../../../docs/common_information/introduction.rst:46 +msgid "" +"Practice 2 (repo usage): repository checks and project structure " +"walkthrough" +msgstr "Практика 2 (работа с репозиторием): проверки, обзор структуры проекта" + +#: ../../../../docs/common_information/introduction.rst:48 msgid "All resources for using the repository will be provided here:" msgstr "Все материалы по использованию репозитория будут представлены здесь:" -#: ../../common_information/introduction.rst:26 +#: ../../../../docs/common_information/introduction.rst:50 msgid "" "`Git for half an hour: A Beginner’s Guide `__" @@ -109,7 +173,7 @@ msgstr "" "`Git за полчаса: руководство для начинающих `__" -#: ../../common_information/introduction.rst:27 +#: ../../../../docs/common_information/introduction.rst:51 #, python-format msgid "" "`Getting Started with Git and GitHub: A Beginner’s Guide " @@ -120,7 +184,7 @@ msgstr "" "`__" -#: ../../common_information/introduction.rst:28 +#: ../../../../docs/common_information/introduction.rst:52 msgid "" "`Git: A Quick Start Guide to Using Core Operations with Explanations " "`__" @@ -128,7 +192,7 @@ msgstr "" "`Git. Быстрый старт по использованию основных операций с объяснениями " "`__" -#: ../../common_information/introduction.rst:29 +#: ../../../../docs/common_information/introduction.rst:53 msgid "" "`Conflicts resolving in Git " "`__" @@ -136,21 +200,21 @@ msgstr "" "`Разрешение конфликтов в Git " "`__" -#: ../../common_information/introduction.rst:30 +#: ../../../../docs/common_information/introduction.rst:54 msgid "`Google testing framework (gtest) `__" -msgstr "" +msgstr "`Фреймворк модульного тестирования Google (gtest) `__" -#: ../../common_information/introduction.rst:31 +#: ../../../../docs/common_information/introduction.rst:55 msgid "" "`GoogleTest Primer " "`__" -msgstr "" +msgstr "`Введение в GoogleTest `__" -#: ../../common_information/introduction.rst:32 +#: ../../../../docs/common_information/introduction.rst:56 msgid "`GitHub Actions documentation `__" msgstr "`GitHub Actions документация `__" -#: ../../common_information/introduction.rst:33 +#: ../../../../docs/common_information/introduction.rst:57 msgid "" "`Parallel Programming Technologies. Message Passing Interface (MPI) " "`__" @@ -158,7 +222,7 @@ msgstr "" "`Технологии параллельного программирования. Message Passing Interface " "(MPI) `__" -#: ../../common_information/introduction.rst:34 +#: ../../../../docs/common_information/introduction.rst:58 msgid "" "`Typing and Layout in the System LaTeX `__" @@ -166,7 +230,7 @@ msgstr "" "`Набор и вёрстка в системе LaTeX `__" -#: ../../common_information/introduction.rst:35 +#: ../../../../docs/common_information/introduction.rst:59 msgid "" "`LaTeX for the beginners " "`__" @@ -174,11 +238,11 @@ msgstr "" "`LaTeX для начинающих " "`__" -#: ../../common_information/introduction.rst:36 +#: ../../../../docs/common_information/introduction.rst:60 msgid "`What is OpenMP? `__" msgstr "`Что такое OpenMP? `__" -#: ../../common_information/introduction.rst:37 +#: ../../../../docs/common_information/introduction.rst:61 msgid "" "`TBB-1 " "`__" @@ -187,7 +251,7 @@ msgstr "" "Библиотека Intel Threading Building Blocks " "`__" -#: ../../common_information/introduction.rst:38 +#: ../../../../docs/common_information/introduction.rst:62 msgid "" "`Writing Multithreaded Applications in C++ `__" @@ -195,7 +259,7 @@ msgstr "" "`Написание многопоточных приложений на C++ `__" -#: ../../common_information/introduction.rst:39 +#: ../../../../docs/common_information/introduction.rst:63 msgid "" "`Multithreading: New Features of the C++11 Standard " "`__" -#: ../../common_information/introduction.rst:40 +#: ../../../../docs/common_information/introduction.rst:64 msgid "" "`Introduction to Parallel Computing " "`__" @@ -213,7 +277,7 @@ msgstr "" "`Введение в параллельные вычисления " "`__" -#: ../../common_information/introduction.rst:42 +#: ../../../../docs/common_information/introduction.rst:66 msgid "" "\\* *All instructions, repositories, and tables may be updated during the" " learning process for better usability. Be prepared for changes, check " @@ -223,3 +287,10 @@ msgstr "" "учебного процесса для более удобного использования, будьте готовы к " "изменениям и периодически проверяйте это!!!!!!*" +#~ msgid "" +#~ "An example for each technology can " +#~ "be found in the corresponding directory:" +#~ " ``tasks//example``." +#~ msgstr "" +#~ "Пример для каждой технологии находится в" +#~ " директории: ``tasks//example``." diff --git a/docs/locale/ru/LC_MESSAGES/common_information/points.po b/docs/locale/ru/LC_MESSAGES/common_information/points.po index 3a6096d65..2acecb54d 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/points.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/points.po @@ -2,18 +2,19 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-09 00:58+0100\n" +"POT-Creation-Date: 2025-10-24 14:15+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -21,393 +22,422 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../common_information/points.rst:2 +#: ../../../../docs/common_information/points.rst:2 msgid "Points" msgstr "Балльно-рейтинговая система" -#: ../../common_information/points.rst:4 -msgid "For “process parallelism” semester" -msgstr "Для семестра, где студенты изучают параллелизм на процессах" - -#: ../../common_information/points.rst:6 -msgid "1st MPI task" -msgstr "Первая MPI задача" - -#: ../../common_information/points.rst:9 ../../common_information/points.rst:17 -#: ../../common_information/points.rst:25 -#: ../../common_information/points.rst:37 -#: ../../common_information/points.rst:45 -#: ../../common_information/points.rst:53 -#: ../../common_information/points.rst:61 -#: ../../common_information/points.rst:70 -msgid "Solution" -msgstr "Решение" - -#: ../../common_information/points.rst:11 -#: ../../common_information/points.rst:27 -#: ../../common_information/points.rst:72 -#: ../../common_information/points.rst:114 -msgid "10" -msgstr "" +#: ../../../../docs/common_information/points.rst:5 +msgid "Overview" +msgstr "Общие положения" -#: ../../common_information/points.rst:14 -msgid "2nd MPI task" -msgstr "Вторая MPI задача" - -#: ../../common_information/points.rst:17 -#: ../../common_information/points.rst:25 -#: ../../common_information/points.rst:45 -#: ../../common_information/points.rst:53 -#: ../../common_information/points.rst:61 -#: ../../common_information/points.rst:70 -msgid "Performance" -msgstr "Производительность" - -#: ../../common_information/points.rst:19 -msgid "15" -msgstr "" +#: ../../../../docs/common_information/points.rst:7 +msgid "Total per semester (Practice): 70 points" +msgstr "Итого за семестр (практика): 70 баллов" -#: ../../common_information/points.rst:19 -#: ../../common_information/points.rst:114 -#: ../../common_information/points.rst:124 -#: ../../common_information/points.rst:136 -msgid "5" -msgstr "" +#: ../../../../docs/common_information/points.rst:8 +msgid "Report points are distributed per task and sum to 10" +msgstr "Баллы за отчёт распределяются по задачам и суммарно равны 10" -#: ../../common_information/points.rst:22 -msgid "3rd MPI task" -msgstr "Третья MPI задача" +#: ../../../../docs/common_information/points.rst:11 +msgid "Processes semester (MPI)" +msgstr "Семестр процессов (MPI)" -#: ../../common_information/points.rst:27 -msgid "20" -msgstr "" - -#: ../../common_information/points.rst:30 -msgid "**Total : 60 points**" -msgstr "**Всего : 60 баллов**" - -#: ../../common_information/points.rst:32 -msgid "For “thread parallelism” semester" -msgstr "Для семестра, где студенты изучают параллелизм на потоках" +#: ../../../../docs/common_information/points.rst:13 +msgid "" +"Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " +"Report: 2" +msgstr "Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 — Отчёт: 2" -#: ../../common_information/points.rst:34 -msgid "Sequential version" -msgstr "Последовательная версия" +#: ../../../../docs/common_information/points.rst:18 +msgid "" +"Task 2 — Total: 23 - Implementation: MPI 12 + Seq 3 - Performance: 5 - " +"Report: 3" +msgstr "Задача 2 — Итого: 23 — Реализация: MPI 12 + Seq 3 — Производительность: 5 — Отчёт: 3" -#: ../../common_information/points.rst:39 -#: ../../common_information/points.rst:125 -#: ../../common_information/points.rst:138 -msgid "4" -msgstr "" +#: ../../../../docs/common_information/points.rst:23 +msgid "" +"Task 3 — Total: 35 - Implementation: MPI 16 + Seq 4 - Performance: 10 - " +"Report: 5" +msgstr "Задача 3 — Итого: 35 — Реализация: MPI 16 + Seq 4 — Производительность: 10 — Отчёт: 5" -#: ../../common_information/points.rst:42 -msgid "OpenMP version" -msgstr "OpenMP версия" +#: ../../../../docs/common_information/points.rst:28 +msgid "Semester total: 70" +msgstr "Итого за семестр: 70" -#: ../../common_information/points.rst:47 -#: ../../common_information/points.rst:55 -#: ../../common_information/points.rst:63 -msgid "6" -msgstr "" +#: ../../../../docs/common_information/points.rst:31 +msgid "Threads semester (OpenMP/TBB/std::thread)" +msgstr "Семестр потоков (OpenMP/TBB/std::thread)" -#: ../../common_information/points.rst:47 -#: ../../common_information/points.rst:55 -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:139 -msgid "3" -msgstr "" +#: ../../../../docs/common_information/points.rst:33 +msgid "seq — Total: 5 (S 4, R 1)" +msgstr "seq — Итого: 5 (S 4, R 1)" -#: ../../common_information/points.rst:50 -msgid "TBB version" -msgstr "TBB версия" +#: ../../../../docs/common_information/points.rst:34 +msgid "omp — Total: 11 (S 6, A 3, R 2)" +msgstr "omp — Итого: 11 (S 6, A 3, R 2)" -#: ../../common_information/points.rst:58 -msgid "std::thread version" -msgstr "std::thread версия" +#: ../../../../docs/common_information/points.rst:35 +msgid "tbb — Total: 11 (S 6, A 3, R 2)" +msgstr "tbb — Итого: 11 (S 6, A 3, R 2)" -#: ../../common_information/points.rst:63 -#: ../../common_information/points.rst:72 -msgid "8" -msgstr "" +#: ../../../../docs/common_information/points.rst:36 +msgid "stl — Total: 16 (S 8, A 6, R 2)" +msgstr "stl — Итого: 16 (S 8, A 6, R 2)" -#: ../../common_information/points.rst:66 -msgid "“MPI + threads” version (The threading technology is chosen randomly)" -msgstr "" -"“MPI + threads” версия (Технология параллелизма на потоках будет выбрана " -"случайным образом)" +#: ../../../../docs/common_information/points.rst:37 +msgid "all — Total: 21 (S 10, A 8, R 3)" +msgstr "all — Итого: 21 (S 10, A 8, R 3)" -#: ../../common_information/points.rst:75 -msgid "**Total : 54 points**" -msgstr "**Всего : 54 балла**" +#: ../../../../docs/common_information/points.rst:39 +msgid "Semester total: 64" +msgstr "Итого за семестр: 64" -#: ../../common_information/points.rst:77 -msgid "The rule for earning performance points." -msgstr "Правило получения баллов за производительность" +#: ../../../../docs/common_information/points.rst:42 +msgid "Performance points mapping" +msgstr "Маппинг баллов за производительность" -#: ../../common_information/points.rst:79 +#: ../../../../docs/common_information/points.rst:44 msgid "" -"The ratio of efficiency percentage to points percentage, where the " -"maximum points is 100% and the minimum points is 0%." -msgstr "" -"Соотношение процента эффективности к проценту баллов за " -"производительность, где максимум баллов - 100%, а минимум баллов - 0% " +"The ratio of efficiency percentage to points percentage (max 100%, min " +"0%):" +msgstr "Соотношение процента эффективности к проценту баллов (макс. 100%, мин. 0%):" -#: ../../common_information/points.rst:81 +#: ../../../../docs/common_information/points.rst:46 msgid "If the score is not an integer, it is rounded up." -msgstr "Если получается не целочисленное значение баллов, то баллы округляются в большую сторону" +msgstr "Если значение не целое, округляется в большую сторону." -#: ../../common_information/points.rst:84 +#: ../../../../docs/common_information/points.rst:49 msgid "Efficiency (%)" msgstr "Эффективность" -#: ../../common_information/points.rst:84 +#: ../../../../docs/common_information/points.rst:49 msgid "Points percentage" msgstr "Процент баллов за производительность" -#: ../../common_information/points.rst:86 +#: ../../../../docs/common_information/points.rst:51 msgid ">= 50%" -msgstr "" +msgstr ">= 50%" -#: ../../common_information/points.rst:86 +#: ../../../../docs/common_information/points.rst:51 msgid "100%" -msgstr "" +msgstr "100%" -#: ../../common_information/points.rst:88 +#: ../../../../docs/common_information/points.rst:53 msgid "[45, 50)" -msgstr "" +msgstr "[45, 50)" -#: ../../common_information/points.rst:88 +#: ../../../../docs/common_information/points.rst:53 msgid "90%" -msgstr "" +msgstr "90%" -#: ../../common_information/points.rst:90 +#: ../../../../docs/common_information/points.rst:55 msgid "[42, 45)" -msgstr "" +msgstr "[42, 45)" -#: ../../common_information/points.rst:90 +#: ../../../../docs/common_information/points.rst:55 msgid "80%" -msgstr "" +msgstr "80%" -#: ../../common_information/points.rst:92 +#: ../../../../docs/common_information/points.rst:57 msgid "[40, 42)" -msgstr "" +msgstr "[40, 42)" -#: ../../common_information/points.rst:92 +#: ../../../../docs/common_information/points.rst:57 msgid "70%" -msgstr "" +msgstr "70%" -#: ../../common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:59 msgid "[37, 40)" -msgstr "" +msgstr "[37, 40)" -#: ../../common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:59 msgid "60%" -msgstr "" +msgstr "60%" -#: ../../common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:61 msgid "[35, 37)" -msgstr "" +msgstr "[35, 37)" -#: ../../common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:61 msgid "50%" -msgstr "" +msgstr "50%" -#: ../../common_information/points.rst:98 +#: ../../../../docs/common_information/points.rst:63 msgid "[32, 35)" -msgstr "" +msgstr "[32, 35)" -#: ../../common_information/points.rst:98 +#: ../../../../docs/common_information/points.rst:63 msgid "40%" -msgstr "" +msgstr "40%" -#: ../../common_information/points.rst:100 +#: ../../../../docs/common_information/points.rst:65 msgid "[30, 32)" -msgstr "" +msgstr "[30, 32)" -#: ../../common_information/points.rst:100 +#: ../../../../docs/common_information/points.rst:65 msgid "30%" -msgstr "" +msgstr "30%" -#: ../../common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:67 msgid "[27, 30)" -msgstr "" +msgstr "[27, 30)" -#: ../../common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:67 msgid "20%" -msgstr "" +msgstr "20%" -#: ../../common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:69 msgid "[25, 27)" -msgstr "" +msgstr "[25, 27)" -#: ../../common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:69 msgid "10%" -msgstr "" +msgstr "10%" -#: ../../common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:71 msgid "< 25%" -msgstr "" +msgstr "< 25%" -#: ../../common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:71 msgid "0%" -msgstr "" +msgstr "0%" -#: ../../common_information/points.rst:109 +#: ../../../../docs/common_information/points.rst:75 msgid "Report" -msgstr "Отчет" +msgstr "Отчёт" -#: ../../common_information/points.rst:112 +#: ../../../../docs/common_information/points.rst:78 msgid "Completeness" msgstr "Наличие всех требуемых пунктов" -#: ../../common_information/points.rst:112 +#: ../../../../docs/common_information/points.rst:78 msgid "Text Quality" msgstr "Качество текста" -#: ../../common_information/points.rst:112 +#: ../../../../docs/common_information/points.rst:78 msgid "Formatting Quality" msgstr "Качество оформления" -#: ../../common_information/points.rst:112 +#: ../../../../docs/common_information/points.rst:78 msgid "Total" msgstr "Итог" -#: ../../common_information/points.rst:114 +#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:103 +msgid "5" +msgstr "5" + +#: ../../../../docs/common_information/points.rst:80 msgid "2.5" -msgstr "" +msgstr "2.5" + +#: ../../../../docs/common_information/points.rst:80 +msgid "10" +msgstr "10" -#: ../../common_information/points.rst:117 -msgid "Conversion of points into exam assessment or pass/fail" -msgstr "Перевод баллов в экзаменационную оценку или зачет/незачет" +#: ../../../../docs/common_information/points.rst:84 +msgid "Conversion to grade" +msgstr "Перевод в оценку" -#: ../../common_information/points.rst:119 -msgid "For 5-point grading system" -msgstr "5-ти балльная система оценки" +#: ../../../../docs/common_information/points.rst:86 +msgid "5-point scale" +msgstr "5-балльная шкала" -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Points range" msgstr "Диапозон баллов" -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Exam Assessment" msgstr "Экзаменационная оценка" -#: ../../common_information/points.rst:122 -#: ../../common_information/points.rst:133 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Student Pass" msgstr "Зачет" -#: ../../common_information/points.rst:124 +#: ../../../../docs/common_information/points.rst:91 msgid "[87, 100]" -msgstr "" - -#: ../../common_information/points.rst:124 -#: ../../common_information/points.rst:125 -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:135 -#: ../../common_information/points.rst:136 -#: ../../common_information/points.rst:137 -#: ../../common_information/points.rst:138 -#: ../../common_information/points.rst:139 +msgstr "[87, 100]" + +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:92 +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:103 +#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:105 +#: ../../../../docs/common_information/points.rst:106 msgid "Passed" msgstr "Зачет" -#: ../../common_information/points.rst:125 +#: ../../../../docs/common_information/points.rst:92 msgid "[70, 87)" -msgstr "" +msgstr "[70, 87)" -#: ../../common_information/points.rst:126 -#: ../../common_information/points.rst:139 +#: ../../../../docs/common_information/points.rst:92 +#: ../../../../docs/common_information/points.rst:105 +msgid "4" +msgstr "4" + +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:106 msgid "[50, 70)" -msgstr "" +msgstr "[50, 70)" + +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:106 +msgid "3" +msgstr "3" -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "< 50" -msgstr "" +msgstr "< 50" -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "2" -msgstr "" +msgstr "2" -#: ../../common_information/points.rst:127 -#: ../../common_information/points.rst:140 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "Not Passed" msgstr "Незачет" -#: ../../common_information/points.rst:130 -msgid "For 7-point grading system **(our current system)**" -msgstr "7-ми балльная система оценки **(наша текущая система)**" +#: ../../../../docs/common_information/points.rst:97 +msgid "7-point scale (current)" +msgstr "7-балльная шкала (текущая)" -#: ../../common_information/points.rst:135 +#: ../../../../docs/common_information/points.rst:102 msgid "[99, 100]" -msgstr "" +msgstr "[99, 100]" -#: ../../common_information/points.rst:135 +#: ../../../../docs/common_information/points.rst:102 msgid "5.5" -msgstr "" +msgstr "5.5" -#: ../../common_information/points.rst:136 +#: ../../../../docs/common_information/points.rst:103 msgid "[92, 99)" -msgstr "" +msgstr "[92, 99)" -#: ../../common_information/points.rst:137 +#: ../../../../docs/common_information/points.rst:104 msgid "[82, 92)" -msgstr "" +msgstr "[82, 92)" -#: ../../common_information/points.rst:137 +#: ../../../../docs/common_information/points.rst:104 msgid "4.5" -msgstr "" +msgstr "4.5" -#: ../../common_information/points.rst:138 +#: ../../../../docs/common_information/points.rst:105 msgid "[70, 82)" -msgstr "" +msgstr "[70, 82)" -#: ../../common_information/points.rst:143 -msgid "Penalties:" -msgstr "Штрафные санкции:" +#: ../../../../docs/common_information/points.rst:111 +msgid "Penalties" +msgstr "Штрафные санкции" -#: ../../common_information/points.rst:145 +#: ../../../../docs/common_information/points.rst:113 msgid "A deadline will be set for each version." msgstr "Для каждой версии будет установлен свой крайний срок сдачи." -#: ../../common_information/points.rst:146 -msgid "" -"1 point is deducted from the version’s score for each day of delay in " -"submission." -msgstr "За каждый день просрочки из оценки версии вычитается 1 балл" +#: ../../../../docs/common_information/points.rst:114 +msgid "1 point is deducted from the version’s score for each day of delay." +msgstr "За каждый день просрочки из оценки версии вычитается 1 балл." -#: ../../common_information/points.rst:147 +#: ../../../../docs/common_information/points.rst:115 msgid "" -"The task is considered submitted when it is merged into the master/main " -"branch." -msgstr "Задание считается выполненным, когда оно попал в master/main ветку." +"A task is considered submitted when it is merged into the default branch " +"after a successful CI pipeline." +msgstr "Задание считается сданным, когда оно влито в ветку по умолчанию после успешного прохождения CI." -#: ../../common_information/points.rst:148 +#: ../../../../docs/common_information/points.rst:116 msgid "" -"The submission time is defined as the timestamp of the last commit that " -"successfully passes the CI pipeline." -msgstr "" -"Фиксированное время сдачи работы определяется как время последнего " -"коммита, который успешно прошел CI." +"The submission time is defined as the timestamp of the last successful CI" +" commit." +msgstr "Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." -#: ../../common_information/points.rst:150 -msgid "Comments:" +#: ../../../../docs/common_information/points.rst:119 +msgid "Comments" msgstr "Комментарии" -#: ../../common_information/points.rst:152 +#: ../../../../docs/common_information/points.rst:121 msgid "It is forbidden to write the report if all tasks are not completed." msgstr "" "Запрещено писать отчет, если не выполнены все задания, которые связаны с " "этим отчетом." -#: ../../common_information/points.rst:153 +#: ../../../../docs/common_information/points.rst:122 msgid "" -"Please keep in mind that one week before the end of the semester, the " -"repository will be closed for final assessment." -msgstr "" -"Просьба иметь ввиду, что за неделю до конца семестра репозиторий будет " -"закрыт для подведения окончательных итогов." +"One week before the end of the semester, the repository is closed for " +"final assessment." +msgstr "За неделю до конца семестра репозиторий закрывается для подведения итогов." + +#~ msgid "1st MPI task" +#~ msgstr "Первая MPI задача" + +#~ msgid "Solution" +#~ msgstr "Решение" + +#~ msgid "2nd MPI task" +#~ msgstr "Вторая MPI задача" + +#~ msgid "Performance" +#~ msgstr "Производительность" + +#~ msgid "15" +#~ msgstr "" + +#~ msgid "3rd MPI task" +#~ msgstr "Третья MPI задача" + +#~ msgid "20" +#~ msgstr "" + +#~ msgid "**Total : 60 points**" +#~ msgstr "**Всего : 60 баллов**" + +#~ msgid "For “thread parallelism” semester" +#~ msgstr "Для семестра, где студенты изучают параллелизм на потоках" + +#~ msgid "Sequential version" +#~ msgstr "Последовательная версия" + +#~ msgid "OpenMP version" +#~ msgstr "OpenMP версия" + +#~ msgid "6" +#~ msgstr "" + +#~ msgid "TBB version" +#~ msgstr "TBB версия" + +#~ msgid "std::thread version" +#~ msgstr "std::thread версия" + +#~ msgid "8" +#~ msgstr "" + +#~ msgid "“MPI + threads” version (The threading technology is chosen randomly)" +#~ msgstr "" +#~ "“MPI + threads” версия (Технология " +#~ "параллелизма на потоках будет выбрана " +#~ "случайным образом)" + +#~ msgid "**Total : 54 points**" +#~ msgstr "**Всего : 54 балла**" + +#~ msgid "The rule for earning performance points." +#~ msgstr "Правило получения баллов за производительность" + +#~ msgid "Conversion of points into exam assessment or pass/fail" +#~ msgstr "Перевод баллов в экзаменационную оценку или зачет/незачет" + +#~ msgid "For 5-point grading system" +#~ msgstr "5-ти балльная система оценки" + +#~ msgid "For 7-point grading system **(our current system)**" +#~ msgstr "7-ми балльная система оценки **(наша текущая система)**" diff --git a/docs/locale/ru/LC_MESSAGES/common_information/processes_tasks.po b/docs/locale/ru/LC_MESSAGES/common_information/processes_tasks.po index 3653104aa..4da4dd92a 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/processes_tasks.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/processes_tasks.po @@ -4,7 +4,6 @@ # Programming Course package. # Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" @@ -45,7 +44,7 @@ msgstr "Задача" #: ../../common_information/processes_tasks.rst:71 #: ../../common_information/processes_tasks.rst:124 msgid "1" -msgstr "" +msgstr "1" #: ../../common_information/processes_tasks.rst:10 msgid "Sum of vector elements" @@ -55,7 +54,7 @@ msgstr "Сумма элементов вектора" #: ../../common_information/processes_tasks.rst:73 #: ../../common_information/processes_tasks.rst:126 msgid "2" -msgstr "" +msgstr "2" #: ../../common_information/processes_tasks.rst:12 msgid "Calculating the average value of vector elements" @@ -65,7 +64,7 @@ msgstr "Вычисление среднего значения элементо #: ../../common_information/processes_tasks.rst:75 #: ../../common_information/processes_tasks.rst:128 msgid "3" -msgstr "" +msgstr "3" #: ../../common_information/processes_tasks.rst:14 msgid "Maximum value of vector elements" @@ -75,7 +74,7 @@ msgstr "Максимальное значение элементов векто #: ../../common_information/processes_tasks.rst:77 #: ../../common_information/processes_tasks.rst:130 msgid "4" -msgstr "" +msgstr "4" #: ../../common_information/processes_tasks.rst:16 msgid "Minimum value of vector elements" @@ -85,7 +84,7 @@ msgstr "Минимальное значение элементов вектор #: ../../common_information/processes_tasks.rst:79 #: ../../common_information/processes_tasks.rst:132 msgid "5" -msgstr "" +msgstr "5" #: ../../common_information/processes_tasks.rst:18 msgid "" @@ -98,7 +97,7 @@ msgstr "Нахождение числа чередований знаков зн #: ../../common_information/processes_tasks.rst:134 #: ../../common_information/processes_tasks.rst:258 msgid "6" -msgstr "" +msgstr "6" #: ../../common_information/processes_tasks.rst:20 msgid "" @@ -110,7 +109,7 @@ msgstr "Нахождение числа нарушений упорядочен #: ../../common_information/processes_tasks.rst:83 #: ../../common_information/processes_tasks.rst:136 msgid "7" -msgstr "" +msgstr "7" #: ../../common_information/processes_tasks.rst:22 msgid "Finding the most similar adjacent elements of the vector" @@ -120,7 +119,7 @@ msgstr "Нахождение наиболее близких соседних э #: ../../common_information/processes_tasks.rst:85 #: ../../common_information/processes_tasks.rst:138 msgid "8" -msgstr "" +msgstr "8" #: ../../common_information/processes_tasks.rst:24 msgid "Finding the most different adjacent elements of the vector" @@ -130,7 +129,7 @@ msgstr "Нахождение наиболее отличающихся по зн #: ../../common_information/processes_tasks.rst:87 #: ../../common_information/processes_tasks.rst:140 msgid "9" -msgstr "" +msgstr "9" #: ../../common_information/processes_tasks.rst:26 msgid "Scalar product of vectors" @@ -140,7 +139,7 @@ msgstr "Скалярное произведение векторов" #: ../../common_information/processes_tasks.rst:89 #: ../../common_information/processes_tasks.rst:142 msgid "10" -msgstr "" +msgstr "10" #: ../../common_information/processes_tasks.rst:28 msgid "Sum of matrix elements" @@ -150,7 +149,7 @@ msgstr "Сумма элементов матрицы" #: ../../common_information/processes_tasks.rst:91 #: ../../common_information/processes_tasks.rst:144 msgid "11" -msgstr "" +msgstr "11" #: ../../common_information/processes_tasks.rst:30 msgid "Sum of values by rows in the matrix" @@ -160,7 +159,7 @@ msgstr "Сумма значений по строкам матрицы" #: ../../common_information/processes_tasks.rst:93 #: ../../common_information/processes_tasks.rst:147 msgid "12" -msgstr "" +msgstr "12" #: ../../common_information/processes_tasks.rst:32 msgid "Sum of values by columns in the matrix" @@ -170,7 +169,7 @@ msgstr "Сумма значений по столбцам матрицы" #: ../../common_information/processes_tasks.rst:95 #: ../../common_information/processes_tasks.rst:150 msgid "13" -msgstr "" +msgstr "13" #: ../../common_information/processes_tasks.rst:34 msgid "Maximum value of matrix elements" @@ -180,7 +179,7 @@ msgstr "Максимальное значение элементов матри #: ../../common_information/processes_tasks.rst:97 #: ../../common_information/processes_tasks.rst:153 msgid "14" -msgstr "" +msgstr "14" #: ../../common_information/processes_tasks.rst:36 msgid "Minimum value of matrix elements" @@ -190,7 +189,7 @@ msgstr "Минимальное значение элементов матриц #: ../../common_information/processes_tasks.rst:99 #: ../../common_information/processes_tasks.rst:155 msgid "15" -msgstr "" +msgstr "15" #: ../../common_information/processes_tasks.rst:38 msgid "Finding maximum values by rows in the matrix" @@ -200,7 +199,7 @@ msgstr "Нахождение максимальных значений по ст #: ../../common_information/processes_tasks.rst:101 #: ../../common_information/processes_tasks.rst:157 msgid "16" -msgstr "" +msgstr "16" #: ../../common_information/processes_tasks.rst:40 msgid "Finding maximum values by columns in the matrix" @@ -210,7 +209,7 @@ msgstr "Нахождение максимальных значений по ст #: ../../common_information/processes_tasks.rst:103 #: ../../common_information/processes_tasks.rst:159 msgid "17" -msgstr "" +msgstr "17" #: ../../common_information/processes_tasks.rst:42 msgid "Finding minimum values by rows in the matrix" @@ -220,7 +219,7 @@ msgstr "Нахождение минимальных значений по стр #: ../../common_information/processes_tasks.rst:105 #: ../../common_information/processes_tasks.rst:161 msgid "18" -msgstr "" +msgstr "18" #: ../../common_information/processes_tasks.rst:44 msgid "Finding minimum values by columns in the matrix" @@ -230,7 +229,7 @@ msgstr "Нахождение минимальных значений по сто #: ../../common_information/processes_tasks.rst:107 #: ../../common_information/processes_tasks.rst:163 msgid "19" -msgstr "" +msgstr "19" #: ../../common_information/processes_tasks.rst:46 msgid "Integration – rectangle method" @@ -240,7 +239,7 @@ msgstr "Интегрирование – метод прямоугольнико #: ../../common_information/processes_tasks.rst:109 #: ../../common_information/processes_tasks.rst:165 msgid "20" -msgstr "" +msgstr "20" #: ../../common_information/processes_tasks.rst:48 msgid "Integration – trapezoidal method" @@ -251,7 +250,7 @@ msgstr "Интегрирование – метод трапеций" #: ../../common_information/processes_tasks.rst:167 #: ../../common_information/processes_tasks.rst:268 msgid "21" -msgstr "" +msgstr "21" #: ../../common_information/processes_tasks.rst:50 msgid "Integration – Monte Carlo method" @@ -261,7 +260,7 @@ msgstr "Интегрирование – метод Монте-Карло" #: ../../common_information/processes_tasks.rst:113 #: ../../common_information/processes_tasks.rst:169 msgid "22" -msgstr "" +msgstr "22" #: ../../common_information/processes_tasks.rst:52 msgid "Counting the number of alphabetical characters in a string" @@ -271,7 +270,7 @@ msgstr "Подсчет числа буквенных символов в стр #: ../../common_information/processes_tasks.rst:115 #: ../../common_information/processes_tasks.rst:171 msgid "23" -msgstr "" +msgstr "23" #: ../../common_information/processes_tasks.rst:54 msgid "Counting the frequency of a character in a string" @@ -280,7 +279,7 @@ msgstr "Подсчет частоты символа в строке" #: ../../common_information/processes_tasks.rst:56 #: ../../common_information/processes_tasks.rst:173 msgid "24" -msgstr "" +msgstr "24" #: ../../common_information/processes_tasks.rst:56 msgid "Counting the number of words in a string" @@ -289,7 +288,7 @@ msgstr "Подсчет числа слов в строке" #: ../../common_information/processes_tasks.rst:58 #: ../../common_information/processes_tasks.rst:175 msgid "25" -msgstr "" +msgstr "25" #: ../../common_information/processes_tasks.rst:58 msgid "Counting the number of sentences in a string" @@ -298,7 +297,7 @@ msgstr "Подсчет числа предложений в строке" #: ../../common_information/processes_tasks.rst:60 #: ../../common_information/processes_tasks.rst:177 msgid "26" -msgstr "" +msgstr "26" #: ../../common_information/processes_tasks.rst:60 msgid "Checking lexicographical order of two strings" @@ -307,7 +306,7 @@ msgstr "Проверка лексикографической упорядоче #: ../../common_information/processes_tasks.rst:62 #: ../../common_information/processes_tasks.rst:179 msgid "27" -msgstr "" +msgstr "27" #: ../../common_information/processes_tasks.rst:62 msgid "Counting the number of differing characters between two strings" @@ -555,7 +554,7 @@ msgstr "Линейная фильтрация изображений (верти #: ../../common_information/processes_tasks.rst:181 msgid "28" -msgstr "" +msgstr "28" #: ../../common_information/processes_tasks.rst:181 msgid "Linear image filtering (block partition). Gaussian kernel 3x3." @@ -563,7 +562,7 @@ msgstr "Линейная фильтрация изображений (блочн #: ../../common_information/processes_tasks.rst:183 msgid "29" -msgstr "" +msgstr "29" #: ../../common_information/processes_tasks.rst:183 msgid "Edge detection in an image using the Sobel operator." @@ -571,7 +570,7 @@ msgstr "Выделение ребер на изображении с испол #: ../../common_information/processes_tasks.rst:185 msgid "30" -msgstr "" +msgstr "30" #: ../../common_information/processes_tasks.rst:185 msgid "Contrast enhancement of grayscale image using linear histogram stretching." @@ -579,7 +578,7 @@ msgstr "Повышение контраста полутонового изоб #: ../../common_information/processes_tasks.rst:187 msgid "31" -msgstr "" +msgstr "31" #: ../../common_information/processes_tasks.rst:187 msgid "" @@ -589,7 +588,7 @@ msgstr "Маркировка компонент на бинарном изобр #: ../../common_information/processes_tasks.rst:189 msgid "32" -msgstr "" +msgstr "32" #: ../../common_information/processes_tasks.rst:189 msgid "Convex hull construction for components of a binary image." @@ -626,22 +625,22 @@ msgstr "Комментарии относятся к:" #: ../../common_information/processes_tasks.rst:206 msgid "Variants for task 2" -msgstr "Варинты для второй задачи" +msgstr "Варианты для второй задачи" #: ../../common_information/processes_tasks.rst:206 msgid "Variants for task 3" -msgstr "Варинты для третьей задачи" +msgstr "Варианты для третьей задачи" #: ../../common_information/processes_tasks.rst:208 #: ../../common_information/processes_tasks.rst:235 msgid "1 - 5" -msgstr "" +msgstr "1 - 5" #: ../../common_information/processes_tasks.rst:208 #: ../../common_information/processes_tasks.rst:222 #: ../../common_information/processes_tasks.rst:278 msgid "x" -msgstr "" +msgstr "x" #: ../../common_information/processes_tasks.rst:211 msgid "" @@ -662,7 +661,7 @@ msgstr "ТОПОЛОГИИ СЕТЕЙ ПЕРЕДАЧИ ДАННЫХ. Нужно #: ../../common_information/processes_tasks.rst:266 #: ../../common_information/processes_tasks.rst:276 msgid "Varinats for task 2" -msgstr "Варинты для второй задачи" +msgstr "Варианты для второй задачи" #: ../../common_information/processes_tasks.rst:220 #: ../../common_information/processes_tasks.rst:233 @@ -671,11 +670,11 @@ msgstr "Варинты для второй задачи" #: ../../common_information/processes_tasks.rst:266 #: ../../common_information/processes_tasks.rst:276 msgid "Varinats for task 3" -msgstr "Варинты для третьей задачи" +msgstr "Варианты для третьей задачи" #: ../../common_information/processes_tasks.rst:222 msgid "6 - 10" -msgstr "" +msgstr "6 - 10" #: ../../common_information/processes_tasks.rst:225 msgid "" @@ -687,7 +686,7 @@ msgstr "МАТРИЧНЫЕ ВЫЧИСЛЕНИЯ. В горизонтальной #: ../../common_information/processes_tasks.rst:235 msgid "11 - 14" -msgstr "" +msgstr "11 - 14" #: ../../common_information/processes_tasks.rst:238 msgid "" @@ -700,11 +699,11 @@ msgstr "МАШИННАЯ ГРАФИКА И ОБРАБОТКА ИЗОБРАЖЕН #: ../../common_information/processes_tasks.rst:248 msgid "26 - 27" -msgstr "" +msgstr "26 - 27" #: ../../common_information/processes_tasks.rst:248 msgid "24 - 32" -msgstr "" +msgstr "24 - 32" #: ../../common_information/processes_tasks.rst:251 msgid "SOLUTION OF A SYSTEM OF LINEAR ALGEBRAIC EQUATIONS" @@ -712,7 +711,7 @@ msgstr "РЕШЕНИЕ СИСТЕМЫ ЛИНЕЙНЫХ АЛГЕБРАИЧЕСК #: ../../common_information/processes_tasks.rst:258 msgid "15 - 20" -msgstr "" +msgstr "15 - 20" #: ../../common_information/processes_tasks.rst:261 msgid "SORT ALGORITHMS" @@ -720,7 +719,7 @@ msgstr "АЛГОРИТМЫ СОРТИРОВКИ" #: ../../common_information/processes_tasks.rst:268 msgid "14 - 21" -msgstr "" +msgstr "14 - 21" #: ../../common_information/processes_tasks.rst:271 msgid "GRAPH PROCESSING ALGORITHMS" @@ -728,4 +727,4 @@ msgstr "АЛГОРИТМЫ НА ГРАФАХ" #: ../../common_information/processes_tasks.rst:278 msgid "22 - 23" -msgstr "" +msgstr "22 - 23" diff --git a/docs/locale/ru/LC_MESSAGES/common_information/report.po b/docs/locale/ru/LC_MESSAGES/common_information/report.po index a32a3b588..16d5aa117 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/report.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/report.po @@ -2,18 +2,19 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-08 23:43+0100\n" +"POT-Creation-Date: 2025-10-24 15:06+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -21,163 +22,278 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../common_information/report.rst:2 +#: ../../../../docs/common_information/report.rst:2 msgid "Report" -msgstr "Отчет" +msgstr "Отчёт" -#: ../../common_information/report.rst:4 +#: ../../../../docs/common_information/report.rst:5 +msgid "Overview and placement" +msgstr "Общее и размещение" + +#: ../../../../docs/common_information/report.rst:6 +msgid "" +"The report is a Markdown file placed inside your task directory: " +"``tasks/__/report.md``." +msgstr "Отчёт — это Markdown‑файл в папке вашей задачи: ``tasks/<фамилия>_<инициал>_<краткое>/report.md``." + +#: ../../../../docs/common_information/report.rst:8 +msgid "" +"Presence of ``report.md`` is required to receive report (R) points for " +"that task (see ``Points``)." +msgstr "Наличие ``report.md`` обязательно для получения отчётных (R) баллов по этой задаче (см. «Баллы»)." + +#: ../../../../docs/common_information/report.rst:9 +msgid "" +"Write the report in a concise, reproducible manner. Use English or " +"Russian consistently." +msgstr "Пишите отчёт кратко и воспроизводимо. Используйте один язык последовательно (русский или английский)." + +#: ../../../../docs/common_information/report.rst:12 msgid "Report points" -msgstr "Баллы за отчет" +msgstr "Баллы за отчёт" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:14 +#: ../../../../docs/common_information/report.rst:15 msgid "Completeness" msgstr "Наличие всех требуемых пунктов" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:27 +#: ../../../../docs/common_information/report.rst:15 msgid "Text Quality" msgstr "Качество текста" -#: ../../common_information/report.rst:7 ../../common_information/report.rst:34 +#: ../../../../docs/common_information/report.rst:15 msgid "Formatting Quality" msgstr "Качество оформления" -#: ../../common_information/report.rst:7 +#: ../../../../docs/common_information/report.rst:15 msgid "Total" msgstr "Всего" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "5" -msgstr "" +msgstr "5" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "2.5" -msgstr "" +msgstr "2.5" -#: ../../common_information/report.rst:9 +#: ../../../../docs/common_information/report.rst:17 msgid "10" -msgstr "" +msgstr "10" -#: ../../common_information/report.rst:12 -msgid "Requirements for Criteria" -msgstr "Требования к критериям" +#: ../../../../docs/common_information/report.rst:21 +msgid "Recommended structure" +msgstr "Рекомендуемая структура" -#: ../../common_information/report.rst:16 -msgid "Introduction (can be a short paragraph)" -msgstr "Введение (допустимо на абзац)" +#: ../../../../docs/common_information/report.rst:22 +msgid "Introduction (short context and goal)" +msgstr "Введение (краткий контекст и цель)" -#: ../../common_information/report.rst:17 -msgid "Problem Statement (descriptive)" -msgstr "Постановка задачи (содержательная)" +#: ../../../../docs/common_information/report.rst:23 +msgid "Problem Statement (task definition and constraints)" +msgstr "Постановка задачи (определение и ограничения)" -#: ../../common_information/report.rst:18 -msgid "Algorithm Description" -msgstr "Описание алгоритма" +#: ../../../../docs/common_information/report.rst:24 +msgid "Algorithm Description (baseline/sequential)" +msgstr "Описание алгоритма (базового/последовательного)" -#: ../../common_information/report.rst:19 -msgid "Description of the Parallel Algorithm Scheme" -msgstr "Описание схемы параллельного алгоритма" +#: ../../../../docs/common_information/report.rst:25 +msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" +msgstr "Схема распараллеливания (для MPI — топология/обмены, для потоков — декомпозиция и планирование)" -#: ../../common_information/report.rst:20 -msgid "" -"Description of the MPI, OpenMP, TBB, std::threads, all versions " -"(depending on the semester) – part of the software implementation " -"description" -msgstr "Описание OpenMP-версии и TBB-версии или MPI-версии (смотря какой семестр) - пункт описания программной реализации" +#: ../../../../docs/common_information/report.rst:26 +msgid "Implementation Details per technology used (only those in your semester)" +msgstr "Детали реализации по используемым технологиям (только требуемые в семестре)" -#: ../../common_information/report.rst:21 +#: ../../../../docs/common_information/report.rst:27 msgid "" -"Experimental Results (execution time and algorithm quality assessment), " -"description of correctness verification" -msgstr "Результаты экспериментов (по времени работы и оценке качества работы алогритма), описание подтверждения корректности" +"Experimental Results - Environment (CPU, OS, compiler, build type; " +"thread/process counts) - Execution time tables/plots; performance metrics" +" (speedup/efficiency) - Correctness checks description" +msgstr "Экспериментальные результаты — Окружение (CPU/OS/компилятор/тип сборки; числа потоков/процессов) — Таблицы/графики времени; метрики ускорения/эффективности — Описание проверки корректности" -#: ../../common_information/report.rst:22 -msgid "Conclusions from the Results" -msgstr "Выводы из результатов" +#: ../../../../docs/common_information/report.rst:31 +msgid "Conclusions (what worked, what didn’t, further work)" +msgstr "Выводы (что получилось, ограничения, дальнейшие работы)" -#: ../../common_information/report.rst:23 -msgid "Conclusion" -msgstr "Заключение" +#: ../../../../docs/common_information/report.rst:32 +msgid "References (articles, docs; provide links)" +msgstr "Источники (статьи, документация; ссылки)" -#: ../../common_information/report.rst:24 -msgid "References" -msgstr "Список литературы" +#: ../../../../docs/common_information/report.rst:33 +msgid "Appendix (optional code snippets; keep readable)" +msgstr "Приложение (небольшие фрагменты кода; сохраняйте читаемость)" -#: ../../common_information/report.rst:25 -msgid "Appendix (include code, ensuring readability)" -msgstr "Приложение (вставить код, сохранить его читаемость)" +#: ../../../../docs/common_information/report.rst:36 +msgid "Evaluation criteria" +msgstr "Критерии оценки" -#: ../../common_information/report.rst:29 -msgid "Meaningfulness" -msgstr "Осмысленность" - -#: ../../common_information/report.rst:30 -msgid "Coherence" -msgstr "Связность" - -#: ../../common_information/report.rst:31 -msgid "Clarity" -msgstr "Понятность" - -#: ../../common_information/report.rst:32 -msgid "Quality of language (only the most obvious mistakes are considered)" -msgstr "Качество языка (рассматриваются только самые очевидные ошибки)" - -#: ../../common_information/report.rst:36 -msgid "Requirements for Headings" -msgstr "Требования к заголовкам" - -#: ../../common_information/report.rst:37 -msgid "Requirements for Text Alignment" -msgstr "Требования к выравниванию текста" - -#: ../../common_information/report.rst:38 -msgid "Requirements for Paragraph Indentation" -msgstr "Требования к абзацным отступам" - -#: ../../common_information/report.rst:39 -msgid "Requirements for the Formatting of Figures, Graphs, and Tables" -msgstr "Требования к оформлению рисунков, графиков и таблиц" +#: ../../../../docs/common_information/report.rst:37 +msgid "" +"Completeness - All items from the recommended structure are present and " +"meaningful - Results include both correctness and performance evidence" +msgstr "Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны — есть подтверждение корректности и результатов производительности" -#: ../../common_information/report.rst:40 +#: ../../../../docs/common_information/report.rst:40 msgid "" -"The “Teacher” field must include the full name, position, and title of " -"the lecturer" -msgstr "В графе преподаватель должны стоять ФИО, должность и звание лектора" +"Text Quality - Clarity, coherence, correct terminology; acceptable " +"language quality" +msgstr "Качество текста — ясность, связность, корректная терминология; приемлемое качество языка" -#: ../../common_information/report.rst:42 -msgid "Comments" -msgstr "Комментарии" +#: ../../../../docs/common_information/report.rst:42 +msgid "" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" +" blocks - Figures/plots with captions and relative paths; readable " +"formatting" +msgstr "Качество оформления — корректные Markdown‑заголовки, списки, таблицы, блоки кода — рисунки/графики с подписями и относительными путями; читаемое форматирование" -#: ../../common_information/report.rst:44 -msgid "Failure to meet the requirements will result in a deduction of points." -msgstr "За невыполнение требований следует снижение баллов." +#: ../../../../docs/common_information/report.rst:47 +msgid "Notes" +msgstr "Примечания" -#: ../../common_information/report.rst:45 +#: ../../../../docs/common_information/report.rst:48 msgid "" -"The request will include points and comments regarding any requirement " -"violations (if applicable)." -msgstr "В реквесте будут писаться баллы и комментарии по поводу нарушения требований (если таковые имеются)" +"Reports are reviewed online in the Pull Request. The final grade is based" +" on the submitted version that passes the review." +msgstr "Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по версии, прошедшей ревью." -#: ../../common_information/report.rst:46 +#: ../../../../docs/common_information/report.rst:49 msgid "" -"The report will be checked only once, and the grade will be assigned " -"based on the submitted version according to the requirements." -msgstr "Отчет будет проверяться один раз, по версии отчета будет выставлена оценка согласно требованиям" +"If the task is disabled at the end of semester (e.g., fails in master; " +"see scoreboard “blue zone”), report points for that task are nullified." +msgstr "Если задача окажется в «синей зоне» к концу семестра (например, падение в master), отчётные баллы по этой задаче обнуляются." -#: ../../common_information/report.rst:47 +#: ../../../../docs/common_information/report.rst:50 msgid "" -"The report is reviewed online; the entire review process takes place in " -"the request." -msgstr "Отчет проверяется заочно, вся проверка проходит в реквесте, очно отчет НЕ сдается." +"Plagiarism is prohibited; identical or near‑duplicate reports will be " +"rejected." +msgstr "Плагиат запрещён; совпадающие или почти совпадающие отчёты будут отклонены." + +#: ../../../../docs/common_information/report.rst:55 +msgid "Markdown template (report.md)" +msgstr "Шаблон Markdown (report.md)" -#: ../../common_information/report.rst:48 +#: ../../../../docs/common_information/report.rst:57 msgid "" -"If a student falls into the **blue zone** for the task, the report points" -" will also be nullified at the end of the semester. The report will be " -"finally accepted and merged into the master branch only after both the " -"**online** parts of the corresponding lab work are fully completed." -msgstr "Если студент попал в синюю зону по задаче, баллы за отчет также " -"обнуляются в конце семестра. Отчет окончательно будет " -"принят и попадет в мастер, когда будет полностью сдана " -"очно и заочно лабораторная работа, " -"по которой был сделан отчет." +"Use the following skeleton as a starting point for your ``report.md``. " +"Keep file paths relative to the task directory (for images/data)." +msgstr "Используйте следующий скелет для вашего ``report.md``. Пути к файлам указывайте относительно папки задачи (для изображений/данных)." + +#~ msgid "Requirements for Criteria" +#~ msgstr "Требования к критериям" + +#~ msgid "Description of the Parallel Algorithm Scheme" +#~ msgstr "Описание схемы параллельного алгоритма" + +#~ msgid "" +#~ "Description of the MPI, OpenMP, TBB, " +#~ "std::threads, all versions (depending on " +#~ "the semester) – part of the " +#~ "software implementation description" +#~ msgstr "" +#~ "Описание OpenMP-версии и TBB-версии или " +#~ "MPI-версии (смотря какой семестр) - " +#~ "пункт описания программной реализации" + +#~ msgid "" +#~ "Experimental Results (execution time and " +#~ "algorithm quality assessment), description of" +#~ " correctness verification" +#~ msgstr "" +#~ "Результаты экспериментов (по времени работы" +#~ " и оценке качества работы алогритма), " +#~ "описание подтверждения корректности" + +#~ msgid "Conclusions from the Results" +#~ msgstr "Выводы из результатов" + +#~ msgid "Conclusion" +#~ msgstr "Заключение" + +#~ msgid "References" +#~ msgstr "Список литературы" + +#~ msgid "Meaningfulness" +#~ msgstr "Осмысленность" + +#~ msgid "Coherence" +#~ msgstr "Связность" + +#~ msgid "Clarity" +#~ msgstr "Понятность" + +#~ msgid "Quality of language (only the most obvious mistakes are considered)" +#~ msgstr "Качество языка (рассматриваются только самые очевидные ошибки)" + +#~ msgid "Requirements for Headings" +#~ msgstr "Требования к заголовкам" + +#~ msgid "Requirements for Text Alignment" +#~ msgstr "Требования к выравниванию текста" + +#~ msgid "Requirements for Paragraph Indentation" +#~ msgstr "Требования к абзацным отступам" + +#~ msgid "Requirements for the Formatting of Figures, Graphs, and Tables" +#~ msgstr "Требования к оформлению рисунков, графиков и таблиц" + +#~ msgid "" +#~ "The “Teacher” field must include the " +#~ "full name, position, and title of " +#~ "the lecturer" +#~ msgstr "В графе преподаватель должны стоять ФИО, должность и звание лектора" + +#~ msgid "Comments" +#~ msgstr "Комментарии" + +#~ msgid "Failure to meet the requirements will result in a deduction of points." +#~ msgstr "За невыполнение требований следует снижение баллов." + +#~ msgid "" +#~ "The request will include points and " +#~ "comments regarding any requirement violations" +#~ " (if applicable)." +#~ msgstr "" +#~ "В реквесте будут писаться баллы и " +#~ "комментарии по поводу нарушения требований " +#~ "(если таковые имеются)" + +#~ msgid "" +#~ "The report will be checked only " +#~ "once, and the grade will be " +#~ "assigned based on the submitted version" +#~ " according to the requirements." +#~ msgstr "" +#~ "Отчет будет проверяться один раз, по " +#~ "версии отчета будет выставлена оценка " +#~ "согласно требованиям" + +#~ msgid "" +#~ "The report is reviewed online; the " +#~ "entire review process takes place in " +#~ "the request." +#~ msgstr "" +#~ "Отчет проверяется заочно, вся проверка " +#~ "проходит в реквесте, очно отчет НЕ " +#~ "сдается." + +#~ msgid "" +#~ "If a student falls into the **blue" +#~ " zone** for the task, the report " +#~ "points will also be nullified at " +#~ "the end of the semester. The " +#~ "report will be finally accepted and " +#~ "merged into the master branch only " +#~ "after both the **online** parts of " +#~ "the corresponding lab work are fully " +#~ "completed." +#~ msgstr "" +#~ "Если студент попал в синюю зону по" +#~ " задаче, баллы за отчет также " +#~ "обнуляются в конце семестра. Отчет " +#~ "окончательно будет принят и попадет в" +#~ " мастер, когда будет полностью сдана " +#~ "очно и заочно лабораторная работа, по" +#~ " которой был сделан отчет." + +#~ msgid "Russian template (report.md)" +#~ msgstr "" diff --git a/docs/locale/ru/LC_MESSAGES/common_information/threading_tasks.po b/docs/locale/ru/LC_MESSAGES/common_information/threading_tasks.po index 9d938ac4e..8fda42e05 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/threading_tasks.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/threading_tasks.po @@ -4,7 +4,6 @@ # Programming Course package. # Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" @@ -35,7 +34,7 @@ msgstr "Задача" #: ../../common_information/threading_tasks.rst:7 msgid "1" -msgstr "" +msgstr "1" #: ../../common_information/threading_tasks.rst:7 msgid "" @@ -45,7 +44,7 @@ msgstr "Умножение плотных матриц. Элементы тип #: ../../common_information/threading_tasks.rst:9 msgid "2" -msgstr "" +msgstr "2" #: ../../common_information/threading_tasks.rst:9 msgid "" @@ -55,7 +54,7 @@ msgstr "Умножение плотных матриц. Элементы тип #: ../../common_information/threading_tasks.rst:11 msgid "3" -msgstr "" +msgstr "3" #: ../../common_information/threading_tasks.rst:11 msgid "" @@ -65,7 +64,7 @@ msgstr "Умножение плотных матриц. Элементы тип #: ../../common_information/threading_tasks.rst:13 msgid "4" -msgstr "" +msgstr "4" #: ../../common_information/threading_tasks.rst:13 msgid "" @@ -75,7 +74,7 @@ msgstr "Умножение разреженных матриц. Элементы #: ../../common_information/threading_tasks.rst:15 msgid "5" -msgstr "" +msgstr "5" #: ../../common_information/threading_tasks.rst:15 msgid "" @@ -85,7 +84,7 @@ msgstr "Умножение разреженных матриц. Элементы #: ../../common_information/threading_tasks.rst:17 msgid "6" -msgstr "" +msgstr "6" #: ../../common_information/threading_tasks.rst:17 msgid "" @@ -95,7 +94,7 @@ msgstr "Умножение разреженных матриц. Элементы #: ../../common_information/threading_tasks.rst:19 msgid "7" -msgstr "" +msgstr "7" #: ../../common_information/threading_tasks.rst:19 msgid "" @@ -105,7 +104,7 @@ msgstr "Умножение разреженных матриц. Элементы #: ../../common_information/threading_tasks.rst:21 msgid "8" -msgstr "" +msgstr "8" #: ../../common_information/threading_tasks.rst:21 msgid "Solving systems of linear equations using the conjugate gradient method." @@ -113,7 +112,7 @@ msgstr "Решение систем линейных уравнений мето #: ../../common_information/threading_tasks.rst:23 msgid "9" -msgstr "" +msgstr "9" #: ../../common_information/threading_tasks.rst:23 msgid "" @@ -123,7 +122,7 @@ msgstr "Вычисление многомерных интегралов с ис #: ../../common_information/threading_tasks.rst:25 msgid "10" -msgstr "" +msgstr "10" #: ../../common_information/threading_tasks.rst:25 msgid "" @@ -133,7 +132,7 @@ msgstr "Вычисление многомерных интегралов с ис #: ../../common_information/threading_tasks.rst:27 msgid "11" -msgstr "" +msgstr "11" #: ../../common_information/threading_tasks.rst:27 msgid "" @@ -143,7 +142,7 @@ msgstr "Вычисление многомерных интегралов с ис #: ../../common_information/threading_tasks.rst:29 msgid "12" -msgstr "" +msgstr "12" #: ../../common_information/threading_tasks.rst:29 msgid "Computing multidimensional integrals using the Monte Carlo method." @@ -151,7 +150,7 @@ msgstr "Вычисление многомерных интегралов мет #: ../../common_information/threading_tasks.rst:31 msgid "13" -msgstr "" +msgstr "13" #: ../../common_information/threading_tasks.rst:31 msgid "Quick sort with simple merging." @@ -159,7 +158,7 @@ msgstr "Сортировка Хоара с простым слиянием." #: ../../common_information/threading_tasks.rst:33 msgid "14" -msgstr "" +msgstr "14" #: ../../common_information/threading_tasks.rst:33 msgid "Quick sort with odd-even merging (Batcher's method)." @@ -167,7 +166,7 @@ msgstr "Сортировка Хоара с четно-нечетным слия #: ../../common_information/threading_tasks.rst:35 msgid "15" -msgstr "" +msgstr "15" #: ../../common_information/threading_tasks.rst:35 msgid "Shell sort with simple merging." @@ -175,7 +174,7 @@ msgstr "Сортировка Шелла с простым слиянием." #: ../../common_information/threading_tasks.rst:37 msgid "16" -msgstr "" +msgstr "16" #: ../../common_information/threading_tasks.rst:37 msgid "Shell sort with odd-even merging (Batcher's method)." @@ -183,7 +182,7 @@ msgstr "Сортировка Шелла с четно-нечетным слия #: ../../common_information/threading_tasks.rst:39 msgid "17" -msgstr "" +msgstr "17" #: ../../common_information/threading_tasks.rst:39 msgid "Radix sort for integers with simple merging." @@ -191,7 +190,7 @@ msgstr "Поразрядная сортировка для целых чисел #: ../../common_information/threading_tasks.rst:41 msgid "18" -msgstr "" +msgstr "18" #: ../../common_information/threading_tasks.rst:41 msgid "Radix sort for integers with odd-even merging (Batcher's method)." @@ -199,7 +198,7 @@ msgstr "Поразрядная сортировка для целых чисел #: ../../common_information/threading_tasks.rst:43 msgid "19" -msgstr "" +msgstr "19" #: ../../common_information/threading_tasks.rst:43 msgid "Radix sort for floating-point numbers (type double) with simple merging." @@ -207,7 +206,7 @@ msgstr "Поразрядная сортировка для вещественн #: ../../common_information/threading_tasks.rst:45 msgid "20" -msgstr "" +msgstr "20" #: ../../common_information/threading_tasks.rst:45 msgid "" @@ -217,7 +216,7 @@ msgstr "Поразрядная сортировка для вещественн #: ../../common_information/threading_tasks.rst:47 msgid "21" -msgstr "" +msgstr "21" #: ../../common_information/threading_tasks.rst:47 msgid "Shortest path search from one vertex (Dijkstra's algorithm)." @@ -225,7 +224,7 @@ msgstr "Поиск кратчайших путей из одной вершин #: ../../common_information/threading_tasks.rst:49 msgid "22" -msgstr "" +msgstr "22" #: ../../common_information/threading_tasks.rst:49 msgid "Convex hull construction – Graham's scan." @@ -233,7 +232,7 @@ msgstr "Построение выпуклой оболочки – проход #: ../../common_information/threading_tasks.rst:51 msgid "23" -msgstr "" +msgstr "23" #: ../../common_information/threading_tasks.rst:51 msgid "Convex hull construction – Jarvis's march." @@ -241,7 +240,7 @@ msgstr "Построение выпуклой оболочки – проход #: ../../common_information/threading_tasks.rst:53 msgid "24" -msgstr "" +msgstr "24" #: ../../common_information/threading_tasks.rst:53 msgid "Linear image filtering (horizontal partition). Gaussian kernel 3x3." @@ -249,7 +248,7 @@ msgstr "Линейная фильтрация изображений (гориз #: ../../common_information/threading_tasks.rst:55 msgid "25" -msgstr "" +msgstr "25" #: ../../common_information/threading_tasks.rst:55 msgid "Linear image filtering (vertical partition). Gaussian kernel 3x3." @@ -257,7 +256,7 @@ msgstr "Линейная фильтрация изображений (верти #: ../../common_information/threading_tasks.rst:57 msgid "26" -msgstr "" +msgstr "26" #: ../../common_information/threading_tasks.rst:57 msgid "Linear image filtering (block partition). Gaussian kernel 3x3." @@ -265,7 +264,7 @@ msgstr "Линейная фильтрация изображений (блочн #: ../../common_information/threading_tasks.rst:59 msgid "27" -msgstr "" +msgstr "27" #: ../../common_information/threading_tasks.rst:59 msgid "Edge detection in an image using the Sobel operator." @@ -273,7 +272,7 @@ msgstr "Выделение ребер на изображении с испол #: ../../common_information/threading_tasks.rst:61 msgid "28" -msgstr "" +msgstr "28" #: ../../common_information/threading_tasks.rst:61 msgid "Contrast enhancement of grayscale image using linear histogram stretching." @@ -281,7 +280,7 @@ msgstr "Повышение контраста полутонового изоб #: ../../common_information/threading_tasks.rst:63 msgid "29" -msgstr "" +msgstr "29" #: ../../common_information/threading_tasks.rst:63 msgid "" @@ -291,7 +290,7 @@ msgstr "Маркировка компонент на бинарном изобр #: ../../common_information/threading_tasks.rst:65 msgid "30" -msgstr "" +msgstr "30" #: ../../common_information/threading_tasks.rst:65 msgid "Convex hull construction for components of a binary image." diff --git a/docs/locale/ru/LC_MESSAGES/index.po b/docs/locale/ru/LC_MESSAGES/index.po index c594e6ba1..083cf835b 100644 --- a/docs/locale/ru/LC_MESSAGES/index.po +++ b/docs/locale/ru/LC_MESSAGES/index.po @@ -4,7 +4,6 @@ # Programming Course package. # Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" @@ -44,4 +43,3 @@ msgstr "" #~ msgid "Common Information:" #~ msgstr "" - diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/api.po b/docs/locale/ru/LC_MESSAGES/user_guide/api.po index 7379ae505..ce7c244c7 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/api.po @@ -8,11 +8,12 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-08-22 21:38+0200\n" +"POT-Creation-Date: 2025-10-24 15:06+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -72,3 +73,26 @@ msgstr "Вспомогательный модуль (модуль с утили msgid "Performance Module" msgstr "Модуль измерения производительности" +#~ msgid "Functions" +#~ msgstr "Функции" + +#~ msgid "Parameters" +#~ msgstr "Параметры" + +#~ msgid "Returns" +#~ msgstr "Возвращаемые значения" + +#~ msgid "Typedefs" +#~ msgstr "Псевдонимы типов" + +#~ msgid "Template Parameters" +#~ msgstr "Параметры шаблона" + +#~ msgid "Enums" +#~ msgstr "Перечисления" + +#~ msgid "Throws" +#~ msgstr "Исключения" + +#~ msgid "Variables" +#~ msgstr "Переменные" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/build.po b/docs/locale/ru/LC_MESSAGES/user_guide/build.po index a6cc4131e..73d26ad6a 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/build.po @@ -2,73 +2,91 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-20 23:19+0100\n" +"POT-Creation-Date: 2025-10-24 14:15+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/build.rst:2 +#: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" msgstr "Построение проекта с помощью системы сборки ``CMake``" -#: ../../user_guide/build.rst:4 -msgid "Navigate to a source code folder." -msgstr "Перейдите в корень директории проекта" +#: ../../../../docs/user_guide/build.rst:4 +msgid "Navigate to the project root." +msgstr "Перейдите в корень проекта." -#: ../../user_guide/build.rst:6 +#: ../../../../docs/user_guide/build.rst:6 msgid "**Configure the build**: ``Makefile``, ``.sln``, etc." msgstr "**Конфигурация проекта**: ``Makefile``, ``.sln``, и т.д." -#: ../../user_guide/build.rst:13 +#: ../../../../docs/user_guide/build.rst:12 +msgid "Optional: enable sanitizers for local debugging" +msgstr "Дополнительно: включите санитайзеры для локальной отладки" + +#: ../../../../docs/user_guide/build.rst:18 msgid "*Help on CMake keys:*" msgstr "*Важные CMake ключи для конфигурации проекта:*" -#: ../../user_guide/build.rst:20 +#: ../../../../docs/user_guide/build.rst:21 msgid "``-D USE_FUNC_TESTS=ON`` enable functional tests." msgstr "``-D USE_FUNC_TESTS=ON`` включает функциональные тесты." -#: ../../user_guide/build.rst:21 +#: ../../../../docs/user_guide/build.rst:22 msgid "``-D USE_PERF_TESTS=ON`` enable performance tests." msgstr "``-D USE_PERF_TESTS=ON`` включает тесты на производительность." -#: ../../user_guide/build.rst:22 +#: ../../../../docs/user_guide/build.rst:23 msgid "``-D CMAKE_BUILD_TYPE=Release`` normal build (default)." msgstr "``-D CMAKE_BUILD_TYPE=Release`` нормальная сборка (по умолчанию)." -#: ../../user_guide/build.rst:23 -msgid "``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or running ``valgrind`` to keep debug information." -msgstr "``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` рекомендуется при использовании санитайзеров или запуске ``valgrind`` для сохранения отладочной информации." +#: ../../../../docs/user_guide/build.rst:24 +msgid "" +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " +"or running ``valgrind`` to keep debug information." +msgstr "" +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` рекомендуется при использовании " +"санитайзеров или запуске ``valgrind`` для сохранения отладочной " +"информации." -#: ../../user_guide/build.rst:24 +#: ../../../../docs/user_guide/build.rst:26 msgid "``-D CMAKE_BUILD_TYPE=Debug`` for debugging sessions." msgstr "``-D CMAKE_BUILD_TYPE=Debug`` используется при отладке." -#: ../../user_guide/build.rst:24 +#: ../../../../docs/user_guide/build.rst:28 msgid "*A corresponding flag can be omitted if it's not needed.*" -msgstr "*Ряд CMake флагов может быть выключен, если они не требуются для выполнения работы.*" +msgstr "" +"*Ряд CMake флагов может быть выключен, если они не требуются для " +"выполнения работы.*" -#: ../../user_guide/build.rst:26 +#: ../../../../docs/user_guide/build.rst:30 msgid "**Build the project**:" msgstr "**Построение проекта**:" -#: ../../user_guide/build.rst:32 -msgid "**Check the task**:" -msgstr "**Проверка задач**:" +#: ../../../../docs/user_guide/build.rst:36 +msgid "**Run tests**:" +msgstr "**Запуск тестов**:" + +#: ../../../../docs/user_guide/build.rst:38 +msgid "Prefer the helper runner described in ``User Guide → CI``." +msgstr "Рекомендуется использовать вспомогательный раннер, описанный в «Инструкция → CI»." + +#~ msgid "Navigate to a source code folder." +#~ msgstr "Перейдите в корень директории проекта" -#: ../../user_guide/build.rst:34 -msgid "Run ``/build/bin``" -msgstr "Запустите ``/build/bin``" +#~ msgid "Run ``/build/bin``" +#~ msgstr "Запустите ``/build/bin``" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po index 494f28d3e..5f637db34 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po @@ -2,18 +2,19 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-27 12:32+0200\n" +"POT-Creation-Date: 2025-10-24 18:02+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -21,131 +22,413 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../user_guide/ci.rst:2 +#: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" msgstr "Непрерывная интеграция" -#: ../../user_guide/ci.rst:4 +#: ../../../../docs/user_guide/ci.rst:5 +msgid "Overview" +msgstr "Общие сведения" + +#: ../../../../docs/user_guide/ci.rst:6 msgid "" -"Students need to pass all the checks in the CI pipeline before their work" -" can be considered for submission. This includes successful code " -"checkout, build ans testing stages. Each integration is verified by an " -"automated build and automated tests." +"Your pull request must pass all required CI checks before review/merge. " +"The pipeline validates formatting and static analysis, builds on all " +"platforms, runs functional tests (threads and MPI), measures performance," +" builds docs, and publishes artifacts (coverage report, docs, " +"scoreboard)." msgstr "" -"Студенты должны пройти все проверки в конвейере CI, прежде чем начнется " -"проверка работы студентами и преподавателями. Это включает в себя " -"успешную проверку кода, а также стадии построения и тестирования. Каждая" -" интеграция проверяется автоматизированной сборкой и автоматизированными " -"тестами." +"Ваш pull request должен пройти все обязательные проверки CI перед " +"ревью/слиянием. Конвейер проверяет форматирование и статический анализ, " +"собирает проект на всех платформах, запускает функциональные тесты " +"(потоки и MPI), измеряет производительность, собирает документацию и " +"публикует артефакты (отчёт по покрытию, документация, табло)." -#: ../../user_guide/ci.rst:9 -msgid "CI Pipeline" -msgstr "CI конвейер" +#: ../../../../docs/user_guide/ci.rst:9 +msgid "High‑level pipeline" +msgstr "Общая схема конвейера" -#: ../../user_guide/ci.rst:11 -msgid "The CI pipeline for this project is illustrated in the following diagram:" -msgstr "CI конвейер для данного проекта выражается с помощью наглядной схемы:" +#: ../../../../docs/user_guide/ci.rst:11 +msgid "" +"Pre-commit checks (fast) — runs repository hooks on changed files; fix " +"locally via ``pre-commit run -a``." +msgstr "" +"Проверки pre-commit (быстро) — запускает хуки репозитория на изменённых " +"файлах; исправляйте локально командой ``pre-commit run -a``." -#: ../../user_guide/ci.rst:13 -msgid "CI Pipeline Diagram" -msgstr "Схема CI конвейера" +#: ../../../../docs/user_guide/ci.rst:13 +msgid "" +"Platform builds and tests (Ubuntu, macOS, Windows) — Ubuntu (GCC/Clang, " +"amd64+arm), macOS (Clang), Windows (MSVC/Clang‑CL); functional tests via " +"``scripts/run_tests.py`` for threads (``--counts 1 2 3 4``; extended ``5 " +"7 11 13``) and processes (MPI, ``--counts 1 2 3 4``)." +msgstr "" +"Сборки и тесты на платформах (Ubuntu, macOS, Windows) — Ubuntu " +"(GCC/Clang, amd64+arm), macOS (Clang), Windows (MSVC/Clang‑CL); " +"функциональные тесты через ``scripts/run_tests.py`` для потоков " +"(``--counts 1 2 3 4``; расширенно ``5 7 11 13``) и процессов (MPI, " +"``--counts 1 2 3 4``)." -#: ../../user_guide/ci.rst:18 -msgid "Running ``scripts/run_tests.py``" -msgstr "Запуск ``scripts/run_tests.py``" +#: ../../../../docs/user_guide/ci.rst:15 +msgid "" +"Sanitizers (Ubuntu/Clang) — Address/UB/Leak; tests use ``PPC_ASAN_RUN=1``" +" to skip valgrind." +msgstr "" +"Санитайзеры (Ubuntu/Clang) — Address/UB/Leak; тесты запускаются с " +"``PPC_ASAN_RUN=1`` для пропуска valgrind." -#: ../../user_guide/ci.rst:20 +#: ../../../../docs/user_guide/ci.rst:17 msgid "" -"Automated tests are executed through the ``scripts/run_tests.py`` helper." -" The script requires several environment variables to be defined:" +"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to " +"Codecov and uploads ``cov-report`` (HTML)." msgstr "" -"Автоматические тесты запускаются с помощью вспомогательного скрипта " -"``scripts/run_tests.py``. Для его работы следует задать несколько переменных " -"окружения:" +"Покрытие (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; публикация в " +"Codecov и загрузка артефакта ``cov-report`` (HTML)." -#: ../../user_guide/ci.rst:23 -msgid "``PPC_NUM_THREADS``" +#: ../../../../docs/user_guide/ci.rst:19 +msgid "" +"Performance (perf) — ``scripts/generate_perf_results.sh`` produces " +"``build/perf_stat_dir``; uploads ``perf-stat`` (Linux) and ``perf-stat-" +"macos`` (macOS)." msgstr "" +"Производительность (perf) — ``scripts/generate_perf_results.sh`` " +"формирует ``build/perf_stat_dir``; загружаются артефакты ``perf-stat`` " +"(Linux) и ``perf-stat-macos`` (macOS)." -#: ../../user_guide/ci.rst:24 +#: ../../../../docs/user_guide/ci.rst:21 msgid "" -"Number of threads to use. The value is also exported as " -"``OMP_NUM_THREADS``." +"Pages (docs and scoreboard) — builds Doxygen XML and Sphinx (EN+RU) + " +"scoreboard; on ``master`` deploys with coverage to GitHub Pages." msgstr "" -"Количество потоков для запуска. Это же значение экспортируется в " -"``OMP_NUM_THREADS``." +"Pages (документация и табло) — сборка Doxygen XML и Sphinx (EN+RU) + " +"табло; в ветке ``master`` деплой вместе с покрытием на GitHub Pages." -#: ../../user_guide/ci.rst:27 -msgid "``PPC_NUM_PROC``" +#: ../../../../docs/user_guide/ci.rst:23 +msgid "" +"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU" +" pragma``), scheduled CodeQL (C++/Python) and OpenSSF Scorecard." msgstr "" +"Безопасность и статический анализ — clang‑tidy в PR (избегайте " +"``NOLINT``/``IWYU pragma``), плановые CodeQL (C++/Python) и OpenSSF " +"Scorecard." + +#: ../../../../docs/user_guide/ci.rst:26 +msgid "Diagram" +msgstr "Схема" + +#: ../../../../docs/user_guide/ci.rst:27 +msgid "The pipeline is illustrated below (blocks may be collapsed in GitHub UI):" +msgstr "Схема конвейера приведена ниже (в UI GitHub блоки могут сворачиваться):" + +#: ../../../../docs/user_guide/ci.rst:29 +msgid "CI pipeline (pre-commit → OS builds/tests → perf → pages)" +msgstr "Конвейер CI (pre-commit → сборки/тесты на ОС → perf → pages)" + +#: ../../../../docs/user_guide/ci.rst:34 +msgid "Running tests locally" +msgstr "Локальный запуск тестов" + +#: ../../../../docs/user_guide/ci.rst:36 +msgid "Use the ``scripts/run_tests.py`` helper. Common environment variables:" +msgstr "" +"Используйте вспомогательный скрипт ``scripts/run_tests.py``. Основные " +"переменные окружения:" + +#: ../../../../docs/user_guide/ci.rst:38 +msgid "``PPC_NUM_THREADS``" +msgstr "``PPC_NUM_THREADS``" + +#: ../../../../docs/user_guide/ci.rst:39 +msgid "Number of threads (also exported as ``OMP_NUM_THREADS``)." +msgstr "Количество потоков (также экспортируется в ``OMP_NUM_THREADS``)." -#: ../../user_guide/ci.rst:28 +#: ../../../../docs/user_guide/ci.rst:41 +msgid "``PPC_NUM_PROC``" +msgstr "``PPC_NUM_PROC``" + +#: ../../../../docs/user_guide/ci.rst:42 msgid "Number of MPI processes to launch." msgstr "Количество процессов MPI, которые нужно запустить." -#: ../../user_guide/ci.rst:30 +#: ../../../../docs/user_guide/ci.rst:44 msgid "``PPC_ASAN_RUN``" -msgstr "" +msgstr "``PPC_ASAN_RUN``" -#: ../../user_guide/ci.rst:31 +#: ../../../../docs/user_guide/ci.rst:45 msgid "" "Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " -"(optional, default ``0``)." +"(default ``0``)." msgstr "" -"Установите ``1``, если включены санитайзеры, чтобы пропустить запуск " -"``valgrind`` (необязательно, по умолчанию ``0``)." +"Установите ``1``, если включены санитайзеры, чтобы пропустить запуск под " +"``valgrind`` (по умолчанию ``0``)." -#: ../../user_guide/ci.rst:34 +#: ../../../../docs/user_guide/ci.rst:47 msgid "``PPC_IGNORE_TEST_TIME_LIMIT``" +msgstr "``PPC_IGNORE_TEST_TIME_LIMIT``" + +#: ../../../../docs/user_guide/ci.rst:48 +msgid "Set to ``1`` to disable test time limits (default ``0``)." +msgstr "" +"Установите ``1``, чтобы отключить ограничение времени тестов (по " +"умолчанию ``0``)." + +#: ../../../../docs/user_guide/ci.rst:50 +msgid "" +"Execution modes: - ``--running-type=threads`` — shared-memory backends " +"(OpenMP/TBB/std::thread) - ``--running-type=processes`` — MPI tests - " +"``--running-type=performance`` — performance benchmarks (mirrors CI perf " +"job)" +msgstr "" +"Режимы запуска: — ``--running-type=threads`` — backends с общей памятью " +"(OpenMP/TBB/std::thread); — ``--running-type=processes`` — MPI‑тесты; — " +"``--running-type=performance`` — бенчмарки производительности (как в CI " +"perf)." + +#: ../../../../docs/user_guide/ci.rst:55 +msgid "Examples:" +msgstr "Примеры:" + +#: ../../../../docs/user_guide/ci.rst:71 +msgid "" +"Options: - ``--counts`` runs tests for multiple thread/process counts " +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags " +"(e.g., ``--oversubscribe``). - ``--verbose`` prints every executed " +"command." +msgstr "" +"Опции: — ``--counts`` запускает тесты последовательно для нескольких " +"значений потоков/процессов; — ``--additional-mpi-args`` передаёт " +"дополнительные флаги MPI‑ланчеру (например, ``--oversubscribe``); — " +"``--verbose`` печатает каждую выполняемую команду." + +#: ../../../../docs/user_guide/ci.rst:77 +msgid "Coverage and sanitizers locally" +msgstr "Санитайзеры и покрытие локально" + +#: ../../../../docs/user_guide/ci.rst:78 +msgid "" +"Sanitizers (Linux): configure with ``-D ENABLE_ADDRESS_SANITIZER=ON`` " +"(and optional UB/Leak), run tests with ``PPC_ASAN_RUN=1``." +msgstr "" +"Санитайзеры (Linux): конфигурация с ``-D ENABLE_ADDRESS_SANITIZER=ON`` (и" +" опционально UB/Leak), запуск тестов с ``PPC_ASAN_RUN=1``." + +#: ../../../../docs/user_guide/ci.rst:79 +msgid "" +"Coverage (Linux/GCC): configure with ``-D USE_COVERAGE=ON``, run tests, " +"then generate HTML via ``gcovr`` (see CI ``gcc-build-codecov`` for " +"command line)." +msgstr "" +"Покрытие (Linux/GCC): конфигурация с ``-D USE_COVERAGE=ON``, запуск " +"тестов, затем генерация HTML через ``gcovr`` (см. команду в CI job ``gcc-" +"build-codecov``)." + +#: ../../../../docs/user_guide/ci.rst:82 +msgid "Docs and scoreboard artifacts" +msgstr "Артефакты: документация и табло" + +#: ../../../../docs/user_guide/ci.rst:83 +msgid "" +"Docs: run Doxygen first (``doxygen Doxyfile``), then Sphinx EN/RU via " +"CMake targets ``docs_gettext``, ``docs_update``, ``docs_html``." +msgstr "" +"Документация: сначала запустите Doxygen (``doxygen Doxyfile``), затем " +"Sphinx (EN/RU) через цели CMake ``docs_gettext``, ``docs_update``, " +"``docs_html``." + +#: ../../../../docs/user_guide/ci.rst:84 +msgid "" +"Scoreboard: generate perf stats (``scripts/generate_perf_results.sh``) " +"and build scoreboard target or use ``python3 scoreboard/main.py`` " +"locally." msgstr "" +"Табло: сформируйте статистику (``scripts/generate_perf_results.sh``) и " +"соберите цель табло или воспользуйтесь локально ``python3 " +"scoreboard/main.py``." -#: ../../user_guide/ci.rst:35 -msgid "Set to ``1`` to disable test time limits (optional, default ``0``)." +#: ../../../../docs/user_guide/ci.rst:87 +msgid "Troubleshooting" +msgstr "Диагностика и решения" + +#: ../../../../docs/user_guide/ci.rst:88 +msgid "" +"Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-" +"commit install``) and commit fixes." msgstr "" -"Установите ``1``, чтобы отключить ограничение времени тестов " -"(необязательно, по умолчанию ``0``)." +"Падает pre-commit: запустите локально ``pre-commit run -a`` " +"(предварительно ``pre-commit install``) и закоммитьте исправления." -#: ../../user_guide/ci.rst:37 +#: ../../../../docs/user_guide/ci.rst:89 msgid "" -"The execution mode is selected with ``--running-type``. The most common " -"modes are ``threads`` for shared-memory backends and ``processes`` for " -"MPI based tests. ``performance`` mode runs performance benchmarks." +"Static analysis (clang-tidy) fails: address comments; do not use " +"``NOLINT``/``IWYU pragma`` in task code." msgstr "" -"Режим выполнения выбирается параметром ``--running-type``. Чаще всего " -"используются режимы ``threads`` для бекендов с общей памятью и " -"``processes`` для тестов на основе MPI. Режим ``performance`` запускает " -"бенчмарки производительности." +"Падает статический анализ (clang-tidy): поправьте замечания; не " +"используйте ``NOLINT``/``IWYU pragma`` в коде задач." -#: ../../user_guide/ci.rst:41 -msgid "Example usage:" -msgstr "Пример использования:" +#: ../../../../docs/user_guide/ci.rst:90 +msgid "" +"Tests not found/not running: verify ``settings.json`` enables required " +"technologies and tests exist; see :doc:`submit_work`." +msgstr "" +"Тесты не находятся/не запускаются: проверьте, что в ``settings.json`` " +"включены нужные технологии и тесты существуют; см. :doc:`submit_work`." -#: ../../user_guide/ci.rst:57 +#: ../../../../docs/user_guide/ci.rst:91 msgid "" -"Additional MPI arguments can be supplied with ``--additional-mpi-args`` " -"when running in ``processes`` mode." +"Time limits exceeded: reduce data sizes; prefer env vars " +"(:doc:`environment_variables`) like " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." msgstr "" -"Дополнительные аргументы MPI можно передать через ``--additional-mpi-args`` " -"при запуске в режиме ``processes``." +"Превышены лимиты времени: уменьшите объёмы данных; используйте переменные" +" окружения (:doc:`environment_variables`) вроде " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; избегайте " +"задержек/случайностей." -#: ../../user_guide/ci.rst:60 +#: ../../../../docs/user_guide/ci.rst:92 msgid "" -"The ``--counts`` option allows sequential execution of tests with several" -" thread/process counts. When specified, the script will iterate over the" -" provided values, updating ``PPC_NUM_THREADS`` or ``PPC_NUM_PROC`` " -"accordingly before each run." +"MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-" +"args=\\\"--oversubscribe\\\"``." msgstr "" -"Параметр ``--counts`` позволяет последовательно запускать тесты с несколькими " -"значениями числа потоков или процессов. При его указании скрипт перебирает " -"переданные значения, перед каждым запуском обновляя ``PPC_NUM_THREADS`` или " -"``PPC_NUM_PROC``." +"Проблемы с локальным запуском MPI: задайте ``PPC_NUM_PROC`` и попробуйте " +"``--additional-mpi-args=\"--oversubscribe\"``." -#: ../../user_guide/ci.rst:65 +#: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Use ``--verbose`` to print every command executed by ``run_tests.py``. " -"This can be helpful for debugging CI failures or verifying the exact " -"arguments passed to the test binaries." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " +"Sphinx targets." msgstr "" -"Используйте ``--verbose``, чтобы вывести каждую команду, выполняемую " -"``run_tests.py``. Это помогает отлаживать сбои в CI или проверять точные " -"аргументы, передаваемые тестовым бинарникам." +"Проблемы со сборкой документации: исправьте предупреждения RST; перед " +"целями Sphinx выполните ``doxygen Doxyfile``." + +#: ../../../../docs/user_guide/ci.rst:94 +msgid "" +"Performance job fails: ensure exactly two perf tests (``task`` and " +"``pipeline``) and keep durations within limits." +msgstr "" +"Падает job производительности: убедитесь, что ровно два перфтеста " +"(``task`` и ``pipeline``) и длительность в пределах лимитов." + +#: ../../../../docs/user_guide/ci.rst:97 +msgid "Local clang-tidy and gcovr examples" +msgstr "Примеры локального clang-tidy и gcovr" + +#: ../../../../docs/user_guide/ci.rst:99 +msgid "clang-tidy (static analysis):" +msgstr "clang-tidy (статический анализ):" + +#: ../../../../docs/user_guide/ci.rst:113 +msgid "gcovr (coverage, GCC):" +msgstr "gcovr (покрытие, GCC):" + +#: ../../../../docs/user_guide/ci.rst:141 +msgid "Tooling tips (versions and install)" +msgstr "Подсказки по инструментам (версии и установка)" + +#: ../../../../docs/user_guide/ci.rst:143 +msgid "" +"clang-tidy version - CI uses clang-tidy 21. Prefer the same locally to " +"avoid mismatches. - The helper may be named ``clang-tidy-21`` or ``run-" +"clang-tidy-21`` on some systems." +msgstr "Версия clang-tidy — в CI используется clang-tidy 21. Локально лучше использовать ту же версию, чтобы избежать расхождений. На некоторых системах помощник может называться ``clang-tidy-21`` или ``run-clang-tidy-21``." + +#: ../../../../docs/user_guide/ci.rst:147 +msgid "" +"Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" +"tidy-21``) or use the course Docker image. - gcovr: ``python3 -m pip " +"install gcovr`` or a distro package. - GCC version: use ``gcov-14`` when " +"building with GCC 14 (as in CI)." +msgstr "Linux — clang-tidy: установите из репозитория дистрибутива (например, ``apt install clang-tidy-21``) или используйте Docker‑образ курса. gcovr: ``python3 -m pip install gcovr`` либо пакет дистрибутива. GCC: при сборке с GCC 14 используйте ``gcov-14`` (как в CI)." + +#: ../../../../docs/user_guide/ci.rst:152 +msgid "" +"macOS - clang-tidy: ``brew install llvm``; binary at ``$(brew " +"--prefix)/opt/llvm/bin/clang-tidy``. - Optionally add LLVM to PATH or " +"invoke with full path. - gcovr: ``python3 -m pip install gcovr`` or " +"``brew install gcovr``." +msgstr "macOS — clang-tidy: ``brew install llvm``; бинарник: ``$(brew --prefix)/opt/llvm/bin/clang-tidy``. При необходимости добавьте LLVM в PATH или вызывайте по полному пути. gcovr: ``python3 -m pip install gcovr`` или ``brew install gcovr``." + +#: ../../../../docs/user_guide/ci.rst:157 +msgid "" +"Windows - clang-tidy: install LLVM (Clang) or use ``choco install llvm``;" +" ensure ``clang-tidy.exe`` is in PATH. - gcovr: ``py -m pip install " +"gcovr``. - Coverage is primarily supported in our CI on Linux/GCC; prefer" +" generating reports on Linux." +msgstr "Windows — clang-tidy: установите LLVM (Clang) или ``choco install llvm``; убедитесь, что ``clang-tidy.exe`` доступен в PATH. gcovr: ``py -m pip install gcovr``. Покрытие в основном поддерживается нашим CI на Linux/GCC — предпочтительнее генерировать отчёты на Linux." + +#~ msgid "" +#~ "Students need to pass all the " +#~ "checks in the CI pipeline before " +#~ "their work can be considered for " +#~ "submission. This includes successful code " +#~ "checkout, build ans testing stages. Each" +#~ " integration is verified by an " +#~ "automated build and automated tests." +#~ msgstr "" +#~ "Студенты должны пройти все проверки в" +#~ " конвейере CI, прежде чем начнется " +#~ "проверка работы студентами и преподавателями." +#~ " Это включает в себя успешную " +#~ "проверку кода, а также стадии " +#~ "построения и тестирования. Каждая интеграция" +#~ " проверяется автоматизированной сборкой и " +#~ "автоматизированными тестами." + +#~ msgid "" +#~ "The CI pipeline for this project " +#~ "is illustrated in the following diagram:" +#~ msgstr "CI конвейер для данного проекта выражается с помощью наглядной схемы:" + +#~ msgid "CI Pipeline Diagram" +#~ msgstr "Схема CI конвейера" + +#~ msgid "Running ``scripts/run_tests.py``" +#~ msgstr "Запуск ``scripts/run_tests.py``" + +#~ msgid "" +#~ "Note: In ``threads`` and ``processes`` " +#~ "modes the runner also executes core " +#~ "library tests (``core_func_tests``) before the" +#~ " task tests." +#~ msgstr "" +#~ "Примечание: в режимах ``threads`` и " +#~ "``processes`` runner сначала запускает тесты" +#~ " ядра (``core_func_tests``), а затем тесты" +#~ " задач." + +#~ msgid "" +#~ "Additional MPI arguments can be supplied" +#~ " with ``--additional-mpi-args`` when " +#~ "running in ``processes`` mode." +#~ msgstr "" +#~ "Дополнительные аргументы MPI можно передать" +#~ " через ``--additional-mpi-args`` при " +#~ "запуске в режиме ``processes``." + +#~ msgid "" +#~ "The ``--counts`` option allows sequential " +#~ "execution of tests with several " +#~ "thread/process counts. When specified, the" +#~ " script will iterate over the " +#~ "provided values, updating ``PPC_NUM_THREADS`` " +#~ "or ``PPC_NUM_PROC`` accordingly before each" +#~ " run." +#~ msgstr "" +#~ "Параметр ``--counts`` позволяет последовательно " +#~ "запускать тесты с несколькими значениями " +#~ "числа потоков или процессов. При его " +#~ "указании скрипт перебирает переданные " +#~ "значения, перед каждым запуском обновляя " +#~ "``PPC_NUM_THREADS`` или ``PPC_NUM_PROC``." + +#~ msgid "" +#~ "Use ``--verbose`` to print every command" +#~ " executed by ``run_tests.py``. This can" +#~ " be helpful for debugging CI failures" +#~ " or verifying the exact arguments " +#~ "passed to the test binaries." +#~ msgstr "" +#~ "Используйте ``--verbose``, чтобы вывести " +#~ "каждую команду, выполняемую ``run_tests.py``. " +#~ "Это помогает отлаживать сбои в CI " +#~ "или проверять точные аргументы, передаваемые" +#~ " тестовым бинарникам." diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/download.po b/docs/locale/ru/LC_MESSAGES/user_guide/download.po index c4430876d..07d1fd78e 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/download.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/download.po @@ -4,7 +4,6 @@ # Programming Course package. # Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/environment.po b/docs/locale/ru/LC_MESSAGES/user_guide/environment.po index a70ae2cbe..507691082 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/environment.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/environment.po @@ -2,18 +2,19 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-07-27 12:55+0200\n" +"POT-Creation-Date: 2025-10-24 18:03+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" @@ -21,15 +22,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Generated-By: Babel 2.17.0\n" -#: ../../user_guide/environment.rst:2 +#: ../../../../docs/user_guide/environment.rst:2 msgid "Set Up Your Environment" msgstr "Настройка окружения" -#: ../../user_guide/environment.rst:5 +#: ../../../../docs/user_guide/environment.rst:5 msgid "Development Container (Recommended)" msgstr "Контейнер разработки (Рекомендуется)" -#: ../../user_guide/environment.rst:6 +#: ../../../../docs/user_guide/environment.rst:6 msgid "" "The easiest way to set up your development environment is using the " "provided ``.devcontainer`` configuration with VS Code and Docker." @@ -37,19 +38,19 @@ msgstr "" "Самый простой способ настроить среду разработки - использовать " "предоставленную конфигурацию ``.devcontainer`` с VS Code и Docker." -#: ../../user_guide/environment.rst:8 +#: ../../../../docs/user_guide/environment.rst:8 msgid "**Prerequisites:**" msgstr "**Требования:**" -#: ../../user_guide/environment.rst:10 +#: ../../../../docs/user_guide/environment.rst:10 msgid "`Visual Studio Code `_" msgstr "`Visual Studio Code `_" -#: ../../user_guide/environment.rst:11 +#: ../../../../docs/user_guide/environment.rst:11 msgid "`Docker Desktop `_" msgstr "`Docker Desktop `_" -#: ../../user_guide/environment.rst:12 +#: ../../../../docs/user_guide/environment.rst:12 msgid "" "`Dev Containers extension " "`_" -#: ../../user_guide/environment.rst:14 +#: ../../../../docs/user_guide/environment.rst:14 msgid "**Setup:**" msgstr "**Настройка:**" -#: ../../user_guide/environment.rst:16 +#: ../../../../docs/user_guide/environment.rst:16 msgid "Clone the repository and open it in VS Code" msgstr "Клонируйте репозиторий и откройте его в VS Code" -#: ../../user_guide/environment.rst:17 +#: ../../../../docs/user_guide/environment.rst:17 msgid "" "When prompted, click \"Reopen in Container\" or use Command Palette: " "``Dev Containers: Reopen in Container``" @@ -75,7 +76,7 @@ msgstr "" "При появлении запроса нажмите \"Reopen in Container\" или используйте " "палитру команд: ``Dev Containers: Reopen in Container``" -#: ../../user_guide/environment.rst:18 +#: ../../../../docs/user_guide/environment.rst:18 msgid "" "VS Code will automatically build the container with all dependencies pre-" "installed" @@ -83,23 +84,23 @@ msgstr "" "VS Code автоматически соберет контейнер со всеми предустановленными " "зависимостями" -#: ../../user_guide/environment.rst:19 +#: ../../../../docs/user_guide/environment.rst:19 msgid "The container includes:" msgstr "Контейнер включает:" -#: ../../user_guide/environment.rst:21 +#: ../../../../docs/user_guide/environment.rst:21 msgid "Ubuntu environment with gcc-14, CMake, MPI, OpenMP" msgstr "Окружение Ubuntu с gcc-14, CMake, MPI, OpenMP" -#: ../../user_guide/environment.rst:22 +#: ../../../../docs/user_guide/environment.rst:22 msgid "Pre-configured C++ and Python development tools" msgstr "Предварительно настроенные инструменты разработки C++ и Python" -#: ../../user_guide/environment.rst:23 +#: ../../../../docs/user_guide/environment.rst:23 msgid "All project dependencies ready to use" msgstr "Все зависимости проекта готовы к использованию" -#: ../../user_guide/environment.rst:25 +#: ../../../../docs/user_guide/environment.rst:25 msgid "" "This provides a consistent development environment across all platforms " "without manual dependency installation." @@ -107,11 +108,11 @@ msgstr "" "Это обеспечивает единообразную среду разработки на всех платформах без " "ручной установки зависимостей." -#: ../../user_guide/environment.rst:28 +#: ../../../../docs/user_guide/environment.rst:28 msgid "Manual Setup" msgstr "Ручная настройка" -#: ../../user_guide/environment.rst:30 +#: ../../../../docs/user_guide/environment.rst:30 msgid "" "If you prefer manual setup or cannot use containers, follow the " "instructions below." @@ -119,11 +120,11 @@ msgstr "" "Если вы предпочитаете ручную настройку или не можете использовать " "контейнеры, следуйте инструкциям ниже." -#: ../../user_guide/environment.rst:33 +#: ../../../../docs/user_guide/environment.rst:33 msgid "Build prerequisites" msgstr "Требования к сборке" -#: ../../user_guide/environment.rst:34 +#: ../../../../docs/user_guide/environment.rst:34 msgid "" "**Windows**: Download and install CMake from https://cmake.org/download " "(select the Windows installer) or install using Chocolatey:" @@ -131,19 +132,19 @@ msgstr "" "**Windows**: Загрузите и установите CMake с https://cmake.org/download " "(выберите установщик для Windows) или установите с помощью Chocolatey:" -#: ../../user_guide/environment.rst:40 +#: ../../../../docs/user_guide/environment.rst:40 msgid "**Linux (Ubuntu/Debian)**: Install using package manager:" msgstr "**Linux (Ubuntu/Debian)**: Установите с помощью менеджера пакетов:" -#: ../../user_guide/environment.rst:47 +#: ../../../../docs/user_guide/environment.rst:47 msgid "**macOS**: Install using Homebrew:" msgstr "**macOS**: Установите с помощью Homebrew:" -#: ../../user_guide/environment.rst:55 +#: ../../../../docs/user_guide/environment.rst:55 msgid "Code Style Analysis" msgstr "Анализ стиля кодирования" -#: ../../user_guide/environment.rst:56 +#: ../../../../docs/user_guide/environment.rst:56 msgid "" "Please follow the `Google C++ Style Guide " "`_." @@ -151,7 +152,7 @@ msgstr "" "Пожалуйста пройдите по ссылке для изучения стиля кодирования - `Google " "C++ Style Guide `_." -#: ../../user_guide/environment.rst:58 +#: ../../../../docs/user_guide/environment.rst:58 msgid "" "Code style is checked using the `clang-format " "`_ tool." @@ -159,19 +160,41 @@ msgstr "" "Проверка стиля кода выполняется с помощью инструмента `clang-format " "`_." -#: ../../user_guide/environment.rst:61 +#: ../../../../docs/user_guide/environment.rst:61 +msgid "Optional tools (clang-tidy, gcovr)" +msgstr "Дополнительные инструменты (clang-tidy, gcovr)" + +#: ../../../../docs/user_guide/environment.rst:62 +msgid "" +"Install these to match the CI toolchain for static analysis and coverage " +"reports." +msgstr "Установите их, чтобы соответствовать инструментам CI для статического анализа и отчётов по покрытию." + +#: ../../../../docs/user_guide/environment.rst:64 +msgid "Linux (Ubuntu/Debian):" +msgstr "Linux (Ubuntu/Debian):" + +#: ../../../../docs/user_guide/environment.rst:75 +msgid "macOS (Homebrew):" +msgstr "macOS (Homebrew):" + +#: ../../../../docs/user_guide/environment.rst:83 +msgid "Windows:" +msgstr "Windows:" + +#: ../../../../docs/user_guide/environment.rst:92 msgid "Parallel Programming Technologies" msgstr "Технологии параллельного программирования" -#: ../../user_guide/environment.rst:64 +#: ../../../../docs/user_guide/environment.rst:95 msgid "``MPI``" msgstr "``MPI``" -#: ../../user_guide/environment.rst:65 +#: ../../../../docs/user_guide/environment.rst:96 msgid "**Windows (MSVC)**:" msgstr "**Windows (MSVC)**:" -#: ../../user_guide/environment.rst:67 +#: ../../../../docs/user_guide/environment.rst:98 msgid "" "`Installers link `_. You have to install " @@ -181,19 +204,20 @@ msgstr "" "us/download/details.aspx?id=105289>`_. Вы должны установить 2 файла - " "``msmpisdk.msi`` и ``msmpisetup.exe``." -#: ../../user_guide/environment.rst:69 ../../user_guide/environment.rst:85 +#: ../../../../docs/user_guide/environment.rst:100 +#: ../../../../docs/user_guide/environment.rst:116 msgid "**Linux (gcc and clang)**:" msgstr "**Linux (gcc and clang)**:" -#: ../../user_guide/environment.rst:75 +#: ../../../../docs/user_guide/environment.rst:106 msgid "**MacOS (apple clang)**:" msgstr "**MacOS (apple clang)**:" -#: ../../user_guide/environment.rst:82 +#: ../../../../docs/user_guide/environment.rst:113 msgid "``OpenMP``" msgstr "``OpenMP``" -#: ../../user_guide/environment.rst:83 +#: ../../../../docs/user_guide/environment.rst:114 msgid "" "``OpenMP`` is included in ``gcc`` and ``msvc``, but some components " "should be installed additionally:" @@ -202,15 +226,15 @@ msgstr "" "``msvc``, но ряд компонент все равно должны быть установлены " "дополнительно:" -#: ../../user_guide/environment.rst:91 +#: ../../../../docs/user_guide/environment.rst:122 msgid "**MacOS (llvm)**:" msgstr "**MacOS (llvm)**:" -#: ../../user_guide/environment.rst:99 +#: ../../../../docs/user_guide/environment.rst:130 msgid "``TBB``" msgstr "``TBB``" -#: ../../user_guide/environment.rst:100 +#: ../../../../docs/user_guide/environment.rst:131 msgid "" "**Windows (MSVC)**, **Linux (gcc and clang)**, **MacOS (apple clang)**: " "Build as 3rdparty in the current project." @@ -219,10 +243,10 @@ msgstr "" "Данная библиотека строится как внешняя в составе текущего проекта и не " "требует дополнительных операций." -#: ../../user_guide/environment.rst:104 +#: ../../../../docs/user_guide/environment.rst:135 msgid "``std::thread``" msgstr "``std::thread``" -#: ../../user_guide/environment.rst:105 +#: ../../../../docs/user_guide/environment.rst:136 msgid "``std::thread`` is included in STL libraries." msgstr "``std::thread`` включена в состав STL библиотек." diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/environment_variables.po b/docs/locale/ru/LC_MESSAGES/user_guide/environment_variables.po index fd2ecb1a6..5df539b52 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/environment_variables.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/environment_variables.po @@ -4,7 +4,6 @@ # Programming Course package. # Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" @@ -34,13 +33,12 @@ msgstr "" "поведения программы во время выполнения:" #: ../../user_guide/environment_variables.rst:6 -#, fuzzy msgid "" "``PPC_NUM_PROC``: Specifies the number of processes to launch. Default: " "``1`` Can be queried from C++ with ``ppc::util::GetNumProc()``." msgstr "" "``PPC_NUM_PROC``: задаёт количество запускаемых процессов. По умолчанию: " -"``1``" +"``1``. Можно получить в C++ через ``ppc::util::GetNumProc()``." #: ../../user_guide/environment_variables.rst:10 msgid "" @@ -61,7 +59,6 @@ msgstr "" "``valgrind``. По умолчанию: ``0``" #: ../../user_guide/environment_variables.rst:16 -#, fuzzy msgid "" "``PPC_IGNORE_TEST_TIME_LIMIT``: Specifies that test time limits are " "ignored. Used by ``scripts/run_tests.py`` to disable time limit " @@ -75,11 +72,10 @@ msgstr "" msgid "" "``PPC_TASK_MAX_TIME``: Maximum allowed execution time in seconds for " "functional tests. Default: ``1.0``" -msgstr "" +msgstr "``PPC_TASK_MAX_TIME``: максимальное допустимое время выполнения (секунды) для функциональных тестов. По умолчанию: ``1.0``" #: ../../user_guide/environment_variables.rst:20 msgid "" "``PPC_PERF_MAX_TIME``: Maximum allowed execution time in seconds for " "performance tests. Default: ``10.0``" -msgstr "" - +msgstr "``PPC_PERF_MAX_TIME``: максимальное допустимое время выполнения (секунды) для тестов производительности. По умолчанию: ``10.0``" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po index 1775ab7c6..f32859fb5 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po @@ -2,153 +2,500 @@ # Copyright (C) 2025, Learning Process # This file is distributed under the same license as the Parallel # Programming Course package. -# Learning Process Team , 2025. +# Learning Process Team , 2025. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-01-20 23:19+0100\n" +"POT-Creation-Date: 2025-10-24 15:07+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" -"Language-Team: Learning Process Team (gooddoog@student.su, nesterov.alexander@outlook.com)\n" +"Language-Team: Learning Process Team (gooddoog@student.su, " +"nesterov.alexander@outlook.com)\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " "n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.16.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../user_guide/submit_work.rst:2 -msgid "How to submit your work" -msgstr "Как создать, открыть и отправить на проверку Вашу работу" +#: ../../../../docs/user_guide/submit_work.rst:2 +msgid "How to create, open, and submit your work" +msgstr "Как создать, открыть и отправить на проверку вашу работу" -#: ../../user_guide/submit_work.rst:4 +#: ../../../../docs/user_guide/submit_work.rst:4 msgid "" -"There are ``all``, ``mpi``, ``omp``, ``seq``, ``stl``, ``tbb`` folders in" -" the ``tasks`` directory. Move to a folder of your task. Create a " -"directory named ``__``." +"This section reflects the current integration flow used in semester " +"repositories. It is a practical, step-by-step checklist tailored for " +"students." msgstr "" -"Существуют следующие типы ``all``, ``mpi``, ``omp``, ``seq``, ``stl``, ``tbb`` поддиректорий (типов задач) в" -" ``tasks`` директории. Ваша директория будет размещаться в директории согласно типу Вашей задачи. Создайте " -"поддиректорию и назовите ее латинскими буквами следующим образом - ``<фамилия>_<первая буква имени>_<краткое название задачи>``." +"Этот раздел отражает актуальный процесс интеграции для семестровых " +"репозиториев. Это практический, пошаговый чек‑лист для студентов." -#: ../../user_guide/submit_work.rst:6 +#: ../../../../docs/user_guide/submit_work.rst:7 +msgid "Repository and branch" +msgstr "Репозиторий и ветка" + +#: ../../../../docs/user_guide/submit_work.rst:8 +msgid "Fork the semester repository for your group (processes/threads, program)." +msgstr "" +"Сделайте форк семестрового репозитория вашей группы (процессы/потоки, " +"направление)." + +#: ../../../../docs/user_guide/submit_work.rst:9 +msgid "" +"Create a branch named exactly as your task folder: " +"``__`` (e.g., ``nesterov_a_elem_vec_sum``)." +msgstr "" +"Создайте ветку, имя которой точно совпадает с папкой вашей задачи: " +"``<фамилия>_<инициал>_<краткое>`` (например, " +"``nesterov_a_elem_vec_sum``)." + +#: ../../../../docs/user_guide/submit_work.rst:13 +msgid "Prerequisites" +msgstr "Предварительные требования" + +#: ../../../../docs/user_guide/submit_work.rst:14 +msgid "Install tools and dependencies (see ``User Guide → Environment``)." +msgstr "Установите инструменты и зависимости (см. «Инструкция → Окружение»)." + +#: ../../../../docs/user_guide/submit_work.rst:15 +msgid "Verify you can configure and build the project locally with CMake." +msgstr "" +"Убедитесь, что вы можете сконфигурировать и собрать проект локально с " +"помощью CMake." + +#: ../../../../docs/user_guide/submit_work.rst:16 +msgid "" +"If you work from a fork, clone your fork and set the course repo as " +"upstream." +msgstr "" +"Если вы работаете из форка, клонируйте свой форк и добавьте основной " +"репозиторий курса как upstream." + +#: ../../../../docs/user_guide/submit_work.rst:19 +msgid "Task folder layout (unified)" +msgstr "Структура папки задачи (единая)" + +#: ../../../../docs/user_guide/submit_work.rst:20 +msgid "" +"Create a folder ``tasks/__/`` with the following " +"layout:" +msgstr "" +"Создайте папку ``tasks/<фамилия>_<инициал>_<краткое>/`` со следующей " +"структурой:" + +#: ../../../../docs/user_guide/submit_work.rst:22 +msgid "``common/include/common.hpp`` — shared type aliases and `BaseTask`:" +msgstr "``common/include/common.hpp`` — общие типы и `BaseTask`:" + +#: ../../../../docs/user_guide/submit_work.rst:31 msgid "" -"Example: ``seq/nesterov_a_vector_sum``. Please name all tasks **with the " -"same** name directory. If the ``seq`` task is named " -"``seq/nesterov_a_vector_sum``, then the ``omp`` task must be named " -"``omp/nesterov_a_vector_sum``." +"Technology implementations (add only those required by the semester): - " +"Processes (MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, " +"``mpi/src`` - Threads: ``seq``, ``omp``, ``tbb``, ``stl`` (same " +"include/src split)" msgstr "" -"Пример: ``seq/nesterov_a_vector_sum``. Пожалуйста называйте все задачи **одинаково**, если у вас одна задача и несколько технологий. " -"Если Ваша задача ``seq`` то задача будет размещена следующим образом - " -"``seq/nesterov_a_vector_sum``, если ``omp`` то так " -"``omp/nesterov_a_vector_sum``." +"Реализации технологий (добавляйте только нужные в семестре): — Процессы " +"(MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` — " +"Потоки: ``seq``, ``omp``, ``tbb``, ``stl`` (аналогичное разделение " +"include/src)" -#: ../../user_guide/submit_work.rst:8 +#: ../../../../docs/user_guide/submit_work.rst:35 msgid "" -"Navigate into the newly created folder and begin your work on the task. " -"The folder must contain only 4 directories with files:" +"Each implementation defines a class derived from ``BaseTask`` and " +"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"``PostProcessingImpl``. Also add:" msgstr "" -"Перейдите в созданную Вами, директорию и начните работу. " -"Директория должна содержать 4 обязательных поддиректории с файлами и 1 опциональную:" +"Каждая реализация определяет класс, унаследованный от ``BaseTask``, и " +"переопределяет ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"``PostProcessingImpl``. Также добавьте:" -#: ../../user_guide/submit_work.rst:10 +#: ../../../../docs/user_guide/submit_work.rst:44 +msgid "Minimal skeleton (example for SEQ):" +msgstr "Минимальный скелет (пример для SEQ):" + +#: ../../../../docs/user_guide/submit_work.rst:76 +msgid "" +"Tests (unified location): - ``tests/functional/main.cpp`` — functional " +"tests built on ``ppc::util::BaseRunFuncTests`` and helpers. - " +"``tests/performance/main.cpp`` — performance tests built on " +"``ppc::util::BaseRunPerfTests`` + ``MakeAllPerfTasks``." +msgstr "" +"Тесты (единое размещение): — ``tests/functional/main.cpp`` — " +"функциональные тесты на базе ``ppc::util::BaseRunFuncTests`` и " +"вспомогательных функций. — ``tests/performance/main.cpp`` — тесты " +"производительности на базе ``ppc::util::BaseRunPerfTests`` + " +"``MakeAllPerfTasks``." + +#: ../../../../docs/user_guide/submit_work.rst:80 +msgid "Functional tests example:" +msgstr "Пример функциональных тестов:" + +#: ../../../../docs/user_guide/submit_work.rst:90 +msgid "Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." +msgstr "" +"При необходимости используйте ``PPC_ID_`` для доступа к ресурсам" +" из ``data/``." + +#: ../../../../docs/user_guide/submit_work.rst:92 +msgid "Performance tests example:" +msgstr "Пример тестов производительности:" + +#: ../../../../docs/user_guide/submit_work.rst:100 +msgid "Tips for tests" +msgstr "Советы по тестам" + +#: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"``data`` - Directory with own data files for functional testing of " -"the task." +"Keep tests deterministic and under time limits; prefer env vars (see " +"``User Guide → Environment Variables``) over sleeps." msgstr "" -"``data`` - Опциональная директория с тестовыми файлами для экспериментов и тестов" +"Делайте тесты детерминированными и укладывающимися в лимиты времени; " +"используйте переменные окружения (см. «Инструкция → Переменные " +"окружения») вместо задержек." -#: ../../user_guide/submit_work.rst:11 +#: ../../../../docs/user_guide/submit_work.rst:102 +msgid "Use ``PPC_ID_`` to access files from ``data/``." +msgstr "Используйте ``PPC_ID_`` для доступа к файлам из ``data/``." + +#: ../../../../docs/user_guide/submit_work.rst:103 msgid "" -"``func_tests`` - Directory with Google tests for functional testing of " -"the task." +"Cover edge cases in functional tests; add exactly two performance test " +"styles (``task`` and ``pipeline``) inside the suite." msgstr "" -"``func_tests`` - Директория с Google тестами для функционального тестирования." +"Покрывайте крайние случаи в функциональных тестах; добавьте ровно два " +"стиля перфтестов (``task`` и ``pipeline``) внутри набора." + +#: ../../../../docs/user_guide/submit_work.rst:105 +msgid "``data/`` — optional input files for tests (e.g., images)." +msgstr "``data/`` — опциональные входные файлы для тестов (например, изображения)." + +#: ../../../../docs/user_guide/submit_work.rst:106 +msgid "``settings.json`` — enable required technologies for your semester, e.g.:" +msgstr "" +"``settings.json`` — включение необходимых технологий для вашего семестра," +" например:" + +#: ../../../../docs/user_guide/submit_work.rst:112 +msgid "``info.json`` — student metadata used in automation (scoreboard, macros):" +msgstr "``info.json`` — данные студента для автоматизации (scoreboard, макросы):" -#: ../../user_guide/submit_work.rst:12 -msgid "``include`` - Directory for header files with function prototypes." -msgstr "``include`` - Директория с header файлами, в которых содержатся чаще всего прототипы ваших функций и классов." +#: ../../../../docs/user_guide/submit_work.rst:119 +msgid "Build and local run" +msgstr "Сборка и локальный запуск" -#: ../../user_guide/submit_work.rst:13 +#: ../../../../docs/user_guide/submit_work.rst:120 +msgid "Configure and build:" +msgstr "Конфигурация и сборка:" + +#: ../../../../docs/user_guide/submit_work.rst:127 +msgid "Run tests via helper:" +msgstr "Запуск тестов через вспомогательный скрипт:" + +#: ../../../../docs/user_guide/submit_work.rst:138 +msgid "Executables (where to find tests)" +msgstr "Исполняемые файлы (где искать тесты)" + +#: ../../../../docs/user_guide/submit_work.rst:139 msgid "" -"``perf_tests`` - Directory with Google tests for performance testing. The" -" number of tests must be 2: ``run_task`` and ``run_pipeline``." +"``build/bin`` (or ``install/bin``): - ``core_func_tests`` — core library " +"tests first - ``ppc_func_tests`` — functional tests for all " +"tasks/technologies - ``ppc_perf_tests`` — performance tests for all " +"tasks/technologies" msgstr "" -"``perf_tests`` - Директория с Google тестами для тестов на производительность. " -"Должно быть всего 2 теста: ``run_task`` и ``run_pipeline``." +"Исполняемые файлы генерируются в ``build/bin`` (или ``install/bin`` при " +"установке): - ``core_func_tests`` — тесты ядра библиотеки - " +"``ppc_func_tests`` — функциональные тесты для всех задач/технологий - " +"``ppc_perf_tests`` — тесты производительности для всех задач/технологий" -#: ../../user_guide/submit_work.rst:14 +#: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"``src`` - Directory with source files containing the function " -"implementations." +"The runner applies gtest filters automatically to select technology " +"suites." msgstr "" -"``src`` - Директория с исходными кодами, содержащая основную реализацию задач." +"Runner автоматически применяет gtest‑фильтры для выбора наборов тестов по" +" технологиям." + +#: ../../../../docs/user_guide/submit_work.rst:147 +msgid "Pull Request" +msgstr "Pull Request" -#: ../../user_guide/submit_work.rst:16 -msgid "There must be 10 executable files for running:" -msgstr "При максимальной конфигурации должно быть 12 исполняемых файлов для запуска:" +#: ../../../../docs/user_guide/submit_work.rst:148 +msgid "Title format (example):" +msgstr "Формат заголовка (пример):" -#: ../../user_guide/submit_work.rst:18 +#: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``__tests``. For example, " -"``omp_perf_tests`` - an executable file for performance tests of OpenMP " -"practice tasks." +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" msgstr "" -"``__tests``. К примеру, " -"``omp_perf_tests`` - исполняемый файл запуска тестов на производительность, задач, связанных с технологией OpenMP." +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" -#: ../../user_guide/submit_work.rst:20 +#: ../../../../docs/user_guide/submit_work.rst:152 msgid "" -"All prototypes and classes in the ``include`` directory must be " -"namespace-escaped. Name your namespace as follows:" +"Description should include: - Полное описание задачи; номер варианта; " +"используемая технология - Краткое описание реализации и отчёта - Чек-лист" +" (CI зелёный в форке, clang-format/clang-tidy пройдены, " +"функциональные/перф тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." msgstr "" -"Все Ваши прототипы и классы в ``include`` директории должны быть экранированы с помощью namespace. " -"Имя namespace должно соотвествовать следующему примеру:" +"Описание должно включать: — Полное описание задачи; номер варианта; " +"используемую технологию — Краткое описание реализации и отчёта — Чек‑лист" +" (CI зелёный в форке, clang‑format/clang‑tidy пройдены, " +"функциональные/перф‑тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." -#: ../../user_guide/submit_work.rst:36 -msgid "Name your group of tests and individual test cases as follows:" -msgstr "Имя вашей группы тестов и одного ндивидуального тест кейса должно именоваться так:" +#: ../../../../docs/user_guide/submit_work.rst:160 +msgid "PR checklist template (body)" +msgstr "Шаблон PR (чек‑лист)" -#: ../../user_guide/submit_work.rst:38 -msgid "For functional tests (for maximum coverage):" -msgstr "Для функциональных тестов (для максимального покрытия):" +#: ../../../../docs/user_guide/submit_work.rst:208 +msgid "Common pitfalls (read before pushing)" +msgstr "Частые ошибки (прочтите перед отправкой)" -#: ../../user_guide/submit_work.rst:50 +#: ../../../../docs/user_guide/submit_work.rst:209 +msgid "Wrong folder/branch name. Must be ``__`` everywhere." +msgstr "" +"Неверное имя папки/ветки. Должно быть ``<фамилия>_<инициал>_<краткое>`` " +"везде." + +#: ../../../../docs/user_guide/submit_work.rst:210 +msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." +msgstr "Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." + +#: ../../../../docs/user_guide/submit_work.rst:211 +msgid "Tests rely on randomness or sleeps instead of env time limits." +msgstr "" +"Тесты зависят от случайности или задержек вместо лимитов по времени " +"окружения." + +#: ../../../../docs/user_guide/submit_work.rst:212 +msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." +msgstr "В ``settings.json`` не включена нужная технология — тесты не запустятся." + +#: ../../../../docs/user_guide/submit_work.rst:213 +msgid "Namespace doesn’t match the folder name and collides with others." +msgstr "Namespace не соответствует имени папки и конфликтует с другими." + +#: ../../../../docs/user_guide/submit_work.rst:214 +msgid "Performance tests count or naming deviates from the required patterns." +msgstr "Количество или именование перфтестов отклоняется от требуемых шаблонов." + +#: ../../../../docs/user_guide/submit_work.rst:217 +msgid "Useful examples to reference" +msgstr "Полезные примеры для ориентирования" + +#: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"For performance tests (only 2 tests - ``pipeline`` and ``task`` - no more" -" no less):" -msgstr "Для тестов на производительность (только 2 теста - ``pipeline`` and ``task`` - ни больше, ни меньше):" +"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" +msgstr "" +"Процессы: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" -#: ../../user_guide/submit_work.rst:65 -msgid "Name your pull request as follows:" -msgstr "Имя вашего pull request должно называться следующим образом:" +#: ../../../../docs/user_guide/submit_work.rst:219 +msgid "Threads: ``tasks/example_threads``" +msgstr "Потоки: ``tasks/example_threads``" -#: ../../user_guide/submit_work.rst:67 -msgid "For tasks:" -msgstr "Для задач:" +#: ../../../../docs/user_guide/submit_work.rst:221 +msgid "" +"Work from your fork in a dedicated branch (not ``master``). Branch name " +"must match your task folder." +msgstr "" +"Работайте из своего форка в отдельной ветке (не ``master``). Имя ветки " +"должно совпадать с именем папки задачи." -#: ../../user_guide/submit_work.rst:74 -msgid "Provide the full task definition in the pull request's description." -msgstr "Приведите полную формулировку задачи в описании pull request." +#: ../../../../docs/user_guide/submit_work.rst:224 +msgid "Notes" +msgstr "Примечания" -#: ../../user_guide/submit_work.rst:76 -msgid "Example pull request can be found in the repository's pull requests." -msgstr "Пример pull request может быть найден в основном репозитории в разделе pull requests." +#: ../../../../docs/user_guide/submit_work.rst:225 +msgid "" +"All classes should live in a unique namespace (e.g., " +"``__``)." +msgstr "" +"Все классы должны находиться в уникальном пространстве имён (например, " +"``<фамилия>_<инициал>_<краткое>``)." -#: ../../user_guide/submit_work.rst:78 +#: ../../../../docs/user_guide/submit_work.rst:226 msgid "" -"Work on your forked repository. Keep your work on a separate branch (not " -"on ``master``)!!! Name your branch the same as your task's folder. To " -"create a branch, run:" +"Keep tests deterministic and within time limits; prefer env vars over " +"sleeps." msgstr "" -"Работайте в своем собственном fork-репозитории. Каждую задачу нужно делать на новой ветке (не " -"на ``master`` ветке)!!! Имя ветки такое же как и имя директории Вашей задачи. " -"Для создания ветки воспользуйтесь следующей командой:" +"Делайте тесты детерминированными и укладывающимися в лимиты времени; " +"используйте переменные окружения вместо задержек." + +#: ../../../../docs/user_guide/submit_work.rst:227 +msgid "" +"Follow code style (clang-format/clang-tidy), and run pre-commit hooks " +"locally." +msgstr "" +"Соблюдайте стиль кода (clang-format/clang-tidy) и запускайте pre-commit " +"локально." + +#~ msgid "There must be 10 executable files for running:" +#~ msgstr "" +#~ "При максимальной конфигурации должно быть " +#~ "12 исполняемых файлов для запуска:" + +#~ msgid "" +#~ "``__tests``. For example, ``omp_perf_tests``" +#~ " - an executable file for performance" +#~ " tests of OpenMP practice tasks." +#~ msgstr "" +#~ "``__tests``. К примеру, ``omp_perf_tests`` " +#~ "- исполняемый файл запуска тестов на " +#~ "производительность, задач, связанных с " +#~ "технологией OpenMP." + +#~ msgid "" +#~ "There are ``all``, ``mpi``, ``omp``, " +#~ "``seq``, ``stl``, ``tbb`` folders in the" +#~ " ``tasks`` directory. Move to a " +#~ "folder of your task. Create a " +#~ "directory named ``__``." +#~ msgstr "" +#~ "Существуют следующие типы ``all``, ``mpi``," +#~ " ``omp``, ``seq``, ``stl``, ``tbb`` " +#~ "поддиректорий (типов задач) в ``tasks`` " +#~ "директории. Ваша директория будет размещаться" +#~ " в директории согласно типу Вашей " +#~ "задачи. Создайте поддиректорию и назовите " +#~ "ее латинскими буквами следующим образом " +#~ "- ``<фамилия>_<первая буква имени>_<краткое " +#~ "название задачи>``." + +#~ msgid "" +#~ "Example: ``seq/nesterov_a_vector_sum``. Please name" +#~ " all tasks **with the same** name " +#~ "directory. If the ``seq`` task is " +#~ "named ``seq/nesterov_a_vector_sum``, then the " +#~ "``omp`` task must be named " +#~ "``omp/nesterov_a_vector_sum``." +#~ msgstr "" +#~ "Пример: ``seq/nesterov_a_vector_sum``. Пожалуйста " +#~ "называйте все задачи **одинаково**, если " +#~ "у вас одна задача и несколько " +#~ "технологий. Если Ваша задача ``seq`` то" +#~ " задача будет размещена следующим образом" +#~ " - ``seq/nesterov_a_vector_sum``, если ``omp``" +#~ " то так ``omp/nesterov_a_vector_sum``." + +#~ msgid "" +#~ "Navigate into the newly created folder" +#~ " and begin your work on the " +#~ "task. The folder must contain the " +#~ "following directories:" +#~ msgstr "" +#~ "Перейдите в созданную директорию и " +#~ "начните работу. Директория должна содержать" +#~ " следующие поддиректории:" + +#~ msgid "" +#~ "``data`` - Directory with own data" +#~ " files for functional testing of the" +#~ " task." +#~ msgstr "" +#~ "``data`` - Опциональная директория с " +#~ "тестовыми файлами для экспериментов и " +#~ "тестов" + +#~ msgid "" +#~ "``func_tests`` - Directory with Google " +#~ "tests for functional testing of the " +#~ "task." +#~ msgstr "" +#~ "``func_tests`` - Директория с Google " +#~ "тестами для функционального тестирования." + +#~ msgid "``include`` - Directory for header files with function prototypes." +#~ msgstr "" +#~ "``include`` - Директория с header " +#~ "файлами, в которых содержатся чаще всего" +#~ " прототипы ваших функций и классов." + +#~ msgid "" +#~ "``perf_tests`` - Directory with Google " +#~ "tests for performance testing. The " +#~ "number of tests must be 2: " +#~ "``run_task`` and ``run_pipeline``." +#~ msgstr "" +#~ "``perf_tests`` - Директория с Google " +#~ "тестами для тестов на производительность. " +#~ "Должно быть всего 2 теста: ``run_task``" +#~ " и ``run_pipeline``." + +#~ msgid "" +#~ "``src`` - Directory with source " +#~ "files containing the function implementations." +#~ msgstr "" +#~ "``src`` - Директория с исходными кодами," +#~ " содержащая основную реализацию задач." + +#~ msgid "" +#~ "Use gtest filters (the test runner " +#~ "applies them automatically) to select " +#~ "technology-specific suites, e.g. ``*_omp_*``, " +#~ "``*_mpi*``, ``*_seq_*``, ``*_tbb_*``, ``*_stl_*``," +#~ " ``*_all*``." +#~ msgstr "" +#~ "Используйте gtest-фильтры (runner применяет их" +#~ " автоматически) для выбора наборов тестов" +#~ " по технологиям, например: ``*_omp_*``, " +#~ "``*_mpi*``, ``*_seq_*``, ``*_tbb_*``, ``*_stl_*``," +#~ " ``*_all*``." + +#~ msgid "" +#~ "All prototypes and classes in the " +#~ "``include`` directory must be namespace-" +#~ "escaped. Name your namespace as follows:" +#~ msgstr "" +#~ "Все Ваши прототипы и классы в " +#~ "``include`` директории должны быть " +#~ "экранированы с помощью namespace. Имя " +#~ "namespace должно соотвествовать следующему " +#~ "примеру:" + +#~ msgid "Name your group of tests and individual test cases as follows:" +#~ msgstr "" +#~ "Имя вашей группы тестов и одного " +#~ "ндивидуального тест кейса должно именоваться" +#~ " так:" + +#~ msgid "For functional tests (for maximum coverage):" +#~ msgstr "Для функциональных тестов (для максимального покрытия):" + +#~ msgid "" +#~ "For performance tests (only 2 tests " +#~ "- ``pipeline`` and ``task`` - no " +#~ "more no less):" +#~ msgstr "" +#~ "Для тестов на производительность (только " +#~ "2 теста - ``pipeline`` and ``task`` " +#~ "- ни больше, ни меньше):" + +#~ msgid "Name your pull request as follows:" +#~ msgstr "Имя вашего pull request должно называться следующим образом:" + +#~ msgid "For tasks:" +#~ msgstr "Для задач:" + +#~ msgid "Provide the full task definition in the pull request's description." +#~ msgstr "Приведите полную формулировку задачи в описании pull request." + +#~ msgid "Example pull request can be found in the repository's pull requests." +#~ msgstr "" +#~ "Пример pull request может быть найден" +#~ " в основном репозитории в разделе " +#~ "pull requests." -#: ../../user_guide/submit_work.rst:84 -msgid "**Failing to follow the rules will result in a red project build.**" -msgstr "**Несоблюдение правил приведет к падению сборки проекта.**" +#~ msgid "**Failing to follow the rules will result in a red project build.**" +#~ msgstr "**Несоблюдение правил приведет к падению сборки проекта.**" diff --git a/docs/user_guide/build.rst b/docs/user_guide/build.rst index e1ac0ceea..c578c4ec1 100644 --- a/docs/user_guide/build.rst +++ b/docs/user_guide/build.rst @@ -1,14 +1,19 @@ Build the Project with ``CMake`` ================================ -Navigate to a source code folder. +Navigate to the project root. 1. **Configure the build**: ``Makefile``, ``.sln``, etc. .. code-block:: bash - mkdir build && cd build - cmake -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release .. + cmake -S . -B build -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release + + Optional: enable sanitizers for local debugging + + .. code-block:: bash + + cmake -S . -B build -D ENABLE_ADDRESS_SANITIZER=ON -D CMAKE_BUILD_TYPE=RelWithDebInfo *Help on CMake keys:* @@ -26,8 +31,8 @@ Navigate to a source code folder. .. code-block:: bash - cmake --build . --config Release --parallel + cmake --build build --config Release --parallel + +3. **Run tests**: -3. **Check the task**: - - * Run ``/build/bin`` + Prefer the helper runner described in ``User Guide → CI``. diff --git a/docs/user_guide/ci.rst b/docs/user_guide/ci.rst index fea751f6a..1c6eab493 100644 --- a/docs/user_guide/ci.rst +++ b/docs/user_guide/ci.rst @@ -1,67 +1,160 @@ Continuous Integration (CI) -============================ +=========================== -Students need to pass all the checks in the CI pipeline before their work can be considered for submission. -This includes successful code checkout, build ans testing stages. -Each integration is verified by an automated build and automated tests. +Overview +-------- +Your pull request must pass all required CI checks before review/merge. The pipeline validates formatting and static analysis, builds on all platforms, runs functional tests (threads and MPI), measures performance, builds docs, and publishes artifacts (coverage report, docs, scoreboard). -CI Pipeline ------------- +High‑level pipeline +------------------- -The CI pipeline for this project is illustrated in the following diagram: +- Pre-commit checks (fast) — runs repository hooks on changed files; fix locally via ``pre-commit run -a``. + +- Platform builds and tests (Ubuntu, macOS, Windows) — Ubuntu (GCC/Clang, amd64+arm), macOS (Clang), Windows (MSVC/Clang‑CL); functional tests via ``scripts/run_tests.py`` for threads (``--counts 1 2 3 4``; extended ``5 7 11 13``) and processes (MPI, ``--counts 1 2 3 4``). + +- Sanitizers (Ubuntu/Clang) — Address/UB/Leak; tests use ``PPC_ASAN_RUN=1`` to skip valgrind. + +- Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to Codecov and uploads ``cov-report`` (HTML). + +- Performance (perf) — ``scripts/generate_perf_results.sh`` produces ``build/perf_stat_dir``; uploads ``perf-stat`` (Linux) and ``perf-stat-macos`` (macOS). + +- Pages (docs and scoreboard) — builds Doxygen XML and Sphinx (EN+RU) + scoreboard; on ``master`` deploys with coverage to GitHub Pages. + +- Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU pragma``), scheduled CodeQL (C++/Python) and OpenSSF Scorecard. + +Diagram +------- +The pipeline is illustrated below. Image is auto-generated by ``scripts/jobs_graph.py``: .. image:: ../_static/ci_graph.svg - :alt: CI Pipeline Diagram + :alt: CI pipeline (pre-commit → OS builds/tests → perf → pages) :align: center -Running ``scripts/run_tests.py`` --------------------------------- +Running tests locally +--------------------- -Automated tests are executed through the ``scripts/run_tests.py`` helper. The -script requires several environment variables to be defined: +Use the ``scripts/run_tests.py`` helper. Common environment variables: ``PPC_NUM_THREADS`` - Number of threads to use. The value is also exported as - ``OMP_NUM_THREADS``. + Number of threads (also exported as ``OMP_NUM_THREADS``). ``PPC_NUM_PROC`` Number of MPI processes to launch. ``PPC_ASAN_RUN`` - Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (optional, - default ``0``). + Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (default ``0``). ``PPC_IGNORE_TEST_TIME_LIMIT`` - Set to ``1`` to disable test time limits (optional, default ``0``). + Set to ``1`` to disable test time limits (default ``0``). -The execution mode is selected with ``--running-type``. The most common modes -are ``threads`` for shared-memory backends and ``processes`` for MPI based -tests. ``performance`` mode runs performance benchmarks. +Execution modes: +- ``--running-type=threads`` — shared-memory backends (OpenMP/TBB/std::thread) +- ``--running-type=processes`` — MPI tests +- ``--running-type=performance`` — performance benchmarks (mirrors CI perf job) -Example usage: +Examples: .. code-block:: bash export PPC_NUM_THREADS=4 export PPC_NUM_PROC=2 - # Multithreaded functional tests - scripts/run_tests.py --running-type="threads" + # Threads (functional) + scripts/run_tests.py --running-type=threads --counts 1 2 4 + + # MPI (functional) + scripts/run_tests.py --running-type=processes --counts 2 4 + + # Performance (benchmarks) + scripts/run_tests.py --running-type=performance + +Options: +- ``--counts`` runs tests for multiple thread/process counts sequentially. +- ``--additional-mpi-args`` passes extra launcher flags (e.g., ``--oversubscribe``). +- ``--verbose`` prints every executed command. - # MPI functional tests - scripts/run_tests.py --running-type="processes" +Coverage and sanitizers locally +------------------------------- +- Sanitizers (Linux): configure with ``-D ENABLE_ADDRESS_SANITIZER=ON`` (and optional UB/Leak), run tests with ``PPC_ASAN_RUN=1``. +- Coverage (Linux/GCC): configure with ``-D USE_COVERAGE=ON``, run tests, then generate HTML via ``gcovr`` (see CI ``gcc-build-codecov`` for command line). - # Performance benchmarks - scripts/run_tests.py --running-type="performance" +Docs and scoreboard artifacts +----------------------------- +- Docs: run Doxygen first (``doxygen Doxyfile``), then Sphinx EN/RU via CMake targets ``docs_gettext``, ``docs_update``, ``docs_html``. +- Scoreboard: generate perf stats (``scripts/generate_perf_results.sh``) and build scoreboard target or use ``python3 scoreboard/main.py`` locally. -Additional MPI arguments can be supplied with ``--additional-mpi-args`` when -running in ``processes`` mode. +Troubleshooting +--------------- +- Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-commit install``) and commit fixes. +- Static analysis (clang-tidy) fails: address comments; do not use ``NOLINT``/``IWYU pragma`` in task code. +- Tests not found/not running: verify ``settings.json`` enables required technologies and tests exist; see :doc:`submit_work`. +- Time limits exceeded: reduce data sizes; prefer env vars (:doc:`environment_variables`) like ``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness. +- MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-args=\"--oversubscribe\"``. +- Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before Sphinx targets. +- Performance job fails: ensure exactly two perf tests (``task`` and ``pipeline``) and keep durations within limits. -The ``--counts`` option allows sequential execution of tests with several -thread/process counts. When specified, the script will iterate over the provided -values, updating ``PPC_NUM_THREADS`` or ``PPC_NUM_PROC`` accordingly before each -run. +Local clang-tidy and gcovr examples +----------------------------------- + +clang-tidy (static analysis): + +.. code-block:: bash + + # Configure with compile_commands.json + cmake -S . -B build -G Ninja -D CMAKE_BUILD_TYPE=Release -D CMAKE_EXPORT_COMPILE_COMMANDS=ON + cmake --build build -j + + # Single file analysis + clang-tidy -p build tasks/__/src/.cpp + + # Optional: analyze all sources (if run-clang-tidy is available) + run-clang-tidy -p build -j $(nproc) || true + +gcovr (coverage, GCC): + +.. code-block:: bash -Use ``--verbose`` to print every command executed by ``run_tests.py``. This can -be helpful for debugging CI failures or verifying the exact arguments passed to -the test binaries. + # Configure with coverage flags (use GCC) + cmake -S . -B build -G Ninja -D USE_COVERAGE=ON -D CMAKE_BUILD_TYPE=Release + cmake --build build -j + + # Run tests here (threads/processes/performance) + scripts/run_tests.py --running-type=threads --counts 1 2 4 + + # Generate reports (install gcovr if needed: python3 -m pip install gcovr) + mkdir -p cov-report + (cd build && gcovr --gcov-executable "$(which gcov-14 || which gcov)" \ + -r ../ \ + --exclude '.*3rdparty/.*' \ + --exclude '/usr/.*' \ + --exclude '.*tasks/.*/tests/.*' \ + --exclude '.*modules/.*/tests/.*' \ + --exclude '.*tasks/common/runners/.*' \ + --exclude '.*modules/runners/.*' \ + --exclude '.*modules/util/include/perf_test_util.hpp' \ + --exclude '.*modules/util/include/func_test_util.hpp' \ + --exclude '.*modules/util/src/func_test_util.cpp' \ + --xml --output ../coverage.xml \ + --html=../cov-report/index.html --html-details) + +Tooling tips (versions and install) +----------------------------------- + +- clang-tidy version + - CI uses clang-tidy 21. Prefer the same locally to avoid mismatches. + - The helper may be named ``clang-tidy-21`` or ``run-clang-tidy-21`` on some systems. + +- Linux + - clang-tidy: install from your distro (e.g., ``apt install clang-tidy-21``) or use the course Docker image. + - gcovr: ``python3 -m pip install gcovr`` or a distro package. + - GCC version: use ``gcov-14`` when building with GCC 14 (as in CI). + +- macOS + - clang-tidy: ``brew install llvm``; binary at ``$(brew --prefix)/opt/llvm/bin/clang-tidy``. + - Optionally add LLVM to PATH or invoke with full path. + - gcovr: ``python3 -m pip install gcovr`` or ``brew install gcovr``. + +- Windows + - clang-tidy: install LLVM (Clang) or use ``choco install llvm``; ensure ``clang-tidy.exe`` is in PATH. + - gcovr: ``py -m pip install gcovr``. + - Coverage is primarily supported in our CI on Linux/GCC; prefer generating reports on Linux. diff --git a/docs/user_guide/environment.rst b/docs/user_guide/environment.rst index 67b5233c4..aabb6ad7b 100644 --- a/docs/user_guide/environment.rst +++ b/docs/user_guide/environment.rst @@ -57,6 +57,37 @@ Please follow the `Google C++ Style Guide `_ tool. +Optional tools (clang-tidy, gcovr) +---------------------------------- +Install these to match the CI toolchain for static analysis and coverage reports. + +- Linux (Ubuntu/Debian): + + .. code-block:: bash + + # 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): + + .. code-block:: bash + + brew install llvm gcovr + # clang-tidy path (if not on PATH): + echo "$(brew --prefix)/opt/llvm/bin/clang-tidy" + +- Windows: + + .. code-block:: powershell + + choco install llvm + py -m pip install gcovr + # Ensure clang-tidy.exe is available in PATH + Parallel Programming Technologies --------------------------------- diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index 51362a28e..c5e149a31 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -1,84 +1,200 @@ -How to submit your work -======================== +How to create, open, and submit your work +========================================= -- There are ``all``, ``mpi``, ``omp``, ``seq``, ``stl``, ``tbb`` folders in the ``tasks`` directory. Move to a folder of your task. Create a directory named ``__``. +This section reflects the current integration flow used in semester repositories. It is a practical, step-by-step checklist tailored for students. - Example: ``seq/nesterov_a_vector_sum``. Please name all tasks **with the same** name directory. If the ``seq`` task is named ``seq/nesterov_a_vector_sum``, then the ``omp`` task must be named ``omp/nesterov_a_vector_sum``. +Repository and branch +--------------------- +- Fork the semester repository for your group (processes/threads, program). +- Create a branch named exactly as your task folder: + ``__`` (e.g., ``nesterov_a_elem_vec_sum``). -- Navigate into the newly created folder and begin your work on the task. The folder must contain only 4 directories with files: - - - ``data`` - Directory with own data files for functional testing of the task. - - ``func_tests`` - Directory with Google tests for functional testing of the task. - - ``include`` - Directory for header files with function prototypes. - - ``perf_tests`` - Directory with Google tests for performance testing. The number of tests must be 2: ``run_task`` and ``run_pipeline``. - - ``src`` - Directory with source files containing the function implementations. +Prerequisites +------------- +- Install tools and dependencies (see ``User Guide → Environment``). +- Verify you can configure and build the project locally with CMake. +- If you work from a fork, clone your fork and set the course repo as upstream. + +Task folder layout (unified) +---------------------------- +Create a folder ``tasks/__/`` with the following layout: -- There must be 10 executable files for running: +- ``common/include/common.hpp`` — shared type aliases and `BaseTask`: - - ``__tests``. For example, ``omp_perf_tests`` - an executable file for performance tests of OpenMP practice tasks. + .. code-block:: cpp + + using InType = int; // example + using OutType = int; // example + using TestType = std::tuple; // if needed + using BaseTask = ppc::task::Task; + +- Technology implementations (add only those required by the semester): + - Processes (MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` + - Threads: ``seq``, ``omp``, ``tbb``, ``stl`` (same include/src split) -- All prototypes and classes in the ``include`` directory must be namespace-escaped. Name your namespace as follows: + Each implementation defines a class derived from ``BaseTask`` and + overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, + ``PostProcessingImpl``. Also add: .. code-block:: cpp - namespace ___ { - ... - } - e.g. - namespace nesterov_a_test_task_seq { + static constexpr ppc::task::TypeOfTask GetStaticTypeOfTask() { return ppc::task::TypeOfTask::kMPI; } + // or kSEQ/kOMP/kTBB/kSTL as appropriate + + Minimal skeleton (example for SEQ): + + .. code-block:: cpp + + // seq/include/ops_seq.hpp + #pragma once + #include "__/common/include/common.hpp" + namespace __ { + class MyTaskSEQ : public BaseTask { + public: + static constexpr ppc::task::TypeOfTask GetStaticTypeOfTask() { return ppc::task::TypeOfTask::kSEQ; } + explicit MyTaskSEQ(const InType& in); + private: + bool ValidationImpl() override; + bool PreProcessingImpl() override; + bool RunImpl() override; + bool PostProcessingImpl() override; + }; + } // namespace __ + + .. code-block:: cpp + + // seq/src/ops_seq.cpp + #include "__/seq/include/ops_seq.hpp" + namespace __ { + MyTaskSEQ::MyTaskSEQ(const InType& /*in*/) : BaseTask(/*in*/ InType{}) {} + bool MyTaskSEQ::ValidationImpl() { return true; } + bool MyTaskSEQ::PreProcessingImpl() { return true; } + bool MyTaskSEQ::RunImpl() { /* compute */ return true; } + bool MyTaskSEQ::PostProcessingImpl() { /* write result */ return true; } + } // namespace __ - class TestTaskSequential : public ppc::core::Task { - ... - }; +- Tests (unified location): + - ``tests/functional/main.cpp`` — functional tests built on ``ppc::util::BaseRunFuncTests`` and helpers. + - ``tests/performance/main.cpp`` — performance tests built on ``ppc::util::BaseRunPerfTests`` + ``MakeAllPerfTasks``. - } // namespace nesterov_a_test_task_seq +Functional tests example: -- Name your group of tests and individual test cases as follows: +.. code-block:: cpp - - For functional tests (for maximum coverage): + const auto kTasks = std::tuple_cat( + ppc::util::AddFuncTask(params, PPC_SETTINGS_), + ppc::util::AddFuncTask(params, PPC_SETTINGS_) + ); + INSTANTIATE_TEST_SUITE_P(..., MyFuncTests, ppc::util::ExpandToValues(kTasks), ...); - .. code-block:: cpp +Use ``PPC_ID_`` to resolve resources from ``data/`` when needed. - TEST(___, ) { - ... - } - e.g. - TEST(nesterov_a_vector_sum_omp, test_sum) { - ... - } +Performance tests example: - - For performance tests (only 2 tests - ``pipeline`` and ``task`` - no more no less): +.. code-block:: cpp - .. code-block:: cpp + const auto kAllPerfTasks = ppc::util::MakeAllPerfTasks(PPC_SETTINGS_); + INSTANTIATE_TEST_SUITE_P(..., MyPerfTests, ppc::util::TupleToGTestValues(kAllPerfTasks), ...); - TEST(___, ) { - ... - } - e.g. - TEST(nesterov_a_vector_sum_stl, test_pipeline_run) { - ... - } - TEST(nesterov_a_vector_sum_stl, test_task_run) { - ... - } +Tips for tests +-------------- +- Keep tests deterministic and under time limits; prefer env vars (see ``User Guide → Environment Variables``) over sleeps. +- Use ``PPC_ID_`` to access files from ``data/``. +- Cover edge cases in functional tests; add exactly two performance test styles (``task`` and ``pipeline``) inside the suite. -- Name your pull request as follows: +- ``data/`` — optional input files for tests (e.g., images). +- ``settings.json`` — enable required technologies for your semester, e.g.: - - For tasks: - - .. code-block:: + .. code-block:: json - . Task . Variant . Technology . . - Нестеров Александр. Задача 1. Вариант 123. Технология MPI. Сумма элементов вектора. + { "tasks_type": "processes", "tasks": { "mpi": "enabled", "seq": "enabled" } } -- Provide the full task definition in the pull request's description. +- ``info.json`` — student metadata used in automation (scoreboard, macros): + + .. code-block:: json - Example pull request can be found in the repository's pull requests. + { "student": { "first_name": "Имя", "last_name": "Фамилия", "middle_name": "Отчество", "group_number": "Группа", "task_number": "1" } } + +Build and local run +------------------- +- Configure and build: + + .. code-block:: bash -- Work on your forked repository. Keep your work on a separate branch (not on ``master``)!!! Name your branch the same as your task's folder. To create a branch, run: + cmake -S . -B build -DENABLE_ADDRESS_SANITIZER=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo + cmake --build build -j +- Run tests via helper: + .. code-block:: bash - git checkout -b nesterov_a_vector_sum_mpi + export PPC_NUM_THREADS=4 + export PPC_NUM_PROC=2 + python3 scripts/run_tests.py --running-type threads --counts 1 2 4 + python3 scripts/run_tests.py --running-type processes --counts 2 4 + python3 scripts/run_tests.py --running-type performance + +Executables (where to find tests) +--------------------------------- +- ``build/bin`` (or ``install/bin``): + - ``core_func_tests`` — core library tests first + - ``ppc_func_tests`` — functional tests for all tasks/technologies + - ``ppc_perf_tests`` — performance tests for all tasks/technologies -**Failing to follow the rules will result in a red project build.** +The runner applies gtest filters automatically to select technology suites. + +Pull Request +------------ +- Title format (example): + + ``<Фамилия Имя>. Технология . <Название задачи>. Вариант .`` + +- Description should include: + - Полное описание задачи; номер варианта; используемая технология + - Краткое описание реализации и отчёта + - Чек-лист (CI зелёный в форке, clang-format/clang-tidy пройдены, функциональные/перф тесты ок, ветка названа как директория задачи, достоверность сведений). + +PR checklist template (body) +---------------------------- + +.. code-block:: markdown + + ## Description + - Task: + - Variant: + - Technology: + - Summary: Brief description of your implementation and report + + --- + + ## Checklist + - [ ] CI is green in my fork (build, tests, docs) + - [ ] Task folder is named `__` and matches branch name + - [ ] clang-format passed locally + - [ ] clang-tidy passed locally (no warnings/errors introduced) + - [ ] Functional tests pass locally + - [ ] Performance tests pass locally + - [ ] Report (`report.md`) is added and follows the template + - [ ] I confirm that provided information is truthful + +Common pitfalls (read before pushing) +------------------------------------- +- Wrong folder/branch name. Must be ``__`` everywhere. +- Missing or wrong ``GetStaticTypeOfTask`` value for a technology. +- Tests rely on randomness or sleeps instead of env time limits. +- ``settings.json`` doesn’t enable a required technology — tests won’t run. +- Namespace doesn’t match the folder name and collides with others. +- Performance tests count or naming deviates from the required patterns. + +Useful examples to reference +---------------------------- +- Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, ``tasks/example_processes_3`` +- Threads: ``tasks/example_threads`` + +- Work from your fork in a dedicated branch (not ``master``). Branch name must match your task folder. + +Notes +----- +- All classes should live in a unique namespace (e.g., ``__``). +- Keep tests deterministic and within time limits; prefer env vars over sleeps. +- Follow code style (clang-format/clang-tidy), and run pre-commit hooks locally.