From c19b22b93c48e6b4e72d5e3a1f7f5490a83d79a8 Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 01:55:58 +0200 Subject: [PATCH 01/12] Rework example task layout --- cmake/functions.cmake | 52 +++ docs/common_information/introduction.rst | 2 +- .../locale/en/LC_MESSAGES/user_guide/build.po | 2 +- .../en/LC_MESSAGES/user_guide/submit_work.po | 6 +- .../common_information/introduction.po | 8 +- .../locale/ru/LC_MESSAGES/user_guide/build.po | 4 +- .../ru/LC_MESSAGES/user_guide/submit_work.po | 12 +- docs/user_guide/build.rst | 6 +- docs/user_guide/submit_work.rst | 12 +- modules/task/include/task.hpp | 18 +- modules/task/tests/task_tests.cpp | 11 + modules/util/include/func_test_util.hpp | 15 +- modules/util/include/perf_test_util.hpp | 11 +- scoreboard/data/copying.yml | 4 +- scoreboard/main.py | 316 +++++++++--------- scripts/create_perf_table.py | 13 +- tasks/CMakeLists.txt | 7 +- tasks/example/common/include/common.hpp | 51 +++ .../data/pic.ppm | Bin tasks/example/info.json | 8 + tasks/example/processes/report.md | 9 + .../processes/t1}/mpi/include/ops_mpi.hpp | 6 +- tasks/example/processes/t1/mpi/report.md | 3 + .../processes/t1}/mpi/src/ops_mpi.cpp | 8 +- tasks/example/processes/t1/report.md | 8 + .../processes/t1}/seq/include/ops_seq.hpp | 6 +- tasks/example/processes/t1/seq/report.md | 3 + .../processes/t1}/seq/src/ops_seq.cpp | 8 +- .../processes/t1}/tests/.clang-tidy | 0 .../processes/t1}/tests/functional/main.cpp | 16 +- .../processes/t1}/tests/performance/main.cpp | 12 +- .../processes/t2}/mpi/include/ops_mpi.hpp | 6 +- tasks/example/processes/t2/mpi/report.md | 3 + .../processes/t2}/mpi/src/ops_mpi.cpp | 8 +- tasks/example/processes/t2/report.md | 8 + .../processes/t2}/seq/include/ops_seq.hpp | 6 +- tasks/example/processes/t2/seq/report.md | 3 + .../processes/t2}/seq/src/ops_seq.cpp | 8 +- .../processes/t2}/tests/.clang-tidy | 0 .../processes/t2}/tests/functional/main.cpp | 16 +- .../processes/t2}/tests/performance/main.cpp | 12 +- .../processes/t3}/mpi/include/ops_mpi.hpp | 6 +- tasks/example/processes/t3/mpi/report.md | 3 + .../processes/t3}/mpi/src/ops_mpi.cpp | 8 +- tasks/example/processes/t3/report.md | 8 + .../processes/t3}/seq/include/ops_seq.hpp | 6 +- tasks/example/processes/t3/seq/report.md | 3 + .../processes/t3}/seq/src/ops_seq.cpp | 8 +- .../processes/t3}/tests/.clang-tidy | 0 .../processes/t3}/tests/functional/main.cpp | 16 +- .../processes/t3}/tests/performance/main.cpp | 12 +- tasks/example/report.md | 22 ++ tasks/example/settings.json | 25 ++ .../threads}/all/include/ops_all.hpp | 6 +- tasks/example/threads/all/report.md | 3 + .../threads}/all/src/ops_all.cpp | 8 +- .../threads}/omp/include/ops_omp.hpp | 6 +- tasks/example/threads/omp/report.md | 3 + .../threads}/omp/src/ops_omp.cpp | 8 +- tasks/example/threads/report.md | 11 + .../threads}/seq/include/ops_seq.hpp | 6 +- tasks/example/threads/seq/report.md | 3 + .../threads}/seq/src/ops_seq.cpp | 8 +- .../threads}/stl/include/ops_stl.hpp | 6 +- tasks/example/threads/stl/report.md | 3 + .../threads}/stl/src/ops_stl.cpp | 8 +- .../threads}/tbb/include/ops_tbb.hpp | 6 +- tasks/example/threads/tbb/report.md | 3 + .../threads}/tbb/src/ops_tbb.cpp | 8 +- .../threads}/tests/.clang-tidy | 0 .../threads}/tests/functional/main.cpp | 28 +- .../threads}/tests/performance/main.cpp | 18 +- .../common/include/common.hpp | 15 - tasks/example_processes/info.json | 7 - tasks/example_processes/report.md | 0 tasks/example_processes/settings.json | 7 - .../common/include/common.hpp | 15 - tasks/example_processes_2/data/pic.ppm | Bin 23 -> 0 bytes tasks/example_processes_2/info.json | 7 - tasks/example_processes_2/report.md | 0 tasks/example_processes_2/settings.json | 7 - .../common/include/common.hpp | 15 - tasks/example_processes_3/data/pic.ppm | Bin 23 -> 0 bytes tasks/example_processes_3/info.json | 7 - tasks/example_processes_3/report.md | 0 tasks/example_processes_3/settings.json | 7 - tasks/example_threads/all/report.md | 0 .../example_threads/common/include/common.hpp | 15 - tasks/example_threads/data/pic.ppm | Bin 23 -> 0 bytes tasks/example_threads/info.json | 7 - tasks/example_threads/omp/report.md | 0 tasks/example_threads/report.md | 0 tasks/example_threads/seq/report.md | 0 tasks/example_threads/settings.json | 10 - tasks/example_threads/stl/report.md | 0 tasks/example_threads/tbb/report.md | 0 96 files changed, 630 insertions(+), 455 deletions(-) create mode 100644 tasks/example/common/include/common.hpp rename tasks/{example_processes => example}/data/pic.ppm (100%) create mode 100644 tasks/example/info.json create mode 100644 tasks/example/processes/report.md rename tasks/{example_processes => example/processes/t1}/mpi/include/ops_mpi.hpp (74%) create mode 100644 tasks/example/processes/t1/mpi/report.md rename tasks/{example_processes => example/processes/t1}/mpi/src/ops_mpi.cpp (87%) create mode 100644 tasks/example/processes/t1/report.md rename tasks/{example_threads => example/processes/t1}/seq/include/ops_seq.hpp (75%) create mode 100644 tasks/example/processes/t1/seq/report.md rename tasks/{example_threads => example/processes/t1}/seq/src/ops_seq.cpp (86%) rename tasks/{example_processes => example/processes/t1}/tests/.clang-tidy (100%) rename tasks/{example_processes => example/processes/t1}/tests/functional/main.cpp (86%) rename tasks/{example_processes => example/processes/t1}/tests/performance/main.cpp (71%) rename tasks/{example_processes_2 => example/processes/t2}/mpi/include/ops_mpi.hpp (73%) create mode 100644 tasks/example/processes/t2/mpi/report.md rename tasks/{example_processes_3 => example/processes/t2}/mpi/src/ops_mpi.cpp (87%) create mode 100644 tasks/example/processes/t2/report.md rename tasks/{example_processes => example/processes/t2}/seq/include/ops_seq.hpp (74%) create mode 100644 tasks/example/processes/t2/seq/report.md rename tasks/{example_processes => example/processes/t2}/seq/src/ops_seq.cpp (85%) rename tasks/{example_processes_2 => example/processes/t2}/tests/.clang-tidy (100%) rename tasks/{example_processes_2 => example/processes/t2}/tests/functional/main.cpp (85%) rename tasks/{example_processes_2 => example/processes/t2}/tests/performance/main.cpp (70%) rename tasks/{example_processes_3 => example/processes/t3}/mpi/include/ops_mpi.hpp (73%) create mode 100644 tasks/example/processes/t3/mpi/report.md rename tasks/{example_processes_2 => example/processes/t3}/mpi/src/ops_mpi.cpp (87%) create mode 100644 tasks/example/processes/t3/report.md rename tasks/{example_processes_3 => example/processes/t3}/seq/include/ops_seq.hpp (73%) create mode 100644 tasks/example/processes/t3/seq/report.md rename tasks/{example_processes_2 => example/processes/t3}/seq/src/ops_seq.cpp (85%) rename tasks/{example_processes_3 => example/processes/t3}/tests/.clang-tidy (100%) rename tasks/{example_processes_3 => example/processes/t3}/tests/functional/main.cpp (85%) rename tasks/{example_processes_3 => example/processes/t3}/tests/performance/main.cpp (69%) create mode 100644 tasks/example/report.md create mode 100644 tasks/example/settings.json rename tasks/{example_threads => example/threads}/all/include/ops_all.hpp (75%) create mode 100644 tasks/example/threads/all/report.md rename tasks/{example_threads => example/threads}/all/src/ops_all.cpp (90%) rename tasks/{example_threads => example/threads}/omp/include/ops_omp.hpp (75%) create mode 100644 tasks/example/threads/omp/report.md rename tasks/{example_threads => example/threads}/omp/src/ops_omp.cpp (86%) create mode 100644 tasks/example/threads/report.md rename tasks/{example_processes_2 => example/threads}/seq/include/ops_seq.hpp (73%) create mode 100644 tasks/example/threads/seq/report.md rename tasks/{example_processes_3 => example/threads}/seq/src/ops_seq.cpp (85%) rename tasks/{example_threads => example/threads}/stl/include/ops_stl.hpp (75%) create mode 100644 tasks/example/threads/stl/report.md rename tasks/{example_threads => example/threads}/stl/src/ops_stl.cpp (86%) rename tasks/{example_threads => example/threads}/tbb/include/ops_tbb.hpp (75%) create mode 100644 tasks/example/threads/tbb/report.md rename tasks/{example_threads => example/threads}/tbb/src/ops_tbb.cpp (86%) rename tasks/{example_threads => example/threads}/tests/.clang-tidy (100%) rename tasks/{example_threads => example/threads}/tests/functional/main.cpp (79%) rename tasks/{example_threads => example/threads}/tests/performance/main.cpp (66%) delete mode 100644 tasks/example_processes/common/include/common.hpp delete mode 100644 tasks/example_processes/info.json delete mode 100644 tasks/example_processes/report.md delete mode 100644 tasks/example_processes/settings.json delete mode 100644 tasks/example_processes_2/common/include/common.hpp delete mode 100644 tasks/example_processes_2/data/pic.ppm delete mode 100644 tasks/example_processes_2/info.json delete mode 100644 tasks/example_processes_2/report.md delete mode 100644 tasks/example_processes_2/settings.json delete mode 100644 tasks/example_processes_3/common/include/common.hpp delete mode 100644 tasks/example_processes_3/data/pic.ppm delete mode 100644 tasks/example_processes_3/info.json delete mode 100644 tasks/example_processes_3/report.md delete mode 100644 tasks/example_processes_3/settings.json delete mode 100644 tasks/example_threads/all/report.md delete mode 100644 tasks/example_threads/common/include/common.hpp delete mode 100644 tasks/example_threads/data/pic.ppm delete mode 100644 tasks/example_threads/info.json delete mode 100644 tasks/example_threads/omp/report.md delete mode 100644 tasks/example_threads/report.md delete mode 100644 tasks/example_threads/seq/report.md delete mode 100644 tasks/example_threads/settings.json delete mode 100644 tasks/example_threads/stl/report.md delete mode 100644 tasks/example_threads/tbb/report.md diff --git a/cmake/functions.cmake b/cmake/functions.cmake index 0c8c3cc57..cb7f70843 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -97,3 +97,55 @@ function(ppc_configure_subproject SUBDIR) "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}") endforeach() endfunction() + +function(ppc_configure_meta_part PROJ_NAME BASE_DIR) + set(TEST_DIR "${BASE_DIR}/tests") + set(TEST_EXECUTABLES "") + + add_tests(USE_FUNC_TESTS ${FUNC_TEST_EXEC} functional) + add_tests(USE_PERF_TESTS ${PERF_TEST_EXEC} performance) + + message(STATUS " -- ${PROJ_NAME}") + + foreach(IMPL IN LISTS PPC_IMPLEMENTATIONS) + setup_implementation( + NAME + ${IMPL} + PROJ_NAME + ${PROJ_NAME} + TESTS + "${TEST_EXECUTABLES}" + BASE_DIR + "${BASE_DIR}") + endforeach() +endfunction() + +function(ppc_configure_meta_project SUBDIR) + add_compile_definitions( + PPC_SETTINGS_${SUBDIR}="${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/settings.json" + PPC_ID_${SUBDIR}="${SUBDIR}") + + project(${SUBDIR}) + message(STATUS "${SUBDIR}") + + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/threads") + ppc_configure_meta_part( + ${SUBDIR}_threads + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/threads") + endif() + + file( + GLOB process_task_dirs + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/processes" + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/processes/*") + list(SORT process_task_dirs) + foreach(PROCESS_TASK IN LISTS process_task_dirs) + if(NOT IS_DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/processes/${PROCESS_TASK}") + continue() + endif() + ppc_configure_meta_part( + ${SUBDIR}_processes_${PROCESS_TASK} + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/processes/${PROCESS_TASK}") + endforeach() +endfunction() diff --git a/docs/common_information/introduction.rst b/docs/common_information/introduction.rst index c47e4b086..8fca1e350 100644 --- a/docs/common_information/introduction.rst +++ b/docs/common_information/introduction.rst @@ -14,7 +14,7 @@ Practice - Task distribution is random for each student. - 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``). +- Examples are provided in the unified ``tasks/example`` tree with ``threads`` and ``processes/t1``..``processes/t3`` sections. - 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. diff --git a/docs/locale/en/LC_MESSAGES/user_guide/build.po b/docs/locale/en/LC_MESSAGES/user_guide/build.po index 27ad56bbd..4481e2e40 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/build.po @@ -57,7 +57,7 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=\"example_threads;example_processes\"``, " +"semicolon list, for example ``-D PPC_TASKS=\"example\"``, " "to limit the build." 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 598369c39..a13f88ce6 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po @@ -241,12 +241,12 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " -"``tasks/example_processes_3``" +"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:219 -msgid "Threads: ``tasks/example_threads``" +msgid "Threads: ``tasks/example/threads``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:221 diff --git a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po index 8d82fb1c8..8a455cd59 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po @@ -80,10 +80,10 @@ msgstr "Дедлайны задаются на каждую задачу. Под #: ../../../../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``)." +"Examples are provided in ``tasks/example/threads`` and " +"``tasks/example/processes/t1`` (and extended variations " +"``tasks/example/processes/t2`` / ``tasks/example/processes/t3``)." +msgstr "Примеры размещены в ``tasks/example/threads`` и ``tasks/example/processes/t1`` (а также расширенные варианты: ``tasks/example/processes/t2`` / ``tasks/example/processes/t3``)." #: ../../../../docs/common_information/introduction.rst:24 msgid "" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/build.po b/docs/locale/ru/LC_MESSAGES/user_guide/build.po index 558ba494a..62c0879c6 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/build.po @@ -57,12 +57,12 @@ msgstr "``-D USE_PERF_TESTS=ON`` включает тесты на произво #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=\"example_threads;example_processes\"``, " +"semicolon list, for example ``-D PPC_TASKS=\"example\"``, " "to limit the build." msgstr "" "``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну " "задачу или список через точку с запятой, например " -"``-D PPC_TASKS=\"example_threads;example_processes\"``, чтобы ограничить " +"``-D PPC_TASKS=\"example\"``, чтобы ограничить " "сборку." #: ../../../../docs/user_guide/build.rst:32 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 f32859fb5..48de8bf71 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po @@ -292,15 +292,15 @@ msgstr "Полезные примеры для ориентирования" #: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " -"``tasks/example_processes_3``" +"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" msgstr "" -"Процессы: ``tasks/example_processes``, ``tasks/example_processes_2``, " -"``tasks/example_processes_3``" +"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" #: ../../../../docs/user_guide/submit_work.rst:219 -msgid "Threads: ``tasks/example_threads``" -msgstr "Потоки: ``tasks/example_threads``" +msgid "Threads: ``tasks/example/threads``" +msgstr "Потоки: ``tasks/example/threads``" #: ../../../../docs/user_guide/submit_work.rst:221 msgid "" diff --git a/docs/user_guide/build.rst b/docs/user_guide/build.rst index 622c71263..09ee1ca80 100644 --- a/docs/user_guide/build.rst +++ b/docs/user_guide/build.rst @@ -13,7 +13,7 @@ Navigate to the project root. .. code-block:: bash - cmake -S . -B build -DPPC_TASKS="example_threads;example_processes" -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release + cmake -S . -B build -DPPC_TASKS=example -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release Optional: enable sanitizers for local debugging @@ -27,8 +27,8 @@ Navigate to the project root. - ``-D USE_FUNC_TESTS=ON`` enable functional tests. - ``-D USE_PERF_TESTS=ON`` enable performance tests. - ``-D PPC_TASKS=all`` builds every task (default). Pass one task or a semicolon list, - for example ``-D PPC_TASKS="example_threads;example_processes"``, to limit - the build. + for example ``-D PPC_TASKS=example``, to limit the build. Meta-layout tasks + with ``threads`` and ``processes`` subtrees are built as one selected task. - ``-D PPC_IMPLEMENTATIONS="seq;omp"`` select implementation folders to configure. - ``-D CMAKE_BUILD_TYPE=Release`` normal build (default). diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index 0d3107302..fe1103c8c 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -107,13 +107,13 @@ Tips for tests .. code-block:: json - { "tasks_type": "processes", "tasks": { "mpi": "enabled", "seq": "enabled" } } + { "tasks": { "mpi": "enabled", "seq": "enabled" } } - ``info.json`` — student metadata used in automation (scoreboard, macros): .. code-block:: json - { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа", "task_number": "1" } } + { "student": { "last_name": "Фамилия", "first_name": "Имя", "middle_name": "Отчество", "group_number": "Группа" } } Build and local run ------------------- @@ -188,8 +188,12 @@ Common pitfalls (read before pushing) Useful examples to reference ---------------------------- -- Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, ``tasks/example_processes_3`` -- Threads: ``tasks/example_threads`` +- Unified example: ``tasks/example`` +- Shared example files: ``tasks/example/settings.json``, ``tasks/example/info.json``, ``tasks/example/common``, ``tasks/example/data`` +- Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}`` +- Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, ``tasks/example/processes/t3`` +- Process tasks keep independent ``seq`` and ``mpi`` implementations under each ``tN`` directory. +- Example reports are tree-shaped: the root report links to section reports and each implementation directory has its own ``report.md``. - Work from your fork in a dedicated branch (not ``master``). Branch name must match your task folder. diff --git a/modules/task/include/task.hpp b/modules/task/include/task.hpp index 1b1512371..8aaaa9d99 100644 --- a/modules/task/include/task.hpp +++ b/modules/task/include/task.hpp @@ -80,7 +80,8 @@ inline std::string GetStringTaskStatus(StatusOfTask status_of_task) { /// @param settings_file_path Path to the JSON file containing task type strings. /// @return Formatted string combining the task type and its corresponding value from the file. /// @throws std::runtime_error If the file cannot be opened. -inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string &settings_file_path) { +inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string &settings_file_path, + std::string_view settings_task_path = {}) { std::ifstream file(settings_file_path); if (!file.is_open()) { throw std::runtime_error("Failed to open " + settings_file_path); @@ -94,8 +95,19 @@ inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string return std::string(type_str); } - const auto &tasks = list_settings->at("tasks"); - return std::string(type_str) + "_" + std::string(tasks.at(std::string(type_str))); + const auto *settings_node = &list_settings->at("tasks"); + for (size_t start = 0; start < settings_task_path.size();) { + const size_t separator = settings_task_path.find('.', start); + const size_t key_size = + separator == std::string_view::npos ? settings_task_path.size() - start : separator - start; + settings_node = &settings_node->at(std::string(settings_task_path.substr(start, key_size))); + if (separator == std::string_view::npos) { + break; + } + start = separator + 1; + } + + return std::string(type_str) + "_" + std::string(settings_node->at(std::string(type_str))); } enum class StateOfTesting : uint8_t { diff --git a/modules/task/tests/task_tests.cpp b/modules/task/tests/task_tests.cpp index 91572832e..07ee633f8 100644 --- a/modules/task/tests/task_tests.cpp +++ b/modules/task/tests/task_tests.cpp @@ -210,6 +210,17 @@ TEST(TaskTest, GetStringTaskTypeEachTypeWithValidFile) { EXPECT_NO_THROW(GetStringTaskType(TypeOfTask::kSEQ, path)); } +TEST(TaskTest, GetStringTaskTypeReadsNestedTaskPath) { + std::string path = "settings_nested.json"; + ScopedFile cleaner(path); + std::ofstream file(path); + file << R"({"tasks": {"processes": {"t2": {"mpi": "disabled", "seq": "enabled"}}}})"; + file.close(); + + EXPECT_EQ(GetStringTaskType(TypeOfTask::kMPI, path, "processes.t2"), "mpi_disabled"); + EXPECT_EQ(GetStringTaskType(TypeOfTask::kSEQ, path, "processes.t2"), "seq_enabled"); +} + TEST(TaskTest, GetStringTaskTypeReturnsUnknownOnDefault) { std::string path = "settings_valid_unknown.json"; ScopedFile cleaner(path); diff --git a/modules/util/include/func_test_util.hpp b/modules/util/include/func_test_util.hpp index 9564b765d..65ade4d54 100644 --- a/modules/util/include/func_test_util.hpp +++ b/modules/util/include/func_test_util.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -133,22 +134,26 @@ auto ExpandToValues(const Tuple &t) { template auto GenTaskTuplesImpl(const SizesContainer &sizes, const std::string &settings_path, + std::string_view settings_task_path, std::index_sequence /*unused*/) { return std::make_tuple(std::make_tuple(ppc::task::TaskGetter, std::string(GetNamespace()) + "_" + - ppc::task::GetStringTaskType(Task::GetStaticTypeOfTask(), settings_path), + ppc::task::GetStringTaskType(Task::GetStaticTypeOfTask(), settings_path, + settings_task_path), std::get(sizes))...); } template -auto TaskListGenerator(const SizesContainer &sizes, const std::string &settings_path) { - return GenTaskTuplesImpl(sizes, settings_path, +auto TaskListGenerator(const SizesContainer &sizes, const std::string &settings_path, + std::string_view settings_task_path = {}) { + return GenTaskTuplesImpl(sizes, settings_path, settings_task_path, std::make_index_sequence>>{}); } template -constexpr auto AddFuncTask(const SizesContainer &sizes, const std::string &settings_path) { - return TaskListGenerator(sizes, settings_path); +constexpr auto AddFuncTask(const SizesContainer &sizes, const std::string &settings_path, + std::string_view settings_task_path = {}) { + return TaskListGenerator(sizes, settings_path, settings_task_path); } } // namespace ppc::util diff --git a/modules/util/include/perf_test_util.hpp b/modules/util/include/perf_test_util.hpp index 8fb0a2abc..a05408d81 100644 --- a/modules/util/include/perf_test_util.hpp +++ b/modules/util/include/perf_test_util.hpp @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -77,7 +78,7 @@ class BaseRunPerfTests : public ::testing::TestWithParam -auto MakePerfTaskTuples(const std::string &settings_path) { +auto MakePerfTaskTuples(const std::string &settings_path, std::string_view settings_task_path = {}) { const auto name = std::string(GetNamespace()) + "_" + - ppc::task::GetStringTaskType(TaskType::GetStaticTypeOfTask(), settings_path); + ppc::task::GetStringTaskType(TaskType::GetStaticTypeOfTask(), settings_path, settings_task_path); return std::make_tuple(std::make_tuple(ppc::task::TaskGetter, name, ppc::performance::PerfResults::TypeOfRunning::kPipeline), @@ -133,8 +134,8 @@ auto TupleToGTestValues(Tuple &&tup) { } template -auto MakeAllPerfTasks(const std::string &settings_path) { - return std::tuple_cat(MakePerfTaskTuples(settings_path)...); +auto MakeAllPerfTasks(const std::string &settings_path, std::string_view settings_task_path = {}) { + return std::tuple_cat(MakePerfTaskTuples(settings_path, settings_task_path)...); } } // namespace ppc::util diff --git a/scoreboard/data/copying.yml b/scoreboard/data/copying.yml index f38f6fbad..0831cc679 100644 --- a/scoreboard/data/copying.yml +++ b/scoreboard/data/copying.yml @@ -9,6 +9,6 @@ threads: processes: copying: mpi: - - example_processes + - example_processes_t1 seq: - - example_processes + - example_processes_t1 diff --git a/scoreboard/main.py b/scoreboard/main.py index b279fc12e..63ecd41c5 100644 --- a/scoreboard/main.py +++ b/scoreboard/main.py @@ -23,6 +23,9 @@ script_dir = Path(__file__).parent tasks_dir = script_dir.parent / "tasks" +task_physical_dirs: dict[str, Path] = {} +task_info_paths: dict[str, Path] = {} +process_task_indices: dict[str, int] = {} # Salt is derived from the repository root directory name (dynamic) REPO_ROOT = script_dir.parent.resolve() # Salt format: "learning_process/" @@ -54,22 +57,7 @@ def _now_msk(): return datetime.now() -def _read_tasks_type(task_dir: Path) -> str | None: - """Read tasks_type from settings.json in the task directory (if present).""" - settings_path = task_dir / "settings.json" - if settings_path.exists(): - try: - import json - - with open(settings_path, "r") as f: - data = json.load(f) - return data.get("tasks_type") # "threads" or "processes" - except Exception as e: - logger.warning("Failed to parse %s: %s", settings_path, e) - return None - - -def _read_task_statuses(task_dir: Path) -> dict[str, str]: +def _read_task_statuses(task_dir: Path) -> dict: """Read per-task-type statuses (enabled/disabled) from settings.json if present.""" settings_path = task_dir / "settings.json" if settings_path.exists(): @@ -80,29 +68,140 @@ def _read_task_statuses(task_dir: Path) -> dict[str, str]: data = json.load(f) tasks_block = data.get("tasks", {}) if isinstance(tasks_block, dict): - return {k: str(v) for k, v in tasks_block.items()} + return tasks_block except Exception as e: logger.warning("Failed to parse task statuses in %s: %s", settings_path, e) return {} +def _read_status_at(status_tree: dict, keys: list[str]) -> str | None: + node = status_tree + for key in keys: + if not isinstance(node, dict) or key not in node: + return None + node = node[key] + return str(node) if isinstance(node, str) else None + + +def _task_info_path(dir_name: str) -> Path: + return task_info_paths.get(dir_name, tasks_dir / dir_name / "info.json") + + +def _student_info_for_dir(dir_name: str) -> dict: + info_path = _task_info_path(dir_name) + if not info_path.exists(): + return {} + try: + with open(info_path, "r") as f: + data = json.load(f) + if isinstance(data.get("student"), dict): + return data.get("student", {}) + except Exception as e: + logger.warning("Failed to parse %s: %s", info_path, e) + return {} + + +def _student_full_name(student: dict) -> str: + full_name = str(student.get("full_name", "")).strip() + if full_name: + return full_name + return " ".join( + part + for part in [ + str(student.get("last_name", "")).strip(), + str(student.get("first_name", "")).strip(), + str(student.get("middle_name", "")).strip(), + ] + if part + ) + + +def _task_physical_dir(dir_name: str) -> Path: + return task_physical_dirs.get(dir_name, tasks_dir / dir_name) + + +def _task_report_exists(dir_name: str, task_type: str) -> bool: + base_dir = _task_physical_dir(dir_name) + typed_report = base_dir / task_type / "report.md" + return typed_report.exists() or (base_dir / "report.md").exists() + + +def _process_task_index_from_name(name: str, fallback: int) -> int: + import re + + match = re.fullmatch(r"t(\d+)", name) + if match: + return int(match.group(1)) + return fallback + + def discover_tasks(tasks_dir, task_types): """Discover tasks and their implementation status from the filesystem. Returns: directories: dict[task_name][task_type] -> status - tasks_type_map: dict[task_name] -> "threads" | "processes" | None + task_category_map: dict[task_name] -> "threads" | "processes" | None """ directories = defaultdict(dict) - tasks_type_map: dict[str, str | None] = {} + task_category_map: dict[str, str | None] = {} if tasks_dir.exists() and tasks_dir.is_dir(): for task_name_dir in tasks_dir.iterdir(): if task_name_dir.is_dir() and task_name_dir.name not in ["common"]: task_name = task_name_dir.name - # Save tasks_type from settings.json if present - tasks_type_map[task_name] = _read_tasks_type(task_name_dir) status_overrides = _read_task_statuses(task_name_dir) + task_info_paths[task_name] = task_name_dir / "info.json" + task_physical_dirs[task_name] = task_name_dir + + threads_dir = task_name_dir / "threads" + processes_dir = task_name_dir / "processes" + is_meta_task = threads_dir.is_dir() or processes_dir.is_dir() + if is_meta_task: + if threads_dir.is_dir(): + logical_name = f"{task_name}_threads" + task_category_map[logical_name] = "threads" + task_info_paths[logical_name] = task_name_dir / "info.json" + task_physical_dirs[logical_name] = threads_dir + for task_type in task_types: + task_type_dir = threads_dir / task_type + if task_type_dir.exists() and task_type_dir.is_dir(): + status = _read_status_at( + status_overrides, ["threads", task_type] + ) + directories[logical_name][task_type] = ( + "disabled" if status == "disabled" else "done" + ) + + if processes_dir.is_dir(): + process_task_dirs = sorted( + p for p in processes_dir.iterdir() if p.is_dir() + ) + for index, process_task_dir in enumerate( + process_task_dirs, start=1 + ): + process_task_name = process_task_dir.name + logical_name = f"{task_name}_processes_{process_task_name}" + task_category_map[logical_name] = "processes" + task_info_paths[logical_name] = task_name_dir / "info.json" + task_physical_dirs[logical_name] = process_task_dir + process_task_indices[logical_name] = ( + _process_task_index_from_name(process_task_name, index) + ) + for task_type in task_types: + task_type_dir = process_task_dir / task_type + if task_type_dir.exists() and task_type_dir.is_dir(): + status = _read_status_at( + status_overrides, + ["processes", process_task_name, task_type], + ) + directories[logical_name][task_type] = ( + "disabled" if status == "disabled" else "done" + ) + continue + + task_category_map[task_name] = ( + "processes" if (task_name_dir / "mpi").is_dir() else "threads" + ) for task_type in task_types: task_type_dir = task_name_dir / task_type if task_type_dir.exists() and task_type_dir.is_dir(): @@ -114,10 +213,10 @@ def discover_tasks(tasks_dir, task_types): else: directories[task_name][task_type] = "done" - return directories, tasks_type_map + return directories, task_category_map -directories, tasks_type_map = discover_tasks(tasks_dir, task_types) +directories, task_category_map = discover_tasks(tasks_dir, task_types) def load_performance_data_threads(perf_stat_file_path: Path) -> dict: @@ -206,18 +305,7 @@ def load_performance_data_processes(perf_stat_file_path: Path) -> dict: mode = lbl break - # Normalize example perf task names to example_processes[_N] - def _norm(name: str) -> str: - import re - - m = re.match(r".*test_task_processes(?P(_\\d+)?)$", name) - if m: - return f"example_processes{m.group('suffix') or ''}" - return name - - base_name_norm = _norm(base_name) - - entry = perf_stats.setdefault(base_name_norm, {"seq": "?", "mpi": "?"}) + entry = perf_stats.setdefault(base_name, {"seq": "?", "mpi": "?"}) if mode == "seq": if seq_val and seq_val != "?": entry["seq"] = seq_val @@ -355,12 +443,12 @@ def _calc_perf_points_from_efficiency(efficiency_str: str, max_points: int) -> f return round(pts, 2) -def _find_process_report_max(points_info, task_number: int) -> int: +def _find_process_report_max(points_info, process_task_index: int) -> int: """Get max report (R) points for process task by ordinal (1..3). Looks up processes.tasks with names like 'mpi_task_1'. """ proc = (points_info.get("processes", {}) or {}).get("tasks", []) - key = f"mpi_task_{task_number}" + key = f"mpi_task_{process_task_index}" for t in proc: if str(t.get("name")) == key: try: @@ -370,12 +458,12 @@ def _find_process_report_max(points_info, task_number: int) -> int: return 0 -def _find_process_points(points_info, task_number: int) -> tuple[int, int, int, int]: +def _find_process_points(points_info, process_task_index: int) -> tuple[int, int, int, int]: """Return (S_mpi, S_seq, A_mpi, R) maxima for a given process task ordinal (1..3). Supports both mapping and list-of-maps (per user's YAML example). """ proc_tasks = (points_info.get("processes", {}) or {}).get("tasks", []) - key = f"mpi_task_{task_number}" + key = f"mpi_task_{process_task_index}" for t in proc_tasks: if str(t.get("name")) == key: @@ -404,9 +492,9 @@ def _extract(obj, k): return 0, 0, 0, 0 -def _find_process_variants_max(points_info, task_number: int) -> int: +def _find_process_variants_max(points_info, process_task_index: int) -> int: proc_tasks = (points_info.get("processes", {}) or {}).get("tasks", []) - key = f"mpi_task_{task_number}" + key = f"mpi_task_{process_task_index}" for t in proc_tasks: if str(t.get("name")) == key: try: @@ -491,8 +579,9 @@ def calculate_deadline_penalty(dir, task_type, status, deadlines_cfg, tasks_dir) "-1", "--format=%ct", str( - tasks_dir - / (dir + ("_disabled" if status == "disabled" else "")) + _task_physical_dir( + dir[: -len("_disabled")] if dir.endswith("_disabled") else dir + ) / task_type ), ] @@ -538,34 +627,16 @@ def _build_rows_for_task_types( rows = [] def _load_student_info_label(dir_name: str): - import json - - info_path = tasks_dir / dir_name / "info.json" - if not info_path.exists(): - return None - try: - with open(info_path, "r") as f: - data = json.load(f) - s = data.get("student", {}) - parts = [p for p in str(s.get("full_name", "")).strip().split() if p] - label = "
".join(parts) - return label if label else None - except Exception: - return None + s = _student_info_for_dir(dir_name) + parts = [p for p in _student_full_name(s).split() if p] + label = "
".join(parts) + return label if label else None def _load_student_fields(dir_name: str): - import json - - info_path = tasks_dir / dir_name / "info.json" - if not info_path.exists(): - return None - try: - with open(info_path, "r") as f: - data = json.load(f) - s = data.get("student", {}) - return str(s.get("full_name", "")).strip(), str(s.get("group_number", "")) - except Exception: + s = _student_info_for_dir(dir_name) + if not s: return None + return _student_full_name(s), str(s.get("group_number", "")) for dir in sorted(dir_names): row_types = [] @@ -595,7 +666,7 @@ def _load_student_fields(dir_name: str): ) # Report presence: award R only if report.md exists inside the task directory - report_present = (tasks_dir / dir / "report.md").exists() + report_present = _task_report_exists(dir, task_type) report_points = _find_report_max(cfg, task_type) if report_present else 0 # Performance points P for non-seq types, based on efficiency @@ -795,9 +866,8 @@ def _compute_display_deadlines_processes(n_items: int) -> list[date]: def _aggregate_process_csv( perf_stat_file_path: Path, base: dict[str, dict] ) -> dict: - """Parse CSV again to ensure merged entries (handles example*_2, _3, etc.).""" + """Parse CSV again to ensure merged seq/mpi entries.""" import csv - import re perf_stats_local = dict(base) if not perf_stat_file_path.exists(): @@ -817,11 +887,7 @@ def _aggregate_process_csv( base_name = task_name[: -len(suff)] mode = lbl break - m = re.match(r".*test_task_processes(?P_\\d+)?$", base_name) - base_norm = ( - f"example_processes{m.group('suffix') or ''}" if m else base_name - ) - entry = perf_stats_local.setdefault(base_norm, {"seq": "?", "mpi": "?"}) + entry = perf_stats_local.setdefault(base_name, {"seq": "?", "mpi": "?"}) if mode == "seq": if seq_val and seq_val != "?": entry["seq"] = seq_val @@ -837,45 +903,22 @@ def _aggregate_process_csv( perf_stats_processes = _aggregate_process_csv(processes_csv, perf_stats_processes) - # Generic aliasing for example process tasks: normalize any *test_task_processes* keys - def _normalize_example_proc_name(name: str) -> str: - import re - - m = re.match(r".*test_task_processes(?P(_\\d+)?)$", name) - if m: - suffix = m.group("suffix") or "" - return f"example_processes{suffix}" - return name - - perf_stats_processes = { - _normalize_example_proc_name(k): v for k, v in perf_stats_processes.items() - } - - # Map example process tasks (nesterov_a_test_task_processes[_2|_3]) to dir names - example_aliases = { - "nesterov_a_test_task_processes": "example_processes", - "nesterov_a_test_task_processes_2": "example_processes_2", - "nesterov_a_test_task_processes_3": "example_processes_3", - } - for src, dst in example_aliases.items(): - if src in perf_stats_processes and dst not in perf_stats_processes: - perf_stats_processes[dst] = perf_stats_processes[src] perf_stats_raw: dict[str, dict] = {} perf_stats_raw.update(perf_stats_threads) for k, v in perf_stats_processes.items(): perf_stats_raw[k] = {**perf_stats_raw.get(k, {}), **v} - # Partition tasks by tasks_type from settings.json + # Partition tasks by category derived from the filesystem layout. threads_task_dirs = [ - name for name, ttype in tasks_type_map.items() if ttype == "threads" + name for name, category in task_category_map.items() if category == "threads" ] processes_task_dirs = [ - name for name, ttype in tasks_type_map.items() if ttype == "processes" + name for name, category in task_category_map.items() if category == "processes" ] - # Fallback: if settings.json is missing, guess by directory name heuristic + # Fallback for directories discovered before category assignment. for name in directories.keys(): - if name not in tasks_type_map or tasks_type_map[name] is None: + if name not in task_category_map or task_category_map[name] is None: if "threads" in name: threads_task_dirs.append(name) elif "processes" in name: @@ -900,22 +943,11 @@ def _merge_perf_maps(existing: dict, updates: dict) -> dict: merged[k] = v return merged - # Precompute mapping: task_number (processes tasks) -> list of directories + # Precompute mapping: process task number -> list of directories. Meta-layout + # tasks derive this from processes/t1, processes/t2, etc. process_tasknum_map: dict[int, list[str]] = {} - for d in directories.keys(): - info_path = tasks_dir / d / "info.json" - if not info_path.exists(): - continue - try: - with open(info_path, "r") as _f: - data = json.load(_f) - num = data.get("student", {}).get("task_number") - if num is None: - continue - num = int(str(num)) - process_tasknum_map.setdefault(num, []).append(d) - except Exception: - continue + for d, num in process_task_indices.items(): + process_tasknum_map.setdefault(num, []).append(d) def _match_dir(csv_key: str) -> str | None: # Strip common suffixes like "_mpi_enabled" etc. to improve matching @@ -931,7 +963,7 @@ def _match_dir(csv_key: str) -> str | None: target = _match_dir(key) if target: targets.add(target) - # 2) If key encodes processes_N, spread to all dirs with that task_number + # 2) If a legacy key encodes processes_N, spread to dirs with that task number m_num = _re.search(r"processes_(\d+)", key) if m_num: try: @@ -939,10 +971,6 @@ def _match_dir(csv_key: str) -> str | None: targets.update(process_tasknum_map.get(num, [])) except Exception: pass - # 3) Fallback: if nothing matched and "threads" in key, apply to example_threads only - if not targets and "threads" in key: - if "example_threads" in directories: - targets.add("example_threads") # Apply merged values to all targets for t in targets: perf_stats[t] = _merge_perf_maps(perf_stats.get(t, {}), vals) @@ -959,21 +987,12 @@ def _match_dir(csv_key: str) -> str | None: # Processes page: build 3 tasks as columns for a single student def _load_student_info(dir_name: str): - info_path = tasks_dir / dir_name / "info.json" - if not info_path.exists(): - return None - try: - with open(info_path, "r") as f: - data = json.load(f) - return data.get("student", {}) - except Exception as e: - logger.warning("Failed to parse %s: %s", info_path, e) - return None + return _student_info_for_dir(dir_name) or None def _identity_key(student: dict) -> str: return "|".join( [ - str(student.get("full_name", "")).strip(), + _student_full_name(student), str(student.get("group_number", "")), ] ) @@ -1037,7 +1056,7 @@ def _build_cell(dir_name: str, ttype: str, perf_map: dict[str, dict]): def _sort_identity(student: dict): return ( - str(student.get("full_name", "")).strip(), + _student_full_name(student), str(student.get("group_number", "")), ) @@ -1050,11 +1069,11 @@ def _build_process_rows(processes_dirs: list[str]): continue key = _identity_key(s) entry = identity_map.setdefault(key, {"student": s, "dir_map": {}}) - try: - tn = int(str(s.get("task_number", "0"))) - except Exception: - tn = 0 - # If task_number is outside expected range (1..3), map to fallback (task-1) + if d in process_task_indices: + tn = process_task_indices[d] + else: + tn = fallback_process_tasknum + # If ordinal is outside expected range (1..3), map to fallback (task-1) if tn not in expected_numbers: tn = fallback_process_tasknum entry["dir_map"][tn] = d @@ -1084,7 +1103,7 @@ def _build_process_rows(processes_dirs: list[str]): status_seq = directories[clean_d].get("seq") has_mpi = status_mpi in ("done", "disabled") has_seq = status_seq in ("done", "disabled") - report_present = (tasks_dir / d / "report.md").exists() + report_present = _task_report_exists(d, "seq") or _task_report_exists(d, "mpi") mpi_eff = group_cells[0].get("efficiency", "N/A") perf_points_mpi = ( @@ -1165,9 +1184,8 @@ def _build_process_rows(processes_dirs: list[str]): ) proc_r_values.append(0) - name_parts = [ - p for p in str(student.get("full_name", "")).strip().split() if p - ] + student_full_name = _student_full_name(student) + name_parts = [p for p in student_full_name.split() if p] name_html = "
".join([p for p in name_parts if p]) or "processes" variants_render = [] @@ -1175,7 +1193,7 @@ def _build_process_rows(processes_dirs: list[str]): vmax = _find_process_variants_max(cfg, n) try: v_idx = assign_variant( - full_name=str(student.get("full_name", "")).strip(), + full_name=student_full_name, group=str(student.get("group_number", "")), repo=f"{REPO_SALT}/processes/task-{n}", num_variants=vmax, @@ -1309,7 +1327,7 @@ def _build_process_rows(processes_dirs: list[str]): def _load_group_number(dir_name: str): import json - info_path = tasks_dir / dir_name / "info.json" + info_path = _task_info_path(dir_name) if not info_path.exists(): return None try: @@ -1389,7 +1407,7 @@ def _slugify(text: str) -> str: # Reuse earlier logic but limited to filtered_dirs def _load_student_info_group(dir_name: str): - info_path = tasks_dir / dir_name / "info.json" + info_path = _task_info_path(dir_name) if not info_path.exists(): return None try: @@ -1402,7 +1420,7 @@ def _load_student_info_group(dir_name: str): def _id_key(stud: dict) -> str: return "|".join( [ - str(stud.get("full_name", "")).strip(), + _student_full_name(stud), str(stud.get("group_number", "")), ] ) diff --git a/scripts/create_perf_table.py b/scripts/create_perf_table.py index a8950e291..14b6d3105 100644 --- a/scripts/create_perf_table.py +++ b/scripts/create_perf_table.py @@ -18,8 +18,8 @@ r"(\w+_test_task_(threads|processes))_(\w+)_enabled:(\w*):(-*\d*\.\d*)" ) # Example formats: -# example_threads_omp_enabled:task_run:0.4749 -# example_processes_2_mpi_enabled:pipeline:0.0507 +# _threads_omp_enabled:task_run:0.4749 +# _processes_t2_mpi_enabled:pipeline:0.0507 # Accept optional suffix after `_enabled` (e.g., `_enabled_size1000000`) before the colon SIMPLE_PATTERN = re.compile( r"(.+?)_(omp|seq|tbb|stl|all|mpi)_enabled[^:]*:(task_run|pipeline):(-*\d*\.\d*)" @@ -165,12 +165,15 @@ def _write_csv(path: str, header: list[str], tasks_list: list[str], table: dict) task_categories[task_name] = "threads" tasks_by_category["threads"].add(task_name) elif len(new_result): - # Extract task name from namespace format; keep it specific (no collapsing to example_*), - # so per-task-number data (processes_2, processes_3, etc.) is preserved. - base = new_result[0][0] # e.g., nesterov_a_test_task_processes + # Extract task name from namespace format and keep it specific. + base = new_result[0][0] # e.g., task_namespace_processes task_category = new_result[0][1] # "threads" or "processes" task_type_token = new_result[0][2] # e.g., "all", "omp", or "2_mpi" task_name = f"{base}_{task_type_token}" + if "_" in task_type_token: + suffix, impl = task_type_token.rsplit("_", 1) + if impl in list_of_type_of_tasks: + task_name = f"{base}_{suffix}" perf_type = new_result[0][3] _ensure_task_tables(result_tables, perf_type, task_name) diff --git a/tasks/CMakeLists.txt b/tasks/CMakeLists.txt index 3905200f7..685457716 100644 --- a/tasks/CMakeLists.txt +++ b/tasks/CMakeLists.txt @@ -42,5 +42,10 @@ foreach(sub IN LISTS selected_tasks) string(JOIN ", " available_tasks_message ${available_tasks}) message(FATAL_ERROR "Unknown PPC_TASKS entry '${sub}'. Available tasks: ${available_tasks_message}") endif() - ppc_configure_subproject(${sub}) + if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${sub}/threads" + OR EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${sub}/processes") + ppc_configure_meta_project(${sub}) + else() + ppc_configure_subproject(${sub}) + endif() endforeach() diff --git a/tasks/example/common/include/common.hpp b/tasks/example/common/include/common.hpp new file mode 100644 index 000000000..0f2d03c48 --- /dev/null +++ b/tasks/example/common/include/common.hpp @@ -0,0 +1,51 @@ +#pragma once + +#include +#include + +#include "task/include/task.hpp" + +namespace example_common { + +using InType = int; +using OutType = int; +using TestType = std::tuple; +using BaseTask = ppc::task::Task; + +} // namespace example_common + +namespace example_threads { + +using example_common::BaseTask; +using example_common::InType; +using example_common::OutType; +using example_common::TestType; + +} // namespace example_threads + +namespace example_processes_t1 { + +using example_common::BaseTask; +using example_common::InType; +using example_common::OutType; +using example_common::TestType; + +} // namespace example_processes_t1 + +namespace example_processes_t2 { + +using example_common::BaseTask; +using example_common::InType; +using example_common::OutType; +using example_common::TestType; + +} // namespace example_processes_t2 + +namespace example_processes_t3 { + +using example_common::BaseTask; +using example_common::InType; +using example_common::OutType; +using example_common::TestType; + +} // namespace example_processes_t3 diff --git a/tasks/example_processes/data/pic.ppm b/tasks/example/data/pic.ppm similarity index 100% rename from tasks/example_processes/data/pic.ppm rename to tasks/example/data/pic.ppm diff --git a/tasks/example/info.json b/tasks/example/info.json new file mode 100644 index 000000000..6e3b44ed9 --- /dev/null +++ b/tasks/example/info.json @@ -0,0 +1,8 @@ +{ + "student": { + "last_name": "last_name", + "first_name": "first_name", + "middle_name": "middle_name", + "group_number": "group_number" + } +} diff --git a/tasks/example/processes/report.md b/tasks/example/processes/report.md new file mode 100644 index 000000000..3af7abdb1 --- /dev/null +++ b/tasks/example/processes/report.md @@ -0,0 +1,9 @@ +# Example Processes + +This section aggregates the MPI/process example tasks. + +Child reports: + +- `t1/report.md` +- `t2/report.md` +- `t3/report.md` diff --git a/tasks/example_processes/mpi/include/ops_mpi.hpp b/tasks/example/processes/t1/mpi/include/ops_mpi.hpp similarity index 74% rename from tasks/example_processes/mpi/include/ops_mpi.hpp rename to tasks/example/processes/t1/mpi/include/ops_mpi.hpp index c85254560..26a76c0e4 100644 --- a/tasks/example_processes/mpi/include/ops_mpi.hpp +++ b/tasks/example/processes/t1/mpi/include/ops_mpi.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t1 { class NesterovATestTaskMPI : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskMPI : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t1 diff --git a/tasks/example/processes/t1/mpi/report.md b/tasks/example/processes/t1/mpi/report.md new file mode 100644 index 000000000..a74a4413b --- /dev/null +++ b/tasks/example/processes/t1/mpi/report.md @@ -0,0 +1,3 @@ +# Example Processes T1 MPI + +MPI implementation for process example task T1. diff --git a/tasks/example_processes/mpi/src/ops_mpi.cpp b/tasks/example/processes/t1/mpi/src/ops_mpi.cpp similarity index 87% rename from tasks/example_processes/mpi/src/ops_mpi.cpp rename to tasks/example/processes/t1/mpi/src/ops_mpi.cpp index 84cafe1f5..32f79bbe6 100644 --- a/tasks/example_processes/mpi/src/ops_mpi.cpp +++ b/tasks/example/processes/t1/mpi/src/ops_mpi.cpp @@ -1,14 +1,14 @@ -#include "example_processes/mpi/include/ops_mpi.hpp" +#include "example/processes/t1/mpi/include/ops_mpi.hpp" #include #include #include -#include "example_processes/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t1 { NesterovATestTaskMPI::NesterovATestTaskMPI(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -69,4 +69,4 @@ bool NesterovATestTaskMPI::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t1 diff --git a/tasks/example/processes/t1/report.md b/tasks/example/processes/t1/report.md new file mode 100644 index 000000000..9e98694eb --- /dev/null +++ b/tasks/example/processes/t1/report.md @@ -0,0 +1,8 @@ +# Example Processes T1 + +First process example task. + +Child reports: + +- `seq/report.md` +- `mpi/report.md` diff --git a/tasks/example_threads/seq/include/ops_seq.hpp b/tasks/example/processes/t1/seq/include/ops_seq.hpp similarity index 75% rename from tasks/example_threads/seq/include/ops_seq.hpp rename to tasks/example/processes/t1/seq/include/ops_seq.hpp index 16eac94de..ced07076a 100644 --- a/tasks/example_threads/seq/include/ops_seq.hpp +++ b/tasks/example/processes/t1/seq/include/ops_seq.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_threads { +namespace example_processes_t1 { class NesterovATestTaskSEQ : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskSEQ : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_threads +} // namespace example_processes_t1 diff --git a/tasks/example/processes/t1/seq/report.md b/tasks/example/processes/t1/seq/report.md new file mode 100644 index 000000000..9ea9d286b --- /dev/null +++ b/tasks/example/processes/t1/seq/report.md @@ -0,0 +1,3 @@ +# Example Processes T1 Seq + +Sequential baseline for process example task T1. diff --git a/tasks/example_threads/seq/src/ops_seq.cpp b/tasks/example/processes/t1/seq/src/ops_seq.cpp similarity index 86% rename from tasks/example_threads/seq/src/ops_seq.cpp rename to tasks/example/processes/t1/seq/src/ops_seq.cpp index 8888b3258..01d753109 100644 --- a/tasks/example_threads/seq/src/ops_seq.cpp +++ b/tasks/example/processes/t1/seq/src/ops_seq.cpp @@ -1,12 +1,12 @@ -#include "example_threads/seq/include/ops_seq.hpp" +#include "example/processes/t1/seq/include/ops_seq.hpp" #include #include -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_processes_t1 { NesterovATestTaskSEQ::NesterovATestTaskSEQ(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -57,4 +57,4 @@ bool NesterovATestTaskSEQ::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_threads +} // namespace example_processes_t1 diff --git a/tasks/example_processes/tests/.clang-tidy b/tasks/example/processes/t1/tests/.clang-tidy similarity index 100% rename from tasks/example_processes/tests/.clang-tidy rename to tasks/example/processes/t1/tests/.clang-tidy diff --git a/tasks/example_processes/tests/functional/main.cpp b/tasks/example/processes/t1/tests/functional/main.cpp similarity index 86% rename from tasks/example_processes/tests/functional/main.cpp rename to tasks/example/processes/t1/tests/functional/main.cpp index 53d325282..e4fd4d36b 100644 --- a/tasks/example_processes/tests/functional/main.cpp +++ b/tasks/example/processes/t1/tests/functional/main.cpp @@ -12,13 +12,13 @@ #include #include -#include "example_processes/common/include/common.hpp" -#include "example_processes/mpi/include/ops_mpi.hpp" -#include "example_processes/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t1/mpi/include/ops_mpi.hpp" +#include "example/processes/t1/seq/include/ops_seq.hpp" #include "util/include/func_test_util.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t1 { class NesterovARunFuncTestsProcesses : public ppc::util::BaseRunFuncTests { public: @@ -45,7 +45,7 @@ class NesterovARunFuncTestsProcesses : public ppc::util::BaseRunFuncTests img; // Read image in RGB to ensure consistent channel count { - std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example_processes, "pic.ppm"); + std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example, "pic.ppm"); auto *data = stbi_load(abs_path.c_str(), &width, &height, &channels, STBI_rgb); if (data == nullptr) { throw std::runtime_error("Failed to load image: " + std::string(stbi_failure_reason())); @@ -78,8 +78,8 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes)); + std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1")); } // namespace @@ -87,4 +87,4 @@ TEST_F(NesterovARunFuncTestsProcesses, MatmulFromPic) { std::apply([this](const auto &...test_params) { (RunTestCase(test_params), ...); }, kTestTasksList); } -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t1 diff --git a/tasks/example_processes/tests/performance/main.cpp b/tasks/example/processes/t1/tests/performance/main.cpp similarity index 71% rename from tasks/example_processes/tests/performance/main.cpp rename to tasks/example/processes/t1/tests/performance/main.cpp index d6240bce4..e36cee0d0 100644 --- a/tasks/example_processes/tests/performance/main.cpp +++ b/tasks/example/processes/t1/tests/performance/main.cpp @@ -2,12 +2,12 @@ #include -#include "example_processes/common/include/common.hpp" -#include "example_processes/mpi/include/ops_mpi.hpp" -#include "example_processes/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t1/mpi/include/ops_mpi.hpp" +#include "example/processes/t1/seq/include/ops_seq.hpp" #include "util/include/perf_test_util.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t1 { class ExampleRunPerfTestProcesses : public ppc::util::BaseRunPerfTests { protected: @@ -31,7 +31,7 @@ class ExampleRunPerfTestProcesses : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example_processes); + ppc::util::MakeAllPerfTasks(PPC_SETTINGS_example, "processes.t1"); } // namespace @@ -39,4 +39,4 @@ TEST_F(ExampleRunPerfTestProcesses, RunPerfModes) { std::apply([this](const auto &...test_params) { (ExecuteTest(test_params), ...); }, kAllPerfTasks); } -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t1 diff --git a/tasks/example_processes_2/mpi/include/ops_mpi.hpp b/tasks/example/processes/t2/mpi/include/ops_mpi.hpp similarity index 73% rename from tasks/example_processes_2/mpi/include/ops_mpi.hpp rename to tasks/example/processes/t2/mpi/include/ops_mpi.hpp index f39ac9489..aac5dd642 100644 --- a/tasks/example_processes_2/mpi/include/ops_mpi.hpp +++ b/tasks/example/processes/t2/mpi/include/ops_mpi.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes_2/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_processes_t2 { class NesterovATestTaskMPI : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskMPI : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_processes_t2 diff --git a/tasks/example/processes/t2/mpi/report.md b/tasks/example/processes/t2/mpi/report.md new file mode 100644 index 000000000..5ce48d217 --- /dev/null +++ b/tasks/example/processes/t2/mpi/report.md @@ -0,0 +1,3 @@ +# Example Processes T2 MPI + +MPI implementation for process example task T2. diff --git a/tasks/example_processes_3/mpi/src/ops_mpi.cpp b/tasks/example/processes/t2/mpi/src/ops_mpi.cpp similarity index 87% rename from tasks/example_processes_3/mpi/src/ops_mpi.cpp rename to tasks/example/processes/t2/mpi/src/ops_mpi.cpp index 7cef9dbb6..13781a6c2 100644 --- a/tasks/example_processes_3/mpi/src/ops_mpi.cpp +++ b/tasks/example/processes/t2/mpi/src/ops_mpi.cpp @@ -1,14 +1,14 @@ -#include "example_processes_3/mpi/include/ops_mpi.hpp" +#include "example/processes/t2/mpi/include/ops_mpi.hpp" #include #include #include -#include "example_processes_3/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_processes_t2 { NesterovATestTaskMPI::NesterovATestTaskMPI(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -69,4 +69,4 @@ bool NesterovATestTaskMPI::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_processes_t2 diff --git a/tasks/example/processes/t2/report.md b/tasks/example/processes/t2/report.md new file mode 100644 index 000000000..9ec20d493 --- /dev/null +++ b/tasks/example/processes/t2/report.md @@ -0,0 +1,8 @@ +# Example Processes T2 + +Second process example task. + +Child reports: + +- `seq/report.md` +- `mpi/report.md` diff --git a/tasks/example_processes/seq/include/ops_seq.hpp b/tasks/example/processes/t2/seq/include/ops_seq.hpp similarity index 74% rename from tasks/example_processes/seq/include/ops_seq.hpp rename to tasks/example/processes/t2/seq/include/ops_seq.hpp index c9608cf0d..b32aa89da 100644 --- a/tasks/example_processes/seq/include/ops_seq.hpp +++ b/tasks/example/processes/t2/seq/include/ops_seq.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t2 { class NesterovATestTaskSEQ : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskSEQ : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t2 diff --git a/tasks/example/processes/t2/seq/report.md b/tasks/example/processes/t2/seq/report.md new file mode 100644 index 000000000..e7bf712bf --- /dev/null +++ b/tasks/example/processes/t2/seq/report.md @@ -0,0 +1,3 @@ +# Example Processes T2 Seq + +Sequential baseline for process example task T2. diff --git a/tasks/example_processes/seq/src/ops_seq.cpp b/tasks/example/processes/t2/seq/src/ops_seq.cpp similarity index 85% rename from tasks/example_processes/seq/src/ops_seq.cpp rename to tasks/example/processes/t2/seq/src/ops_seq.cpp index 2599c518e..60d962f28 100644 --- a/tasks/example_processes/seq/src/ops_seq.cpp +++ b/tasks/example/processes/t2/seq/src/ops_seq.cpp @@ -1,12 +1,12 @@ -#include "example_processes/seq/include/ops_seq.hpp" +#include "example/processes/t2/seq/include/ops_seq.hpp" #include #include -#include "example_processes/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes { +namespace example_processes_t2 { NesterovATestTaskSEQ::NesterovATestTaskSEQ(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -57,4 +57,4 @@ bool NesterovATestTaskSEQ::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes +} // namespace example_processes_t2 diff --git a/tasks/example_processes_2/tests/.clang-tidy b/tasks/example/processes/t2/tests/.clang-tidy similarity index 100% rename from tasks/example_processes_2/tests/.clang-tidy rename to tasks/example/processes/t2/tests/.clang-tidy diff --git a/tasks/example_processes_2/tests/functional/main.cpp b/tasks/example/processes/t2/tests/functional/main.cpp similarity index 85% rename from tasks/example_processes_2/tests/functional/main.cpp rename to tasks/example/processes/t2/tests/functional/main.cpp index 08e3b4495..7ed2d588a 100644 --- a/tasks/example_processes_2/tests/functional/main.cpp +++ b/tasks/example/processes/t2/tests/functional/main.cpp @@ -12,13 +12,13 @@ #include #include -#include "example_processes_2/common/include/common.hpp" -#include "example_processes_2/mpi/include/ops_mpi.hpp" -#include "example_processes_2/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t2/mpi/include/ops_mpi.hpp" +#include "example/processes/t2/seq/include/ops_seq.hpp" #include "util/include/func_test_util.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_processes_t2 { class NesterovARunFuncTestsProcesses2 : public ppc::util::BaseRunFuncTests { public: @@ -45,7 +45,7 @@ class NesterovARunFuncTestsProcesses2 : public ppc::util::BaseRunFuncTests img; // Read image in RGB to ensure consistent channel count { - std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example_processes_2, "pic.ppm"); + std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example, "pic.ppm"); auto *data = stbi_load(abs_path.c_str(), &width, &height, &channels, STBI_rgb); if (data == nullptr) { throw std::runtime_error("Failed to load image: " + std::string(stbi_failure_reason())); @@ -78,8 +78,8 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes_2), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes_2)); + std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2")); } // namespace @@ -87,4 +87,4 @@ TEST_F(NesterovARunFuncTestsProcesses2, MatmulFromPic) { std::apply([this](const auto &...test_params) { (RunTestCase(test_params), ...); }, kTestTasksList); } -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_processes_t2 diff --git a/tasks/example_processes_2/tests/performance/main.cpp b/tasks/example/processes/t2/tests/performance/main.cpp similarity index 70% rename from tasks/example_processes_2/tests/performance/main.cpp rename to tasks/example/processes/t2/tests/performance/main.cpp index dd184c15a..03f757771 100644 --- a/tasks/example_processes_2/tests/performance/main.cpp +++ b/tasks/example/processes/t2/tests/performance/main.cpp @@ -2,12 +2,12 @@ #include -#include "example_processes_2/common/include/common.hpp" -#include "example_processes_2/mpi/include/ops_mpi.hpp" -#include "example_processes_2/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t2/mpi/include/ops_mpi.hpp" +#include "example/processes/t2/seq/include/ops_seq.hpp" #include "util/include/perf_test_util.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_processes_t2 { class ExampleRunPerfTestProcesses2 : public ppc::util::BaseRunPerfTests { protected: @@ -31,7 +31,7 @@ class ExampleRunPerfTestProcesses2 : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example_processes_2); + ppc::util::MakeAllPerfTasks(PPC_SETTINGS_example, "processes.t2"); } // namespace @@ -39,4 +39,4 @@ TEST_F(ExampleRunPerfTestProcesses2, RunPerfModes) { std::apply([this](const auto &...test_params) { (ExecuteTest(test_params), ...); }, kAllPerfTasks); } -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_processes_t2 diff --git a/tasks/example_processes_3/mpi/include/ops_mpi.hpp b/tasks/example/processes/t3/mpi/include/ops_mpi.hpp similarity index 73% rename from tasks/example_processes_3/mpi/include/ops_mpi.hpp rename to tasks/example/processes/t3/mpi/include/ops_mpi.hpp index a1433dc8f..e17999c71 100644 --- a/tasks/example_processes_3/mpi/include/ops_mpi.hpp +++ b/tasks/example/processes/t3/mpi/include/ops_mpi.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes_3/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_processes_t3 { class NesterovATestTaskMPI : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskMPI : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_processes_t3 diff --git a/tasks/example/processes/t3/mpi/report.md b/tasks/example/processes/t3/mpi/report.md new file mode 100644 index 000000000..be49f9579 --- /dev/null +++ b/tasks/example/processes/t3/mpi/report.md @@ -0,0 +1,3 @@ +# Example Processes T3 MPI + +MPI implementation for process example task T3. diff --git a/tasks/example_processes_2/mpi/src/ops_mpi.cpp b/tasks/example/processes/t3/mpi/src/ops_mpi.cpp similarity index 87% rename from tasks/example_processes_2/mpi/src/ops_mpi.cpp rename to tasks/example/processes/t3/mpi/src/ops_mpi.cpp index d3570f350..6dc99e99e 100644 --- a/tasks/example_processes_2/mpi/src/ops_mpi.cpp +++ b/tasks/example/processes/t3/mpi/src/ops_mpi.cpp @@ -1,14 +1,14 @@ -#include "example_processes_2/mpi/include/ops_mpi.hpp" +#include "example/processes/t3/mpi/include/ops_mpi.hpp" #include #include #include -#include "example_processes_2/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_processes_t3 { NesterovATestTaskMPI::NesterovATestTaskMPI(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -69,4 +69,4 @@ bool NesterovATestTaskMPI::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_processes_t3 diff --git a/tasks/example/processes/t3/report.md b/tasks/example/processes/t3/report.md new file mode 100644 index 000000000..74925a018 --- /dev/null +++ b/tasks/example/processes/t3/report.md @@ -0,0 +1,8 @@ +# Example Processes T3 + +Third process example task. + +Child reports: + +- `seq/report.md` +- `mpi/report.md` diff --git a/tasks/example_processes_3/seq/include/ops_seq.hpp b/tasks/example/processes/t3/seq/include/ops_seq.hpp similarity index 73% rename from tasks/example_processes_3/seq/include/ops_seq.hpp rename to tasks/example/processes/t3/seq/include/ops_seq.hpp index df27f2273..3591bb1cf 100644 --- a/tasks/example_processes_3/seq/include/ops_seq.hpp +++ b/tasks/example/processes/t3/seq/include/ops_seq.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes_3/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_processes_t3 { class NesterovATestTaskSEQ : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskSEQ : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_processes_t3 diff --git a/tasks/example/processes/t3/seq/report.md b/tasks/example/processes/t3/seq/report.md new file mode 100644 index 000000000..2d526ea71 --- /dev/null +++ b/tasks/example/processes/t3/seq/report.md @@ -0,0 +1,3 @@ +# Example Processes T3 Seq + +Sequential baseline for process example task T3. diff --git a/tasks/example_processes_2/seq/src/ops_seq.cpp b/tasks/example/processes/t3/seq/src/ops_seq.cpp similarity index 85% rename from tasks/example_processes_2/seq/src/ops_seq.cpp rename to tasks/example/processes/t3/seq/src/ops_seq.cpp index ea4a0c629..91b89b399 100644 --- a/tasks/example_processes_2/seq/src/ops_seq.cpp +++ b/tasks/example/processes/t3/seq/src/ops_seq.cpp @@ -1,12 +1,12 @@ -#include "example_processes_2/seq/include/ops_seq.hpp" +#include "example/processes/t3/seq/include/ops_seq.hpp" #include #include -#include "example_processes_2/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_processes_t3 { NesterovATestTaskSEQ::NesterovATestTaskSEQ(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -57,4 +57,4 @@ bool NesterovATestTaskSEQ::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_processes_t3 diff --git a/tasks/example_processes_3/tests/.clang-tidy b/tasks/example/processes/t3/tests/.clang-tidy similarity index 100% rename from tasks/example_processes_3/tests/.clang-tidy rename to tasks/example/processes/t3/tests/.clang-tidy diff --git a/tasks/example_processes_3/tests/functional/main.cpp b/tasks/example/processes/t3/tests/functional/main.cpp similarity index 85% rename from tasks/example_processes_3/tests/functional/main.cpp rename to tasks/example/processes/t3/tests/functional/main.cpp index e1e3675e5..d3c615fed 100644 --- a/tasks/example_processes_3/tests/functional/main.cpp +++ b/tasks/example/processes/t3/tests/functional/main.cpp @@ -12,13 +12,13 @@ #include #include -#include "example_processes_3/common/include/common.hpp" -#include "example_processes_3/mpi/include/ops_mpi.hpp" -#include "example_processes_3/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t3/mpi/include/ops_mpi.hpp" +#include "example/processes/t3/seq/include/ops_seq.hpp" #include "util/include/func_test_util.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_processes_t3 { class NesterovARunFuncTestsProcesses3 : public ppc::util::BaseRunFuncTests { public: @@ -45,7 +45,7 @@ class NesterovARunFuncTestsProcesses3 : public ppc::util::BaseRunFuncTests img; // Read image in RGB to ensure consistent channel count { - std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example_processes_3, "pic.ppm"); + std::string abs_path = ppc::util::GetAbsoluteTaskPath(PPC_ID_example, "pic.ppm"); auto *data = stbi_load(abs_path.c_str(), &width, &height, &channels, STBI_rgb); if (data == nullptr) { throw std::runtime_error("Failed to load image: " + std::string(stbi_failure_reason())); @@ -78,8 +78,8 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes_3), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_processes_3)); + std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3")); } // namespace @@ -87,4 +87,4 @@ TEST_F(NesterovARunFuncTestsProcesses3, MatmulFromPic) { std::apply([this](const auto &...test_params) { (RunTestCase(test_params), ...); }, kTestTasksList); } -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_processes_t3 diff --git a/tasks/example_processes_3/tests/performance/main.cpp b/tasks/example/processes/t3/tests/performance/main.cpp similarity index 69% rename from tasks/example_processes_3/tests/performance/main.cpp rename to tasks/example/processes/t3/tests/performance/main.cpp index a50ec2736..2bc5f0a5b 100644 --- a/tasks/example_processes_3/tests/performance/main.cpp +++ b/tasks/example/processes/t3/tests/performance/main.cpp @@ -2,12 +2,12 @@ #include -#include "example_processes_3/common/include/common.hpp" -#include "example_processes_3/mpi/include/ops_mpi.hpp" -#include "example_processes_3/seq/include/ops_seq.hpp" +#include "example/common/include/common.hpp" +#include "example/processes/t3/mpi/include/ops_mpi.hpp" +#include "example/processes/t3/seq/include/ops_seq.hpp" #include "util/include/perf_test_util.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_processes_t3 { class ExampleRunPerfTestProcesses3 : public ppc::util::BaseRunPerfTests { protected: @@ -29,10 +29,10 @@ class ExampleRunPerfTestProcesses3 : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example_processes_3); + ppc::util::MakeAllPerfTasks(PPC_SETTINGS_example, "processes.t3"); TEST_F(ExampleRunPerfTestProcesses3, RunPerfModes) { std::apply([this](const auto &...test_params) { (ExecuteTest(test_params), ...); }, kAllPerfTasks); } -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_processes_t3 diff --git a/tasks/example/report.md b/tasks/example/report.md new file mode 100644 index 000000000..93d634ced --- /dev/null +++ b/tasks/example/report.md @@ -0,0 +1,22 @@ +# Example Task + +This task contains the shared example implementations for threads and processes. + +Report tree: + +- `threads/report.md` +- `threads/seq/report.md` +- `threads/omp/report.md` +- `threads/tbb/report.md` +- `threads/stl/report.md` +- `threads/all/report.md` +- `processes/report.md` +- `processes/t1/report.md` +- `processes/t1/seq/report.md` +- `processes/t1/mpi/report.md` +- `processes/t2/report.md` +- `processes/t2/seq/report.md` +- `processes/t2/mpi/report.md` +- `processes/t3/report.md` +- `processes/t3/seq/report.md` +- `processes/t3/mpi/report.md` diff --git a/tasks/example/settings.json b/tasks/example/settings.json new file mode 100644 index 000000000..1a756b73c --- /dev/null +++ b/tasks/example/settings.json @@ -0,0 +1,25 @@ +{ + "tasks": { + "threads": { + "seq": "enabled", + "omp": "enabled", + "tbb": "enabled", + "stl": "enabled", + "all": "enabled" + }, + "processes": { + "t1": { + "seq": "enabled", + "mpi": "enabled" + }, + "t2": { + "seq": "enabled", + "mpi": "enabled" + }, + "t3": { + "seq": "enabled", + "mpi": "enabled" + } + } + } +} diff --git a/tasks/example_threads/all/include/ops_all.hpp b/tasks/example/threads/all/include/ops_all.hpp similarity index 75% rename from tasks/example_threads/all/include/ops_all.hpp rename to tasks/example/threads/all/include/ops_all.hpp index d4638d337..8de651fc6 100644 --- a/tasks/example_threads/all/include/ops_all.hpp +++ b/tasks/example/threads/all/include/ops_all.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class NesterovATestTaskALL : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskALL : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example/threads/all/report.md b/tasks/example/threads/all/report.md new file mode 100644 index 000000000..a88b49a2e --- /dev/null +++ b/tasks/example/threads/all/report.md @@ -0,0 +1,3 @@ +# Example Threads All + +Combined implementation for the thread-based example. diff --git a/tasks/example_threads/all/src/ops_all.cpp b/tasks/example/threads/all/src/ops_all.cpp similarity index 90% rename from tasks/example_threads/all/src/ops_all.cpp rename to tasks/example/threads/all/src/ops_all.cpp index 2f6995878..ec36fb726 100644 --- a/tasks/example_threads/all/src/ops_all.cpp +++ b/tasks/example/threads/all/src/ops_all.cpp @@ -1,4 +1,4 @@ -#include "example_threads/all/include/ops_all.hpp" +#include "example/threads/all/include/ops_all.hpp" #include @@ -7,11 +7,11 @@ #include #include -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "oneapi/tbb/parallel_for.h" #include "util/include/util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { NesterovATestTaskALL::NesterovATestTaskALL(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -82,4 +82,4 @@ bool NesterovATestTaskALL::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example_threads/omp/include/ops_omp.hpp b/tasks/example/threads/omp/include/ops_omp.hpp similarity index 75% rename from tasks/example_threads/omp/include/ops_omp.hpp rename to tasks/example/threads/omp/include/ops_omp.hpp index 2e857114e..cb99081fe 100644 --- a/tasks/example_threads/omp/include/ops_omp.hpp +++ b/tasks/example/threads/omp/include/ops_omp.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class NesterovATestTaskOMP : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskOMP : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example/threads/omp/report.md b/tasks/example/threads/omp/report.md new file mode 100644 index 000000000..529ee371f --- /dev/null +++ b/tasks/example/threads/omp/report.md @@ -0,0 +1,3 @@ +# Example Threads OMP + +OpenMP implementation for the thread-based example. diff --git a/tasks/example_threads/omp/src/ops_omp.cpp b/tasks/example/threads/omp/src/ops_omp.cpp similarity index 86% rename from tasks/example_threads/omp/src/ops_omp.cpp rename to tasks/example/threads/omp/src/ops_omp.cpp index 63c16a9f6..c06c01a22 100644 --- a/tasks/example_threads/omp/src/ops_omp.cpp +++ b/tasks/example/threads/omp/src/ops_omp.cpp @@ -1,13 +1,13 @@ -#include "example_threads/omp/include/ops_omp.hpp" +#include "example/threads/omp/include/ops_omp.hpp" #include #include #include -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { NesterovATestTaskOMP::NesterovATestTaskOMP(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -51,4 +51,4 @@ bool NesterovATestTaskOMP::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example/threads/report.md b/tasks/example/threads/report.md new file mode 100644 index 000000000..0c918948c --- /dev/null +++ b/tasks/example/threads/report.md @@ -0,0 +1,11 @@ +# Example Threads + +This section aggregates the thread-based example implementations. + +Child reports: + +- `seq/report.md` +- `omp/report.md` +- `tbb/report.md` +- `stl/report.md` +- `all/report.md` diff --git a/tasks/example_processes_2/seq/include/ops_seq.hpp b/tasks/example/threads/seq/include/ops_seq.hpp similarity index 73% rename from tasks/example_processes_2/seq/include/ops_seq.hpp rename to tasks/example/threads/seq/include/ops_seq.hpp index 33e2311bf..1fc6d383b 100644 --- a/tasks/example_processes_2/seq/include/ops_seq.hpp +++ b/tasks/example/threads/seq/include/ops_seq.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_processes_2/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_processes_2 { +namespace example_threads { class NesterovATestTaskSEQ : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskSEQ : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_processes_2 +} // namespace example_threads diff --git a/tasks/example/threads/seq/report.md b/tasks/example/threads/seq/report.md new file mode 100644 index 000000000..7dcc61a2a --- /dev/null +++ b/tasks/example/threads/seq/report.md @@ -0,0 +1,3 @@ +# Example Threads Seq + +Sequential baseline for the thread-based example. diff --git a/tasks/example_processes_3/seq/src/ops_seq.cpp b/tasks/example/threads/seq/src/ops_seq.cpp similarity index 85% rename from tasks/example_processes_3/seq/src/ops_seq.cpp rename to tasks/example/threads/seq/src/ops_seq.cpp index 1db5c7340..7198ba1ae 100644 --- a/tasks/example_processes_3/seq/src/ops_seq.cpp +++ b/tasks/example/threads/seq/src/ops_seq.cpp @@ -1,12 +1,12 @@ -#include "example_processes_3/seq/include/ops_seq.hpp" +#include "example/threads/seq/include/ops_seq.hpp" #include #include -#include "example_processes_3/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_processes_3 { +namespace example_threads { NesterovATestTaskSEQ::NesterovATestTaskSEQ(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -57,4 +57,4 @@ bool NesterovATestTaskSEQ::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_processes_3 +} // namespace example_threads diff --git a/tasks/example_threads/stl/include/ops_stl.hpp b/tasks/example/threads/stl/include/ops_stl.hpp similarity index 75% rename from tasks/example_threads/stl/include/ops_stl.hpp rename to tasks/example/threads/stl/include/ops_stl.hpp index fb153a3e0..38dd6fd22 100644 --- a/tasks/example_threads/stl/include/ops_stl.hpp +++ b/tasks/example/threads/stl/include/ops_stl.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class NesterovATestTaskSTL : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskSTL : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example/threads/stl/report.md b/tasks/example/threads/stl/report.md new file mode 100644 index 000000000..bb74545c2 --- /dev/null +++ b/tasks/example/threads/stl/report.md @@ -0,0 +1,3 @@ +# Example Threads STL + +STL threads implementation for the thread-based example. diff --git a/tasks/example_threads/stl/src/ops_stl.cpp b/tasks/example/threads/stl/src/ops_stl.cpp similarity index 86% rename from tasks/example_threads/stl/src/ops_stl.cpp rename to tasks/example/threads/stl/src/ops_stl.cpp index 1dcf1201d..da2e29c47 100644 --- a/tasks/example_threads/stl/src/ops_stl.cpp +++ b/tasks/example/threads/stl/src/ops_stl.cpp @@ -1,14 +1,14 @@ -#include "example_threads/stl/include/ops_stl.hpp" +#include "example/threads/stl/include/ops_stl.hpp" #include #include #include #include -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { NesterovATestTaskSTL::NesterovATestTaskSTL(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -55,4 +55,4 @@ bool NesterovATestTaskSTL::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example_threads/tbb/include/ops_tbb.hpp b/tasks/example/threads/tbb/include/ops_tbb.hpp similarity index 75% rename from tasks/example_threads/tbb/include/ops_tbb.hpp rename to tasks/example/threads/tbb/include/ops_tbb.hpp index c6160094c..24bc12c68 100644 --- a/tasks/example_threads/tbb/include/ops_tbb.hpp +++ b/tasks/example/threads/tbb/include/ops_tbb.hpp @@ -1,9 +1,9 @@ #pragma once -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "task/include/task.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class NesterovATestTaskTBB : public BaseTask { public: @@ -19,4 +19,4 @@ class NesterovATestTaskTBB : public BaseTask { bool PostProcessingImpl() override; }; -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example/threads/tbb/report.md b/tasks/example/threads/tbb/report.md new file mode 100644 index 000000000..6ce972719 --- /dev/null +++ b/tasks/example/threads/tbb/report.md @@ -0,0 +1,3 @@ +# Example Threads TBB + +TBB implementation for the thread-based example. diff --git a/tasks/example_threads/tbb/src/ops_tbb.cpp b/tasks/example/threads/tbb/src/ops_tbb.cpp similarity index 86% rename from tasks/example_threads/tbb/src/ops_tbb.cpp rename to tasks/example/threads/tbb/src/ops_tbb.cpp index 1d606b8df..49cc425cf 100644 --- a/tasks/example_threads/tbb/src/ops_tbb.cpp +++ b/tasks/example/threads/tbb/src/ops_tbb.cpp @@ -1,4 +1,4 @@ -#include "example_threads/tbb/include/ops_tbb.hpp" +#include "example/threads/tbb/include/ops_tbb.hpp" #include @@ -7,10 +7,10 @@ #include #include -#include "example_threads/common/include/common.hpp" +#include "example/common/include/common.hpp" #include "oneapi/tbb/parallel_for.h" -namespace nesterov_a_test_task_threads { +namespace example_threads { NesterovATestTaskTBB::NesterovATestTaskTBB(const InType &in) { SetTypeOfTask(GetStaticTypeOfTask()); @@ -53,4 +53,4 @@ bool NesterovATestTaskTBB::PostProcessingImpl() { return GetOutput() > 0; } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example_threads/tests/.clang-tidy b/tasks/example/threads/tests/.clang-tidy similarity index 100% rename from tasks/example_threads/tests/.clang-tidy rename to tasks/example/threads/tests/.clang-tidy diff --git a/tasks/example_threads/tests/functional/main.cpp b/tasks/example/threads/tests/functional/main.cpp similarity index 79% rename from tasks/example_threads/tests/functional/main.cpp rename to tasks/example/threads/tests/functional/main.cpp index 6cee61ab4..26faa8c32 100644 --- a/tasks/example_threads/tests/functional/main.cpp +++ b/tasks/example/threads/tests/functional/main.cpp @@ -12,16 +12,16 @@ #include #include -#include "example_threads/all/include/ops_all.hpp" -#include "example_threads/common/include/common.hpp" -#include "example_threads/omp/include/ops_omp.hpp" -#include "example_threads/seq/include/ops_seq.hpp" -#include "example_threads/stl/include/ops_stl.hpp" -#include "example_threads/tbb/include/ops_tbb.hpp" +#include "example/threads/all/include/ops_all.hpp" +#include "example/common/include/common.hpp" +#include "example/threads/omp/include/ops_omp.hpp" +#include "example/threads/seq/include/ops_seq.hpp" +#include "example/threads/stl/include/ops_stl.hpp" +#include "example/threads/tbb/include/ops_tbb.hpp" #include "util/include/func_test_util.hpp" #include "util/include/util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class NesterovARunFuncTestsThreads : public ppc::util::BaseRunFuncTests { public: @@ -48,7 +48,7 @@ class NesterovARunFuncTestsThreads : public ppc::util::BaseRunFuncTests img; // Read image in RGB to ensure consistent channel count { - std::string abs_path = ppc::util::GetAbsoluteTaskPath(std::string(PPC_ID_example_threads), "pic.ppm"); + std::string abs_path = ppc::util::GetAbsoluteTaskPath(std::string(PPC_ID_example), "pic.ppm"); auto *data = stbi_load(abs_path.c_str(), &width, &height, &channels, STBI_rgb); if (data == nullptr) { throw std::runtime_error("Failed to load image: " + std::string(stbi_failure_reason())); @@ -81,11 +81,11 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_threads), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_threads), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_threads), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_threads), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example_threads)); + std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "threads"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "threads"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "threads"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "threads"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "threads")); } // namespace @@ -93,4 +93,4 @@ TEST_F(NesterovARunFuncTestsThreads, MatmulFromPic) { std::apply([this](const auto &...test_params) { (RunTestCase(test_params), ...); }, kTestTasksList); } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example_threads/tests/performance/main.cpp b/tasks/example/threads/tests/performance/main.cpp similarity index 66% rename from tasks/example_threads/tests/performance/main.cpp rename to tasks/example/threads/tests/performance/main.cpp index ee84bc2de..7fbe568f0 100644 --- a/tasks/example_threads/tests/performance/main.cpp +++ b/tasks/example/threads/tests/performance/main.cpp @@ -2,15 +2,15 @@ #include -#include "example_threads/all/include/ops_all.hpp" -#include "example_threads/common/include/common.hpp" -#include "example_threads/omp/include/ops_omp.hpp" -#include "example_threads/seq/include/ops_seq.hpp" -#include "example_threads/stl/include/ops_stl.hpp" -#include "example_threads/tbb/include/ops_tbb.hpp" +#include "example/threads/all/include/ops_all.hpp" +#include "example/common/include/common.hpp" +#include "example/threads/omp/include/ops_omp.hpp" +#include "example/threads/seq/include/ops_seq.hpp" +#include "example/threads/stl/include/ops_stl.hpp" +#include "example/threads/tbb/include/ops_tbb.hpp" #include "util/include/perf_test_util.hpp" -namespace nesterov_a_test_task_threads { +namespace example_threads { class ExampleRunPerfTestThreads : public ppc::util::BaseRunPerfTests { protected: @@ -35,7 +35,7 @@ namespace { const auto kAllPerfTasks = ppc::util::MakeAllPerfTasks(PPC_SETTINGS_example_threads); + NesterovATestTaskSTL, NesterovATestTaskTBB>(PPC_SETTINGS_example, "threads"); } // namespace @@ -43,4 +43,4 @@ TEST_F(ExampleRunPerfTestThreads, RunPerfModes) { std::apply([this](const auto &...test_params) { (ExecuteTest(test_params), ...); }, kAllPerfTasks); } -} // namespace nesterov_a_test_task_threads +} // namespace example_threads diff --git a/tasks/example_processes/common/include/common.hpp b/tasks/example_processes/common/include/common.hpp deleted file mode 100644 index 127d96c4c..000000000 --- a/tasks/example_processes/common/include/common.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include -#include - -#include "task/include/task.hpp" - -namespace nesterov_a_test_task_processes { - -using InType = int; -using OutType = int; -using TestType = std::tuple; -using BaseTask = ppc::task::Task; - -} // namespace nesterov_a_test_task_processes diff --git a/tasks/example_processes/info.json b/tasks/example_processes/info.json deleted file mode 100644 index 265b20e50..000000000 --- a/tasks/example_processes/info.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "student": { - "full_name": "full_name_p", - "group_number": "2222222_p", - "task_number": "1" - } -} diff --git a/tasks/example_processes/report.md b/tasks/example_processes/report.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/tasks/example_processes/settings.json b/tasks/example_processes/settings.json deleted file mode 100644 index 16f25e426..000000000 --- a/tasks/example_processes/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "tasks": { - "mpi": "enabled", - "seq": "enabled" - }, - "tasks_type": "processes" -} diff --git a/tasks/example_processes_2/common/include/common.hpp b/tasks/example_processes_2/common/include/common.hpp deleted file mode 100644 index 145054df0..000000000 --- a/tasks/example_processes_2/common/include/common.hpp +++ /dev/null @@ -1,15 +0,0 @@ -#pragma once - -#include -#include - -#include "task/include/task.hpp" - -namespace nesterov_a_test_task_processes_2 { - -using InType = int; -using OutType = int; -using TestType = std::tuple; -using BaseTask = ppc::task::Task; - -} // namespace nesterov_a_test_task_processes_2 diff --git a/tasks/example_processes_2/data/pic.ppm b/tasks/example_processes_2/data/pic.ppm deleted file mode 100644 index 637624238c89d914613ed301968bffbf462bc110..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 bcmWGA<1$h(;xaNd<@(RSzyQYo|NjR7KDY -#include - -#include "task/include/task.hpp" - -namespace nesterov_a_test_task_processes_3 { - -using InType = int; -using OutType = int; -using TestType = std::tuple; -using BaseTask = ppc::task::Task; - -} // namespace nesterov_a_test_task_processes_3 diff --git a/tasks/example_processes_3/data/pic.ppm b/tasks/example_processes_3/data/pic.ppm deleted file mode 100644 index 637624238c89d914613ed301968bffbf462bc110..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 bcmWGA<1$h(;xaNd<@(RSzyQYo|NjR7KDY -#include - -#include "task/include/task.hpp" - -namespace nesterov_a_test_task_threads { - -using InType = int; -using OutType = int; -using TestType = std::tuple; -using BaseTask = ppc::task::Task; - -} // namespace nesterov_a_test_task_threads diff --git a/tasks/example_threads/data/pic.ppm b/tasks/example_threads/data/pic.ppm deleted file mode 100644 index 637624238c89d914613ed301968bffbf462bc110..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23 bcmWGA<1$h(;xaNd<@(RSzyQYo|NjR7KDY Date: Wed, 3 Jun 2026 02:04:38 +0200 Subject: [PATCH 02/12] Apply pre-commit formatting --- .editorconfig | 3 +++ cmake/functions.cmake | 5 ++-- modules/task/include/task.hpp | 3 +-- modules/util/include/func_test_util.hpp | 13 +++++----- scoreboard/main.py | 8 ++++-- tasks/example/info.json | 6 ++--- .../processes/t1/tests/functional/main.cpp | 6 ++--- .../processes/t1/tests/performance/main.cpp | 4 +-- .../processes/t2/tests/functional/main.cpp | 6 ++--- .../processes/t2/tests/performance/main.cpp | 4 +-- .../processes/t3/tests/functional/main.cpp | 6 ++--- .../processes/t3/tests/performance/main.cpp | 4 +-- tasks/example/settings.json | 26 +++++++++---------- .../example/threads/tests/functional/main.cpp | 2 +- .../threads/tests/performance/main.cpp | 2 +- 15 files changed, 51 insertions(+), 47 deletions(-) diff --git a/.editorconfig b/.editorconfig index c74f22029..1024366cb 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,6 +14,9 @@ indent_size = 2 [*.{yml,yaml}] indent_size = 2 +[*.{bat,cmd}] +end_of_line = crlf + [*.py] indent_size = 4 diff --git a/cmake/functions.cmake b/cmake/functions.cmake index cb7f70843..4a89f3672 100644 --- a/cmake/functions.cmake +++ b/cmake/functions.cmake @@ -129,9 +129,8 @@ function(ppc_configure_meta_project SUBDIR) message(STATUS "${SUBDIR}") if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/threads") - ppc_configure_meta_part( - ${SUBDIR}_threads - "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/threads") + ppc_configure_meta_part(${SUBDIR}_threads + "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIR}/threads") endif() file( diff --git a/modules/task/include/task.hpp b/modules/task/include/task.hpp index 8aaaa9d99..71477fc2e 100644 --- a/modules/task/include/task.hpp +++ b/modules/task/include/task.hpp @@ -98,8 +98,7 @@ inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string const auto *settings_node = &list_settings->at("tasks"); for (size_t start = 0; start < settings_task_path.size();) { const size_t separator = settings_task_path.find('.', start); - const size_t key_size = - separator == std::string_view::npos ? settings_task_path.size() - start : separator - start; + const size_t key_size = separator == std::string_view::npos ? settings_task_path.size() - start : separator - start; settings_node = &settings_node->at(std::string(settings_task_path.substr(start, key_size))); if (separator == std::string_view::npos) { break; diff --git a/modules/util/include/func_test_util.hpp b/modules/util/include/func_test_util.hpp index 65ade4d54..4c4238b93 100644 --- a/modules/util/include/func_test_util.hpp +++ b/modules/util/include/func_test_util.hpp @@ -134,13 +134,12 @@ auto ExpandToValues(const Tuple &t) { template auto GenTaskTuplesImpl(const SizesContainer &sizes, const std::string &settings_path, - std::string_view settings_task_path, - std::index_sequence /*unused*/) { - return std::make_tuple(std::make_tuple(ppc::task::TaskGetter, - std::string(GetNamespace()) + "_" + - ppc::task::GetStringTaskType(Task::GetStaticTypeOfTask(), settings_path, - settings_task_path), - std::get(sizes))...); + std::string_view settings_task_path, std::index_sequence /*unused*/) { + return std::make_tuple( + std::make_tuple(ppc::task::TaskGetter, + std::string(GetNamespace()) + "_" + + ppc::task::GetStringTaskType(Task::GetStaticTypeOfTask(), settings_path, settings_task_path), + std::get(sizes))...); } template diff --git a/scoreboard/main.py b/scoreboard/main.py index 63ecd41c5..579ce0304 100644 --- a/scoreboard/main.py +++ b/scoreboard/main.py @@ -458,7 +458,9 @@ def _find_process_report_max(points_info, process_task_index: int) -> int: return 0 -def _find_process_points(points_info, process_task_index: int) -> tuple[int, int, int, int]: +def _find_process_points( + points_info, process_task_index: int +) -> tuple[int, int, int, int]: """Return (S_mpi, S_seq, A_mpi, R) maxima for a given process task ordinal (1..3). Supports both mapping and list-of-maps (per user's YAML example). """ @@ -1103,7 +1105,9 @@ def _build_process_rows(processes_dirs: list[str]): status_seq = directories[clean_d].get("seq") has_mpi = status_mpi in ("done", "disabled") has_seq = status_seq in ("done", "disabled") - report_present = _task_report_exists(d, "seq") or _task_report_exists(d, "mpi") + report_present = _task_report_exists( + d, "seq" + ) or _task_report_exists(d, "mpi") mpi_eff = group_cells[0].get("efficiency", "N/A") perf_points_mpi = ( diff --git a/tasks/example/info.json b/tasks/example/info.json index 6e3b44ed9..116dbeb04 100644 --- a/tasks/example/info.json +++ b/tasks/example/info.json @@ -1,8 +1,8 @@ { "student": { - "last_name": "last_name", "first_name": "first_name", - "middle_name": "middle_name", - "group_number": "group_number" + "group_number": "group_number", + "last_name": "last_name", + "middle_name": "middle_name" } } diff --git a/tasks/example/processes/t1/tests/functional/main.cpp b/tasks/example/processes/t1/tests/functional/main.cpp index e4fd4d36b..1c32faa93 100644 --- a/tasks/example/processes/t1/tests/functional/main.cpp +++ b/tasks/example/processes/t1/tests/functional/main.cpp @@ -77,9 +77,9 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; -const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1"), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1")); +const auto kTestTasksList = std::tuple_cat( + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t1")); } // namespace diff --git a/tasks/example/processes/t1/tests/performance/main.cpp b/tasks/example/processes/t1/tests/performance/main.cpp index e36cee0d0..b4fc6e9db 100644 --- a/tasks/example/processes/t1/tests/performance/main.cpp +++ b/tasks/example/processes/t1/tests/performance/main.cpp @@ -30,8 +30,8 @@ class ExampleRunPerfTestProcesses : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example, "processes.t1"); +const auto kAllPerfTasks = ppc::util::MakeAllPerfTasks( + PPC_SETTINGS_example, "processes.t1"); } // namespace diff --git a/tasks/example/processes/t2/tests/functional/main.cpp b/tasks/example/processes/t2/tests/functional/main.cpp index 7ed2d588a..0ea55456c 100644 --- a/tasks/example/processes/t2/tests/functional/main.cpp +++ b/tasks/example/processes/t2/tests/functional/main.cpp @@ -77,9 +77,9 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; -const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2"), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2")); +const auto kTestTasksList = std::tuple_cat( + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t2")); } // namespace diff --git a/tasks/example/processes/t2/tests/performance/main.cpp b/tasks/example/processes/t2/tests/performance/main.cpp index 03f757771..130159aeb 100644 --- a/tasks/example/processes/t2/tests/performance/main.cpp +++ b/tasks/example/processes/t2/tests/performance/main.cpp @@ -30,8 +30,8 @@ class ExampleRunPerfTestProcesses2 : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example, "processes.t2"); +const auto kAllPerfTasks = ppc::util::MakeAllPerfTasks( + PPC_SETTINGS_example, "processes.t2"); } // namespace diff --git a/tasks/example/processes/t3/tests/functional/main.cpp b/tasks/example/processes/t3/tests/functional/main.cpp index d3c615fed..02672a54a 100644 --- a/tasks/example/processes/t3/tests/functional/main.cpp +++ b/tasks/example/processes/t3/tests/functional/main.cpp @@ -77,9 +77,9 @@ namespace { const std::array kTestParam = {std::make_tuple(3, "3"), std::make_tuple(5, "5"), std::make_tuple(7, "7")}; -const auto kTestTasksList = - std::tuple_cat(ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3"), - ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3")); +const auto kTestTasksList = std::tuple_cat( + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3"), + ppc::util::AddFuncTask(kTestParam, PPC_SETTINGS_example, "processes.t3")); } // namespace diff --git a/tasks/example/processes/t3/tests/performance/main.cpp b/tasks/example/processes/t3/tests/performance/main.cpp index 2bc5f0a5b..42e3c6e95 100644 --- a/tasks/example/processes/t3/tests/performance/main.cpp +++ b/tasks/example/processes/t3/tests/performance/main.cpp @@ -28,8 +28,8 @@ class ExampleRunPerfTestProcesses3 : public ppc::util::BaseRunPerfTests(PPC_SETTINGS_example, "processes.t3"); +const auto kAllPerfTasks = ppc::util::MakeAllPerfTasks( + PPC_SETTINGS_example, "processes.t3"); TEST_F(ExampleRunPerfTestProcesses3, RunPerfModes) { std::apply([this](const auto &...test_params) { (ExecuteTest(test_params), ...); }, kAllPerfTasks); diff --git a/tasks/example/settings.json b/tasks/example/settings.json index 1a756b73c..c89c5817b 100644 --- a/tasks/example/settings.json +++ b/tasks/example/settings.json @@ -1,25 +1,25 @@ { "tasks": { - "threads": { - "seq": "enabled", - "omp": "enabled", - "tbb": "enabled", - "stl": "enabled", - "all": "enabled" - }, "processes": { "t1": { - "seq": "enabled", - "mpi": "enabled" + "mpi": "enabled", + "seq": "enabled" }, "t2": { - "seq": "enabled", - "mpi": "enabled" + "mpi": "enabled", + "seq": "enabled" }, "t3": { - "seq": "enabled", - "mpi": "enabled" + "mpi": "enabled", + "seq": "enabled" } + }, + "threads": { + "all": "enabled", + "omp": "enabled", + "seq": "enabled", + "stl": "enabled", + "tbb": "enabled" } } } diff --git a/tasks/example/threads/tests/functional/main.cpp b/tasks/example/threads/tests/functional/main.cpp index 26faa8c32..1ae1ff426 100644 --- a/tasks/example/threads/tests/functional/main.cpp +++ b/tasks/example/threads/tests/functional/main.cpp @@ -12,8 +12,8 @@ #include #include -#include "example/threads/all/include/ops_all.hpp" #include "example/common/include/common.hpp" +#include "example/threads/all/include/ops_all.hpp" #include "example/threads/omp/include/ops_omp.hpp" #include "example/threads/seq/include/ops_seq.hpp" #include "example/threads/stl/include/ops_stl.hpp" diff --git a/tasks/example/threads/tests/performance/main.cpp b/tasks/example/threads/tests/performance/main.cpp index 7fbe568f0..82ea9356d 100644 --- a/tasks/example/threads/tests/performance/main.cpp +++ b/tasks/example/threads/tests/performance/main.cpp @@ -2,8 +2,8 @@ #include -#include "example/threads/all/include/ops_all.hpp" #include "example/common/include/common.hpp" +#include "example/threads/all/include/ops_all.hpp" #include "example/threads/omp/include/ops_omp.hpp" #include "example/threads/seq/include/ops_seq.hpp" #include "example/threads/stl/include/ops_stl.hpp" From 902fafb18dc86c48011066a38689c82d2339729f Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 10:06:38 +0200 Subject: [PATCH 03/12] Fix clang-tidy include warnings --- modules/util/include/func_test_util.hpp | 1 - modules/util/include/perf_test_util.hpp | 1 - 2 files changed, 2 deletions(-) diff --git a/modules/util/include/func_test_util.hpp b/modules/util/include/func_test_util.hpp index 4c4238b93..6af48e4cf 100644 --- a/modules/util/include/func_test_util.hpp +++ b/modules/util/include/func_test_util.hpp @@ -4,7 +4,6 @@ #include #include -#include #include #include #include diff --git a/modules/util/include/perf_test_util.hpp b/modules/util/include/perf_test_util.hpp index a05408d81..535652cba 100644 --- a/modules/util/include/perf_test_util.hpp +++ b/modules/util/include/perf_test_util.hpp @@ -5,7 +5,6 @@ #include #include -#include #include #include #include From c5fb33e381bc288975970fa6c0524cf62078e0e2 Mon Sep 17 00:00:00 2001 From: Nesterov Alexander Date: Wed, 3 Jun 2026 16:10:28 +0200 Subject: [PATCH 04/12] Update tasks/example/report.md Co-authored-by: Arseniy Obolenskiy --- tasks/example/report.md | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/tasks/example/report.md b/tasks/example/report.md index 93d634ced..9a7d7f828 100644 --- a/tasks/example/report.md +++ b/tasks/example/report.md @@ -1,22 +1,3 @@ # Example Task This task contains the shared example implementations for threads and processes. - -Report tree: - -- `threads/report.md` -- `threads/seq/report.md` -- `threads/omp/report.md` -- `threads/tbb/report.md` -- `threads/stl/report.md` -- `threads/all/report.md` -- `processes/report.md` -- `processes/t1/report.md` -- `processes/t1/seq/report.md` -- `processes/t1/mpi/report.md` -- `processes/t2/report.md` -- `processes/t2/seq/report.md` -- `processes/t2/mpi/report.md` -- `processes/t3/report.md` -- `processes/t3/seq/report.md` -- `processes/t3/mpi/report.md` From c1ec2eb87e4855bc358aa5df503d8d5d8a57deef Mon Sep 17 00:00:00 2001 From: Nesterov Alexander Date: Wed, 3 Jun 2026 16:11:50 +0200 Subject: [PATCH 05/12] Update docs/common_information/introduction.rst Co-authored-by: Arseniy Obolenskiy --- docs/common_information/introduction.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/common_information/introduction.rst b/docs/common_information/introduction.rst index 8fca1e350..795d56869 100644 --- a/docs/common_information/introduction.rst +++ b/docs/common_information/introduction.rst @@ -14,7 +14,7 @@ Practice - Task distribution is random for each student. - 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 the unified ``tasks/example`` tree with ``threads`` and ``processes/t1``..``processes/t3`` sections. +- Examples are provided in ``tasks/example`` tree with ``threads`` and ``processes/t1``..``processes/t3`` sections. - 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. From 5879ca9557997987dba2b10759fbff2d711177ba Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 16:23:10 +0200 Subject: [PATCH 06/12] Address example layout review feedback --- .../common_information/introduction.po | 264 ++++++---- .../LC_MESSAGES/common_information/points.po | 467 +++++++++++++----- .../LC_MESSAGES/common_information/report.po | 70 ++- docs/locale/en/LC_MESSAGES/user_guide/api.po | 36 +- .../locale/en/LC_MESSAGES/user_guide/build.po | 17 +- docs/locale/en/LC_MESSAGES/user_guide/ci.po | 48 +- .../en/LC_MESSAGES/user_guide/submit_work.po | 69 ++- .../common_information/introduction.po | 338 ++++++------- .../LC_MESSAGES/common_information/points.po | 224 +++++---- .../LC_MESSAGES/common_information/report.po | 107 ++-- docs/locale/ru/LC_MESSAGES/user_guide/api.po | 37 +- .../locale/ru/LC_MESSAGES/user_guide/build.po | 19 +- docs/locale/ru/LC_MESSAGES/user_guide/ci.po | 54 +- .../ru/LC_MESSAGES/user_guide/submit_work.po | 79 ++- docs/user_guide/submit_work.rst | 2 +- modules/task/include/task.hpp | 27 +- modules/task/tests/task_tests.cpp | 14 + modules/util/include/perf_test_util.hpp | 1 + 18 files changed, 1170 insertions(+), 703 deletions(-) diff --git a/docs/locale/en/LC_MESSAGES/common_information/introduction.po b/docs/locale/en/LC_MESSAGES/common_information/introduction.po index c5efcd497..0128970f1 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/en/LC_MESSAGES/common_information/introduction.po @@ -2,79 +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-02-09 00:23+0100\n" +"POT-Creation-Date: 2026-06-03 16:19+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" +"Generated-By: Babel 2.18.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 "Practice" msgstr "" -#: ../../common_information/introduction.rst:7 +#: ../../../../docs/common_information/introduction.rst:7 msgid "We work online" msgstr "" -#: ../../common_information/introduction.rst:9 +#: ../../../../docs/common_information/introduction.rst:9 msgid "Use GitHub repository" msgstr "" -#: ../../common_information/introduction.rst:10 +#: ../../../../docs/common_information/introduction.rst:10 msgid "Use Pull Requests" msgstr "" -#: ../../common_information/introduction.rst:11 +#: ../../../../docs/common_information/introduction.rst:11 msgid "Merge into the master branch" msgstr "" -#: ../../common_information/introduction.rst:12 +#: ../../../../docs/common_information/introduction.rst:12 msgid "Test verification" msgstr "" -#: ../../common_information/introduction.rst:14 +#: ../../../../docs/common_information/introduction.rst:14 msgid "Task distribution is random for each student." msgstr "" -#: ../../common_information/introduction.rst:15 +#: ../../../../docs/common_information/introduction.rst:15 msgid "" -"An example for each technology can be found in the corresponding " -"directory: ``tasks//example``." +"Full automation of quality and performance checks; plagiarism checks are " +"applied." msgstr "" -#: ../../common_information/introduction.rst:16 +#: ../../../../docs/common_information/introduction.rst:16 msgid "" -"In each repository, the README.md contains a link to the course " -"documentation (**read it fully!!!**)." +"Deadlines are set per task. See the penalties and grading rules in " +"``Points``." +msgstr "" + +#: ../../../../docs/common_information/introduction.rst:17 +msgid "" +"Examples are provided in ``tasks/example`` tree with ``threads`` and " +"``processes/t1``..``processes/t3`` sections." msgstr "" -#: ../../common_information/introduction.rst:17 +#: ../../../../docs/common_information/introduction.rst:18 msgid "" -"Additionally, each repository includes an example of a properly formatted" -" PULL REQUEST." +"In each repository, the README.md contains a link to the course " +"documentation." msgstr "" -#: ../../common_information/introduction.rst:18 +#: ../../../../docs/common_information/introduction.rst:19 +msgid "Each repository includes an example of a properly formatted PULL REQUEST." +msgstr "" + +#: ../../../../docs/common_information/introduction.rst:20 msgid "Submission of all tasks is mandatory to pass the course." msgstr "" -#: ../../common_information/introduction.rst:19 +#: ../../../../docs/common_information/introduction.rst:21 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" @@ -85,100 +97,140 @@ msgid "" "``seq/nesterov_a_vector_sum`` to ``seq/nesterov_a_vector_sum_disabled``" msgstr "" -#: ../../common_information/introduction.rst:24 -msgid "All resources for using the repository will be provided here:" +#: ../../../../docs/common_information/introduction.rst:28 +msgid "Communication" msgstr "" -#: ../../common_information/introduction.rst:26 -msgid "" -"`Git for half an hour: A Beginner’s Guide `__" +#: ../../../../docs/common_information/introduction.rst:30 +msgid "Telegram channel — announcements and quick updates" msgstr "" -#: ../../common_information/introduction.rst:27 -#, python-format -msgid "" -"`Getting Started with Git and GitHub: A Beginner’s Guide " -"`__" +#: ../../../../docs/common_information/introduction.rst:31 +msgid "GitHub Issues — repository problems and bug reports" msgstr "" -#: ../../common_information/introduction.rst:28 -msgid "" -"`Git: A Quick Start Guide to Using Core Operations with Explanations " -"`__" +#: ../../../../docs/common_information/introduction.rst:32 +msgid "Lessons — Q&A" msgstr "" -#: ../../common_information/introduction.rst:29 -msgid "" -"`Conflicts resolving in Git " -"`__" +#: ../../../../docs/common_information/introduction.rst:33 +msgid "Feedback form — critical issues" msgstr "" -#: ../../common_information/introduction.rst:30 -msgid "`Google testing framework (gtest) `__" +#: ../../../../docs/common_information/introduction.rst:34 +msgid "Email — non‑urgent matters" msgstr "" -#: ../../common_information/introduction.rst:31 -msgid "" -"`GoogleTest Primer " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:32 -msgid "`GitHub Actions documentation `__" -msgstr "" - -#: ../../common_information/introduction.rst:33 -msgid "" -"`Parallel Programming Technologies. Message Passing Interface (MPI) " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:34 -msgid "" -"`Typing and Layout in the System LaTeX `__" -msgstr "" - -#: ../../common_information/introduction.rst:35 -msgid "" -"`LaTeX for the beginners " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:36 -msgid "`What is OpenMP? `__" -msgstr "" - -#: ../../common_information/introduction.rst:37 -msgid "" -"`TBB-1 " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:38 -msgid "" -"`Writing Multithreaded Applications in C++ `__" -msgstr "" - -#: ../../common_information/introduction.rst:39 -msgid "" -"`Multithreading: New Features of the C++11 Standard " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:40 -msgid "" -"`Introduction to Parallel Computing " -"`__" -msgstr "" - -#: ../../common_information/introduction.rst:42 +#: ../../../../docs/common_information/introduction.rst:36 msgid "" "\\* *All instructions, repositories, and tables may be updated during the" -" learning process for better usability. Be prepared for changes, check " -"and update them periodically!!!*" -msgstr "" +" learning process for better usability. Be prepared for changes and check" +" updates periodically.*" +msgstr "" + +#~ msgid "" +#~ "An example for each technology can " +#~ "be found in the corresponding directory:" +#~ " ``tasks//example``." +#~ msgstr "" + +#~ msgid "" +#~ "In each repository, the README.md " +#~ "contains a link to the course " +#~ "documentation (**read it fully!!!**)." +#~ msgstr "" + +#~ msgid "" +#~ "Additionally, each repository includes an " +#~ "example of a properly formatted PULL " +#~ "REQUEST." +#~ msgstr "" + +#~ msgid "All resources for using the repository will be provided here:" +#~ msgstr "" + +#~ msgid "" +#~ "`Git for half an hour: A " +#~ "Beginner’s Guide `__" +#~ msgstr "" + +#~ msgid "" +#~ "`Getting Started with Git and GitHub:" +#~ " A Beginner’s Guide `__" +#~ msgstr "" + +#~ msgid "" +#~ "`Git: A Quick Start Guide to Using" +#~ " Core Operations with Explanations " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "`Conflicts resolving in Git " +#~ "`__" +#~ msgstr "" + +#~ msgid "`Google testing framework (gtest) `__" +#~ msgstr "" + +#~ msgid "" +#~ "`GoogleTest Primer " +#~ "`__" +#~ msgstr "" + +#~ msgid "`GitHub Actions documentation `__" +#~ msgstr "" + +#~ msgid "" +#~ "`Parallel Programming Technologies. Message " +#~ "Passing Interface (MPI) " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "`Typing and Layout in the System " +#~ "LaTeX `__" +#~ msgstr "" + +#~ msgid "" +#~ "`LaTeX for the beginners " +#~ "`__" +#~ msgstr "" + +#~ msgid "`What is OpenMP? `__" +#~ msgstr "" + +#~ msgid "" +#~ "`TBB-1 " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "`Writing Multithreaded Applications in C++ " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "`Multithreading: New Features of the " +#~ "C++11 Standard " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "`Introduction to Parallel Computing " +#~ "`__" +#~ msgstr "" + +#~ msgid "" +#~ "\\* *All instructions, repositories, and " +#~ "tables may be updated during the " +#~ "learning process for better usability. " +#~ "Be prepared for changes, check and " +#~ "update them periodically!!!*" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/common_information/points.po b/docs/locale/en/LC_MESSAGES/common_information/points.po index e89ceb8ed..c2f684160 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/points.po +++ b/docs/locale/en/LC_MESSAGES/common_information/points.po @@ -2,235 +2,464 @@ # 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: 2026-06-03 16:19+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" +"Generated-By: Babel 2.18.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" +#: ../../../../docs/common_information/points.rst:5 +msgid "Overview" msgstr "" -#: ../../common_information/points.rst:6 -msgid "1st MPI task" +#: ../../../../docs/common_information/points.rst:7 +msgid "Total per semester (Practice): 70 points" msgstr "" -#: ../../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 -msgid "Report" +#: ../../../../docs/common_information/points.rst:8 +msgid "Report points are distributed per task and sum to 10" msgstr "" -#: ../../common_information/points.rst:9 ../../common_information/points.rst:17 -#: ../../common_information/points.rst:25 -msgid "2" +#: ../../../../docs/common_information/points.rst:11 +msgid "Processes semester (MPI)" msgstr "" -#: ../../common_information/points.rst:10 ../../common_information/points.rst:18 -msgid "Performance" +#: ../../../../docs/common_information/points.rst:13 +msgid "" +"Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " +"Report: 2" msgstr "" -#: ../../common_information/points.rst:10 -msgid "0" +#: ../../../../docs/common_information/points.rst:18 +msgid "" +"Task 2 — Total: 23 - Implementation: MPI 12 + Seq 3 - Performance: 5 - " +"Report: 3" msgstr "" -#: ../../common_information/points.rst:11 ../../common_information/points.rst:19 -#: ../../common_information/points.rst:27 -msgid "MPI" +#: ../../../../docs/common_information/points.rst:23 +msgid "" +"Task 3 — Total: 35 - Implementation: MPI 16 + Seq 4 - Performance: 10 - " +"Report: 5" msgstr "" -#: ../../common_information/points.rst:11 -msgid "8" +#: ../../../../docs/common_information/points.rst:28 +msgid "Semester total: 70" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:31 +msgid "Threads semester (OpenMP/TBB/std::thread)" msgstr "" -#: ../../common_information/points.rst:12 -msgid "2" +#: ../../../../docs/common_information/points.rst:33 +msgid "seq — Total: 5 (S 4, R 1)" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:34 +msgid "omp — Total: 11 (S 6, A 3, R 2)" msgstr "" -#: ../../common_information/points.rst:13 -msgid "12" +#: ../../../../docs/common_information/points.rst:35 +msgid "tbb — Total: 11 (S 6, A 3, R 2)" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:36 +msgid "stl — Total: 16 (S 8, A 6, R 2)" msgstr "" -#: ../../common_information/points.rst:16 -msgid "2nd MPI task" +#: ../../../../docs/common_information/points.rst:37 +msgid "all — Total: 21 (S 10, A 8, R 3)" msgstr "" -#: ../../common_information/points.rst:19 -msgid "12" +#: ../../../../docs/common_information/points.rst:39 +msgid "Semester total: 64" msgstr "" -#: ../../common_information/points.rst:20 -msgid "3" +#: ../../../../docs/common_information/points.rst:41 +msgid "" +"Legend: S — Solution (implementation), A — Acceleration (performance), R " +"— Report" msgstr "" -#: ../../common_information/points.rst:21 -msgid "23" +#: ../../../../docs/common_information/points.rst:44 +msgid "Performance points mapping" msgstr "" -#: ../../common_information/points.rst:24 -msgid "3rd MPI task" +#: ../../../../docs/common_information/points.rst:46 +msgid "" +"The ratio of efficiency percentage to points percentage (max 100%, min " +"0%):" msgstr "" -#: ../../common_information/points.rst:26 -msgid "5" +#: ../../../../docs/common_information/points.rst:48 +msgid "If the score is not an integer, it is rounded up." msgstr "" -#: ../../common_information/points.rst:27 -msgid "16" +#: ../../../../docs/common_information/points.rst:51 +msgid "Efficiency (%)" msgstr "" -#: ../../common_information/points.rst:28 -msgid "4" +#: ../../../../docs/common_information/points.rst:51 +msgid "Points percentage" msgstr "" -#: ../../common_information/points.rst:29 -msgid "35" +#: ../../../../docs/common_information/points.rst:53 +msgid ">= 50%" msgstr "" -#: ../../common_information/points.rst:33 -msgid "For “thread parallelism” semester" +#: ../../../../docs/common_information/points.rst:53 +msgid "100%" msgstr "" -#: ../../common_information/points.rst:36 -msgid "OpenMP" +#: ../../../../docs/common_information/points.rst:55 +msgid "[45, 50)" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:55 +msgid "90%" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:57 +msgid "[42, 45)" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:57 +msgid "80%" msgstr "" -#: ../../common_information/points.rst:37 -msgid "6" +#: ../../../../docs/common_information/points.rst:59 +msgid "[40, 42)" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:59 +msgid "70%" msgstr "" -#: ../../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" +#: ../../../../docs/common_information/points.rst:61 +msgid "[37, 40)" msgstr "" -#: ../../common_information/points.rst:43 -msgid "TBB" +#: ../../../../docs/common_information/points.rst:61 +msgid "60%" msgstr "" -#: ../../common_information/points.rst:47 ../../common_information/points.rst:55 -#: ../../common_information/points.rst:63 ../../common_information/points.rst:71 -msgid "2" +#: ../../../../docs/common_information/points.rst:63 +msgid "[35, 37)" msgstr "" -#: ../../common_information/points.rst:51 -msgid "C++ STL" +#: ../../../../docs/common_information/points.rst:63 +msgid "50%" msgstr "" -#: ../../common_information/points.rst:52 -msgid "8" +#: ../../../../docs/common_information/points.rst:65 +msgid "[32, 35)" msgstr "" -#: ../../common_information/points.rst:56 -msgid "16" +#: ../../../../docs/common_information/points.rst:65 +msgid "40%" msgstr "" -#: ../../common_information/points.rst:59 -msgid "All" +#: ../../../../docs/common_information/points.rst:67 +msgid "[30, 32)" msgstr "" -#: ../../common_information/points.rst:60 -msgid "10" +#: ../../../../docs/common_information/points.rst:67 +msgid "30%" msgstr "" -#: ../../common_information/points.rst:64 -msgid "21" +#: ../../../../docs/common_information/points.rst:69 +msgid "[27, 30)" msgstr "" -#: ../../common_information/points.rst:68 -msgid "4" +#: ../../../../docs/common_information/points.rst:69 +msgid "20%" +msgstr "" + +#: ../../../../docs/common_information/points.rst:71 +msgid "[25, 27)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:71 +msgid "10%" +msgstr "" + +#: ../../../../docs/common_information/points.rst:73 +msgid "< 25%" +msgstr "" + +#: ../../../../docs/common_information/points.rst:73 +msgid "0%" +msgstr "" + +#: ../../../../docs/common_information/points.rst:77 +msgid "Report" +msgstr "" + +#: ../../../../docs/common_information/points.rst:80 +msgid "Completeness" +msgstr "" + +#: ../../../../docs/common_information/points.rst:80 +msgid "Text Quality" msgstr "" -#: ../../common_information/points.rst:72 +#: ../../../../docs/common_information/points.rst:80 +msgid "Formatting Quality" +msgstr "" + +#: ../../../../docs/common_information/points.rst:80 +msgid "Total" +msgstr "" + +#: ../../../../docs/common_information/points.rst:82 +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:105 msgid "5" msgstr "" -#: ../../common_information/points.rst:74 -msgid "Grading" +#: ../../../../docs/common_information/points.rst:82 +msgid "2.5" +msgstr "" + +#: ../../../../docs/common_information/points.rst:82 +msgid "10" msgstr "" -#: ../../common_information/points.rst:76 -msgid "5-point (4-grade) scale" +#: ../../../../docs/common_information/points.rst:86 +msgid "Conversion to grade" msgstr "" -#: ../../common_information/points.rst:78 -msgid "Exam" +#: ../../../../docs/common_information/points.rst:88 +msgid "5-point scale" msgstr "" -#: ../../common_information/points.rst:78 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 msgid "Points range" msgstr "" -#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 +msgid "Exam Assessment" +msgstr "" + +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 +msgid "Student Pass" +msgstr "" + +#: ../../../../docs/common_information/points.rst:93 +msgid "[92, 100]" +msgstr "" + +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:95 +#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:105 +#: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:108 msgid "Passed" msgstr "" -#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 +#: ../../../../docs/common_information/points.rst:94 +msgid "[70, 92)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 +msgid "4" +msgstr "" + +#: ../../../../docs/common_information/points.rst:95 +#: ../../../../docs/common_information/points.rst:108 +msgid "[50, 70)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:95 +#: ../../../../docs/common_information/points.rst:108 +msgid "3" +msgstr "" + +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 +msgid "< 50" +msgstr "" + +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 +msgid "2" +msgstr "" + +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 msgid "Not Passed" msgstr "" +#: ../../../../docs/common_information/points.rst:99 +msgid "7-point scale (current)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:104 +msgid "[99, 100]" +msgstr "" + +#: ../../../../docs/common_information/points.rst:104 +msgid "5.5" +msgstr "" + +#: ../../../../docs/common_information/points.rst:105 +msgid "[92, 99)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:106 +msgid "[82, 92)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:106 +msgid "4.5" +msgstr "" + +#: ../../../../docs/common_information/points.rst:107 +msgid "[70, 82)" +msgstr "" + +#: ../../../../docs/common_information/points.rst:113 +msgid "Penalties" +msgstr "" + +#: ../../../../docs/common_information/points.rst:115 +msgid "A deadline will be set for each task." +msgstr "" + +#: ../../../../docs/common_information/points.rst:116 +msgid "1 point is deducted from the version’s score for each day of delay." +msgstr "" + +#: ../../../../docs/common_information/points.rst:117 +msgid "" +"A task is considered accepted when it is merged into the default branch " +"after a successful CI pipeline." +msgstr "" + +#: ../../../../docs/common_information/points.rst:118 +msgid "" +"The submission time is defined as the timestamp of the last meaningful " +"commit (not an empty commit to re-trigger CI jobs)." +msgstr "" + +#: ../../../../docs/common_information/points.rst:121 +msgid "Comments" +msgstr "" + +#: ../../../../docs/common_information/points.rst:123 +msgid "" +"One week before the end of the semester, the repository is closed for " +"final assessment." +msgstr "" + +#~ msgid "For “process parallelism” semester" +#~ msgstr "" + +#~ msgid "1st MPI task" +#~ msgstr "" + +#~ msgid "Performance" +#~ msgstr "" + +#~ msgid "0" +#~ msgstr "" + +#~ msgid "MPI" +#~ msgstr "" + +#~ msgid "8" +#~ msgstr "" + +#~ msgid "Seq" +#~ msgstr "" + +#~ msgid "12" +#~ msgstr "" + +#~ msgid "Task" +#~ msgstr "" + +#~ msgid "2nd MPI task" +#~ msgstr "" + +#~ msgid "23" +#~ msgstr "" + +#~ msgid "3rd MPI task" +#~ msgstr "" + +#~ msgid "16" +#~ msgstr "" + +#~ msgid "35" +#~ msgstr "" + +#~ msgid "For “thread parallelism” semester" +#~ msgstr "" + +#~ msgid "OpenMP" +#~ msgstr "" + +#~ msgid "S" +#~ msgstr "" + +#~ msgid "A" +#~ msgstr "" + +#~ msgid "R" +#~ msgstr "" + +#~ msgid "6" +#~ msgstr "" + +#~ msgid "1" +#~ msgstr "" + +#~ msgid "11" +#~ msgstr "" + +#~ msgid "TBB" +#~ msgstr "" + +#~ msgid "C++ STL" +#~ msgstr "" + +#~ msgid "All" +#~ msgstr "" + +#~ msgid "21" +#~ msgstr "" + +#~ msgid "Grading" +#~ msgstr "" + +#~ msgid "5-point (4-grade) scale" +#~ msgstr "" + +#~ msgid "Exam" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/common_information/report.po b/docs/locale/en/LC_MESSAGES/common_information/report.po index 6a720743b..b57fb2913 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/report.po +++ b/docs/locale/en/LC_MESSAGES/common_information/report.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:06+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/common_information/report.rst:2 msgid "Report" @@ -44,8 +44,9 @@ msgstr "" #: ../../../../docs/common_information/report.rst:9 msgid "" -"Write the report in a concise, reproducible manner. Use English or " -"Russian consistently." +"Write the report concisely with enough detail to reproduce the results " +"(environment, commands, data generation). Use English or Russian " +"consistently." msgstr "" #: ../../../../docs/common_information/report.rst:12 @@ -101,78 +102,74 @@ msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" msgstr "" #: ../../../../docs/common_information/report.rst:26 -msgid "Implementation Details per technology used (only those in your semester)" -msgstr "" - -#: ../../../../docs/common_information/report.rst:27 msgid "" "Experimental Results - Environment (CPU, OS, compiler, build type; " "thread/process counts) - Execution time tables/plots; performance metrics" " (speedup/efficiency) - Correctness checks description" msgstr "" -#: ../../../../docs/common_information/report.rst:31 -msgid "Conclusions (what worked, what didn’t, further work)" +#: ../../../../docs/common_information/report.rst:30 +msgid "Conclusions (what worked, what didn’t)" msgstr "" -#: ../../../../docs/common_information/report.rst:32 +#: ../../../../docs/common_information/report.rst:31 msgid "References (articles, docs; provide links)" msgstr "" -#: ../../../../docs/common_information/report.rst:33 -msgid "Appendix (optional code snippets; keep readable)" +#: ../../../../docs/common_information/report.rst:32 +msgid "Appendix (optional code snippets)" msgstr "" -#: ../../../../docs/common_information/report.rst:36 +#: ../../../../docs/common_information/report.rst:35 msgid "Evaluation criteria" msgstr "" -#: ../../../../docs/common_information/report.rst:37 +#: ../../../../docs/common_information/report.rst:36 msgid "" "Completeness - All items from the recommended structure are present and " "meaningful - Results include both correctness and performance evidence" msgstr "" -#: ../../../../docs/common_information/report.rst:40 +#: ../../../../docs/common_information/report.rst:39 msgid "" "Text Quality - Clarity, coherence, correct terminology; acceptable " "language quality" msgstr "" -#: ../../../../docs/common_information/report.rst:42 +#: ../../../../docs/common_information/report.rst:41 msgid "" "Formatting Quality - Proper Markdown headings, lists, tables, fenced code" " blocks - Figures/plots with captions and relative paths; readable " "formatting" msgstr "" -#: ../../../../docs/common_information/report.rst:47 +#: ../../../../docs/common_information/report.rst:46 msgid "Notes" msgstr "" -#: ../../../../docs/common_information/report.rst:48 +#: ../../../../docs/common_information/report.rst:47 msgid "" "Reports are reviewed online in the Pull Request. The final grade is based" " on the submitted version that passes the review." msgstr "" -#: ../../../../docs/common_information/report.rst:49 +#: ../../../../docs/common_information/report.rst:48 msgid "" -"If the task is disabled at the end of semester (e.g., fails in master; " +"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." msgstr "" -#: ../../../../docs/common_information/report.rst:50 +#: ../../../../docs/common_information/report.rst:49 msgid "" "Plagiarism is prohibited; identical or near‑duplicate reports will be " "rejected." msgstr "" -#: ../../../../docs/common_information/report.rst:55 +#: ../../../../docs/common_information/report.rst:52 msgid "Markdown template (report.md)" msgstr "" -#: ../../../../docs/common_information/report.rst:57 +#: ../../../../docs/common_information/report.rst:54 msgid "" "Use the following skeleton as a starting point for your ``report.md``. " "Keep file paths relative to the task directory (for images/data)." @@ -288,3 +285,28 @@ msgstr "" #~ msgid "Russian template (report.md)" #~ msgstr "" +#~ msgid "" +#~ "Write the report in a concise, " +#~ "reproducible manner. Use English or " +#~ "Russian consistently." +#~ msgstr "" + +#~ msgid "" +#~ "Implementation Details per technology used " +#~ "(only those in your semester)" +#~ msgstr "" + +#~ msgid "Conclusions (what worked, what didn’t, further work)" +#~ msgstr "" + +#~ msgid "Appendix (optional code snippets; keep readable)" +#~ msgstr "" + +#~ 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 "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/api.po b/docs/locale/en/LC_MESSAGES/user_guide/api.po index 9dd535be2..4c6637226 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:06+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -18,7 +18,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/api.rst:2 msgid "API Reference" @@ -28,42 +28,10 @@ msgstr "" msgid "Runners Module" msgstr "" -#: ../../../../docs/user_guide/api.rst -msgid "Functions" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Parameters" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Returns" -msgstr "" - #: ../../../../docs/user_guide/api.rst:14 msgid "Task Module" msgstr "" -#: ../../../../docs/user_guide/api.rst -msgid "Typedefs" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Template Parameters" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Enums" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Throws" -msgstr "" - -#: ../../../../docs/user_guide/api.rst -msgid "Variables" -msgstr "" - #: ../../../../docs/user_guide/api.rst:20 msgid "Utility Module" msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/user_guide/build.po b/docs/locale/en/LC_MESSAGES/user_guide/build.po index 4481e2e40..8e79f1690 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/build.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 14:15+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" @@ -57,8 +57,9 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=\"example\"``, " -"to limit the build." +"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build." +" Meta-layout tasks with ``threads`` and ``processes`` subtrees are built " +"as one selected task." msgstr "" #: ../../../../docs/user_guide/build.rst:32 @@ -105,3 +106,11 @@ msgstr "" #~ msgid "Run ``/build/bin``" #~ msgstr "" + +#~ msgid "" +#~ "``-D PPC_TASKS=all`` builds every task " +#~ "(default). Pass one task or a " +#~ "semicolon list, for example ``-D " +#~ "PPC_TASKS=\"example\"``, to limit the build." +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/ci.po b/docs/locale/en/LC_MESSAGES/user_guide/ci.po index f04a77f87..383f60dde 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/ci.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 18:02+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" @@ -85,7 +85,8 @@ 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." +" pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " +"OpenSSF Scorecard." msgstr "" #: ../../../../docs/user_guide/ci.rst:26 @@ -93,7 +94,9 @@ msgid "Diagram" msgstr "" #: ../../../../docs/user_guide/ci.rst:27 -msgid "The pipeline is illustrated below (blocks may be collapsed in GitHub UI):" +msgid "" +"The pipeline is illustrated below. Image is auto-generated by " +"``scripts/jobs_graph.py``:" msgstr "" #: ../../../../docs/user_guide/ci.rst:29 @@ -208,8 +211,9 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:89 msgid "" -"Static analysis (clang-tidy) fails: address comments; do not use " -"``NOLINT``/``IWYU pragma`` in task code." +"Static analysis fails: address clang-tidy comments; do not use " +"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread " +"APIs in their matching task backend directories." msgstr "" #: ../../../../docs/user_guide/ci.rst:90 @@ -269,7 +273,7 @@ msgstr "" #: ../../../../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 " +"tidy-22``) 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 "" @@ -379,3 +383,33 @@ msgstr "" #~ "passed to the test binaries." #~ msgstr "" +#~ msgid "" +#~ "Security and static analysis — " +#~ "clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " +#~ "pragma``), scheduled CodeQL (C++/Python) and" +#~ " OpenSSF Scorecard." +#~ msgstr "" + +#~ msgid "" +#~ "The pipeline is illustrated below " +#~ "(blocks may be collapsed in GitHub " +#~ "UI):" +#~ msgstr "" + +#~ msgid "" +#~ "Static analysis (clang-tidy) fails: " +#~ "address comments; do not use " +#~ "``NOLINT``/``IWYU pragma`` in task code." +#~ msgstr "" + +#~ 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 "" + 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 a13f88ce6..fba9d8b4a 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:07+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/submit_work.rst:2 msgid "How to create, open, and submit your work" @@ -203,75 +203,99 @@ msgid "" "достоверность сведений)." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:160 +#: ../../../../docs/user_guide/submit_work.rst:158 msgid "PR checklist template (body)" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:208 +#: ../../../../docs/user_guide/submit_work.rst:181 msgid "Common pitfalls (read before pushing)" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:209 +#: ../../../../docs/user_guide/submit_work.rst:182 msgid "Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:210 +#: ../../../../docs/user_guide/submit_work.rst:183 msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:211 +#: ../../../../docs/user_guide/submit_work.rst:184 msgid "Tests rely on randomness or sleeps instead of env time limits." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:212 +#: ../../../../docs/user_guide/submit_work.rst:185 msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:213 +#: ../../../../docs/user_guide/submit_work.rst:186 msgid "Namespace doesn’t match the folder name and collides with others." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:214 +#: ../../../../docs/user_guide/submit_work.rst:187 msgid "Performance tests count or naming deviates from the required patterns." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:217 +#: ../../../../docs/user_guide/submit_work.rst:190 msgid "Useful examples to reference" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:218 +#: ../../../../docs/user_guide/submit_work.rst:191 +msgid "Unified example: ``tasks/example``" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:192 msgid "" -"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" +"Shared example files: ``tasks/example/settings.json``, " +"``tasks/example/info.json``, ``tasks/example/common``, " +"``tasks/example/data``" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:219 -msgid "Threads: ``tasks/example/threads``" +#: ../../../../docs/user_guide/submit_work.rst:193 +#, python-brace-format +msgid "Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:221 +#: ../../../../docs/user_guide/submit_work.rst:194 +msgid "" +"Processes: ``tasks/example/processes/t1``, " +"``tasks/example/processes/t2``, ``tasks/example/processes/t3``" +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:195 +msgid "" +"Process tasks keep independent ``seq`` and ``mpi`` implementations under " +"each ``tN`` directory." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:196 +msgid "" +"Example reports are tree-shaped: the root report links to section reports" +" and each implementation directory has its own ``report.md``." +msgstr "" + +#: ../../../../docs/user_guide/submit_work.rst:198 msgid "" "Work from your fork in a dedicated branch (not ``master``). Branch name " "must match your task folder." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:224 +#: ../../../../docs/user_guide/submit_work.rst:201 msgid "Notes" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:225 +#: ../../../../docs/user_guide/submit_work.rst:202 msgid "" "All classes should live in a unique namespace (e.g., " "``__``)." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:226 +#: ../../../../docs/user_guide/submit_work.rst:203 msgid "" "Keep tests deterministic and within time limits; prefer env vars over " "sleeps." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:227 +#: ../../../../docs/user_guide/submit_work.rst:204 msgid "" "Follow code style (clang-format/clang-tidy), and run pre-commit hooks " "locally." @@ -432,3 +456,6 @@ msgstr "" #~ "repositories." #~ msgstr "" +#~ msgid "Threads: ``tasks/example/threads``" +#~ msgstr "" + diff --git a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po index 8a455cd59..43026293d 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 14:15+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,90 +20,82 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/common_information/introduction.rst:2 msgid "Introduction" msgstr "Вводная информация" #: ../../../../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 "Практика" -#: ../../../../docs/common_information/introduction.rst:13 +#: ../../../../docs/common_information/introduction.rst:7 msgid "We work online" msgstr "Работа происходит в режиме online" -#: ../../../../docs/common_information/introduction.rst:15 +#: ../../../../docs/common_information/introduction.rst:9 msgid "Use GitHub repository" msgstr "Используется GitHub репозиторий" -#: ../../../../docs/common_information/introduction.rst:16 +#: ../../../../docs/common_information/introduction.rst:10 msgid "Use Pull Requests" msgstr "Для задач задействуются Pull Request'ы" -#: ../../../../docs/common_information/introduction.rst:17 +#: ../../../../docs/common_information/introduction.rst:11 msgid "Merge into the master branch" msgstr "Рабочая git-ветка курса - master" -#: ../../../../docs/common_information/introduction.rst:18 +#: ../../../../docs/common_information/introduction.rst:12 msgid "Test verification" msgstr "Используются различные виды тестирования" -#: ../../../../docs/common_information/introduction.rst:20 +#: ../../../../docs/common_information/introduction.rst:14 msgid "Task distribution is random for each student." msgstr "Распределение задач производится случайным образом для каждого человека" -#: ../../../../docs/common_information/introduction.rst:21 +#: ../../../../docs/common_information/introduction.rst:15 msgid "" "Full automation of quality and performance checks; plagiarism checks are " "applied." -msgstr "Полная автоматизация проверок качества и производительности; проводится проверка на плагиат." +msgstr "" +"Полная автоматизация проверок качества и производительности; проводится " +"проверка на плагиат." -#: ../../../../docs/common_information/introduction.rst:22 +#: ../../../../docs/common_information/introduction.rst:16 msgid "" "Deadlines are set per task. See the penalties and grading rules in " "``Points``." msgstr "Дедлайны задаются на каждую задачу. Подробности в разделе ``Баллы``." -#: ../../../../docs/common_information/introduction.rst:23 +#: ../../../../docs/common_information/introduction.rst:17 +#, fuzzy msgid "" -"Examples are provided in ``tasks/example/threads`` and " -"``tasks/example/processes/t1`` (and extended variations " -"``tasks/example/processes/t2`` / ``tasks/example/processes/t3``)." -msgstr "Примеры размещены в ``tasks/example/threads`` и ``tasks/example/processes/t1`` (а также расширенные варианты: ``tasks/example/processes/t2`` / ``tasks/example/processes/t3``)." +"Examples are provided in ``tasks/example`` tree with ``threads`` and " +"``processes/t1``..``processes/t3`` sections." +msgstr "" +"Примеры размещены в дереве ``tasks/example`` с секциями ``threads`` и " +"``processes/t1``..``processes/t3``." -#: ../../../../docs/common_information/introduction.rst:24 +#: ../../../../docs/common_information/introduction.rst:18 +#, fuzzy msgid "" "In each repository, the README.md contains a link to the course " -"documentation (**read it fully!!!**)." +"documentation." msgstr "" "В каждом из репозиториев в README.md находится документация курса " "(просьба читать полностью!!!)" -#: ../../../../docs/common_information/introduction.rst:25 -msgid "" -"Additionally, each repository includes an example of a properly formatted" -" PULL REQUEST." +#: ../../../../docs/common_information/introduction.rst:19 +#, fuzzy +msgid "Each repository includes an example of a properly formatted PULL REQUEST." msgstr "Также в каждом репозитории представлен пример оформления PULL REQUEST'а" -#: ../../../../docs/common_information/introduction.rst:26 +#: ../../../../docs/common_information/introduction.rst:20 msgid "Submission of all tasks is mandatory to pass the course." msgstr "Все задачи обязательны к выполнению" -#: ../../../../docs/common_information/introduction.rst:27 +#: ../../../../docs/common_information/introduction.rst:21 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" @@ -121,176 +113,184 @@ msgstr "" "признаку: имя директории вашей задачи будет изменено с " "``seq/nesterov_a_vector_sum`` на ``seq/nesterov_a_vector_sum_disabled``" -#: ../../../../docs/common_information/introduction.rst:34 +#: ../../../../docs/common_information/introduction.rst:28 msgid "Communication" msgstr "Коммуникации" -#: ../../../../docs/common_information/introduction.rst:36 +#: ../../../../docs/common_information/introduction.rst:30 msgid "Telegram channel — announcements and quick updates" msgstr "Канал в Telegram — объявления и быстрые обновления" -#: ../../../../docs/common_information/introduction.rst:37 +#: ../../../../docs/common_information/introduction.rst:31 msgid "GitHub Issues — repository problems and bug reports" msgstr "GitHub Issues — проблемы репозитория и отчёты об ошибках" -#: ../../../../docs/common_information/introduction.rst:38 +#: ../../../../docs/common_information/introduction.rst:32 msgid "Lessons — Q&A" msgstr "Занятия — вопросы и ответы" -#: ../../../../docs/common_information/introduction.rst:39 +#: ../../../../docs/common_information/introduction.rst:33 msgid "Feedback form — critical issues" msgstr "Форма обратной связи — критические вопросы" -#: ../../../../docs/common_information/introduction.rst:40 +#: ../../../../docs/common_information/introduction.rst:34 msgid "Email — non‑urgent matters" msgstr "Email — некритичные вопросы" -#: ../../../../docs/common_information/introduction.rst:43 -msgid "Next steps" -msgstr "Следующие шаги" - -#: ../../../../docs/common_information/introduction.rst:45 +#: ../../../../docs/common_information/introduction.rst:36 +#, fuzzy msgid "" -"Practice 1 (intro): task distribution, brief talk on parallelism, MPI " -"examples" -msgstr "Практика 1 (вводная): раздача вариантов, кратко о параллелизме, примеры MPI" +"\\* *All instructions, repositories, and tables may be updated during the" +" learning process for better usability. Be prepared for changes and check" +" updates periodically.*" +msgstr "" +"\\* *Все инструкции, репозитории и таблицы могут быть изменены в ходе " +"учебного процесса для более удобного использования, будьте готовы к " +"изменениям и периодически проверяйте это!!!!!!*" -#: ../../../../docs/common_information/introduction.rst:46 -msgid "" -"Practice 2 (repo usage): repository checks and project structure " -"walkthrough" -msgstr "Практика 2 (работа с репозиторием): проверки, обзор структуры проекта" +#~ msgid "" +#~ "An example for each technology can " +#~ "be found in the corresponding directory:" +#~ " ``tasks//example``." +#~ msgstr "" +#~ "Пример для каждой технологии находится в" +#~ " директории: ``tasks//example``." -#: ../../../../docs/common_information/introduction.rst:48 -msgid "All resources for using the repository will be provided here:" -msgstr "Все материалы по использованию репозитория будут представлены здесь:" +#~ msgid "Contacts" +#~ msgstr "Контакты" -#: ../../../../docs/common_information/introduction.rst:50 -msgid "" -"`Git for half an hour: A Beginner’s Guide `__" -msgstr "" -"`Git за полчаса: руководство для начинающих `__" +#~ msgid "Alexander Nesterov — nesterov.alexander@outlook.com" +#~ msgstr "Александр Нестеров — nesterov.alexander@outlook.com" -#: ../../../../docs/common_information/introduction.rst:51 -#, python-format -msgid "" -"`Getting Started with Git and GitHub: A Beginner’s Guide " -"`__" -msgstr "" -"`Знакомство с Git и GitHub: руководство для начинающих " -"`__" +#~ msgid "Arseniy Obolenskiy — me@gooddoog.ru" +#~ msgstr "Арсений Оболенский — me@gooddoog.ru" -#: ../../../../docs/common_information/introduction.rst:52 -msgid "" -"`Git: A Quick Start Guide to Using Core Operations with Explanations " -"`__" -msgstr "" -"`Git. Быстрый старт по использованию основных операций с объяснениями " -"`__" +#~ msgid "Next steps" +#~ msgstr "Следующие шаги" -#: ../../../../docs/common_information/introduction.rst:53 -msgid "" -"`Conflicts resolving in Git " -"`__" -msgstr "" -"`Разрешение конфликтов в Git " -"`__" +#~ msgid "" +#~ "Practice 1 (intro): task distribution, " +#~ "brief talk on parallelism, MPI examples" +#~ msgstr "" +#~ "Практика 1 (вводная): раздача вариантов, " +#~ "кратко о параллелизме, примеры MPI" -#: ../../../../docs/common_information/introduction.rst:54 -msgid "`Google testing framework (gtest) `__" -msgstr "`Фреймворк модульного тестирования Google (gtest) `__" +#~ msgid "" +#~ "Practice 2 (repo usage): repository " +#~ "checks and project structure walkthrough" +#~ msgstr "Практика 2 (работа с репозиторием): проверки, обзор структуры проекта" -#: ../../../../docs/common_information/introduction.rst:55 -msgid "" -"`GoogleTest Primer " -"`__" -msgstr "`Введение в GoogleTest `__" +#~ msgid "All resources for using the repository will be provided here:" +#~ msgstr "Все материалы по использованию репозитория будут представлены здесь:" -#: ../../../../docs/common_information/introduction.rst:56 -msgid "`GitHub Actions documentation `__" -msgstr "`GitHub Actions документация `__" +#~ msgid "" +#~ "`Git for half an hour: A " +#~ "Beginner’s Guide `__" +#~ msgstr "" +#~ "`Git за полчаса: руководство для " +#~ "начинающих `__" -#: ../../../../docs/common_information/introduction.rst:57 -msgid "" -"`Parallel Programming Technologies. Message Passing Interface (MPI) " -"`__" -msgstr "" -"`Технологии параллельного программирования. Message Passing Interface " -"(MPI) `__" +#~ msgid "" +#~ "`Getting Started with Git and GitHub:" +#~ " A Beginner’s Guide `__" +#~ msgstr "" +#~ "`Знакомство с Git и GitHub: руководство" +#~ " для начинающих `__" -#: ../../../../docs/common_information/introduction.rst:58 -msgid "" -"`Typing and Layout in the System LaTeX `__" -msgstr "" -"`Набор и вёрстка в системе LaTeX `__" +#~ msgid "" +#~ "`Git: A Quick Start Guide to Using" +#~ " Core Operations with Explanations " +#~ "`__" +#~ msgstr "" +#~ "`Git. Быстрый старт по использованию " +#~ "основных операций с объяснениями " +#~ "`__" -#: ../../../../docs/common_information/introduction.rst:59 -msgid "" -"`LaTeX for the beginners " -"`__" -msgstr "" -"`LaTeX для начинающих " -"`__" +#~ msgid "" +#~ "`Conflicts resolving in Git " +#~ "`__" +#~ msgstr "" +#~ "`Разрешение конфликтов в Git " +#~ "`__" -#: ../../../../docs/common_information/introduction.rst:60 -msgid "`What is OpenMP? `__" -msgstr "`Что такое OpenMP? `__" +#~ msgid "`Google testing framework (gtest) `__" +#~ msgstr "" +#~ "`Фреймворк модульного тестирования Google " +#~ "(gtest) `__" -#: ../../../../docs/common_information/introduction.rst:61 -msgid "" -"`TBB-1 " -"`__" -msgstr "" -"`Средства разработки параллельных программ для систем с общей памятью. " -"Библиотека Intel Threading Building Blocks " -"`__" +#~ msgid "" +#~ "`GoogleTest Primer " +#~ "`__" +#~ msgstr "" +#~ "`Введение в GoogleTest " +#~ "`__" -#: ../../../../docs/common_information/introduction.rst:62 -msgid "" -"`Writing Multithreaded Applications in C++ `__" -msgstr "" -"`Написание многопоточных приложений на C++ `__" +#~ msgid "`GitHub Actions documentation `__" +#~ msgstr "`GitHub Actions документация `__" -#: ../../../../docs/common_information/introduction.rst:63 -msgid "" -"`Multithreading: New Features of the C++11 Standard " -"`__" -msgstr "" -"`Многопоточность, новые возможности стандарта C++11 " -"`__" +#~ msgid "" +#~ "`Parallel Programming Technologies. Message " +#~ "Passing Interface (MPI) " +#~ "`__" +#~ msgstr "" +#~ "`Технологии параллельного программирования. Message" +#~ " Passing Interface (MPI) " +#~ "`__" -#: ../../../../docs/common_information/introduction.rst:64 -msgid "" -"`Introduction to Parallel Computing " -"`__" -msgstr "" -"`Введение в параллельные вычисления " -"`__" +#~ msgid "" +#~ "`Typing and Layout in the System " +#~ "LaTeX `__" +#~ msgstr "" +#~ "`Набор и вёрстка в системе LaTeX " +#~ "`__" -#: ../../../../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 " -"and update them periodically!!!*" -msgstr "" -"\\* *Все инструкции, репозитории и таблицы могут быть изменены в ходе " -"учебного процесса для более удобного использования, будьте готовы к " -"изменениям и периодически проверяйте это!!!!!!*" +#~ msgid "" +#~ "`LaTeX for the beginners " +#~ "`__" +#~ msgstr "" +#~ "`LaTeX для начинающих " +#~ "`__" + +#~ msgid "`What is OpenMP? `__" +#~ msgstr "`Что такое OpenMP? `__" #~ msgid "" -#~ "An example for each technology can " -#~ "be found in the corresponding directory:" -#~ " ``tasks//example``." +#~ "`TBB-1 " +#~ "`__" #~ msgstr "" -#~ "Пример для каждой технологии находится в" -#~ " директории: ``tasks//example``." +#~ "`Средства разработки параллельных программ для" +#~ " систем с общей памятью. Библиотека " +#~ "Intel Threading Building Blocks " +#~ "`__" + +#~ msgid "" +#~ "`Writing Multithreaded Applications in C++ " +#~ "`__" +#~ msgstr "" +#~ "`Написание многопоточных приложений на C++ " +#~ "`__" + +#~ msgid "" +#~ "`Multithreading: New Features of the " +#~ "C++11 Standard " +#~ "`__" +#~ msgstr "" +#~ "`Многопоточность, новые возможности стандарта " +#~ "C++11 " +#~ "`__" + +#~ msgid "" +#~ "`Introduction to Parallel Computing " +#~ "`__" +#~ msgstr "" +#~ "`Введение в параллельные вычисления " +#~ "`__" diff --git a/docs/locale/ru/LC_MESSAGES/common_information/points.po b/docs/locale/ru/LC_MESSAGES/common_information/points.po index 2acecb54d..03e5e24ba 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/points.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/points.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 14:15+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/common_information/points.rst:2 msgid "Points" @@ -46,19 +46,25 @@ msgstr "Семестр процессов (MPI)" msgid "" "Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " "Report: 2" -msgstr "Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 — Отчёт: 2" +msgstr "" +"Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 " +"— Отчёт: 2" #: ../../../../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" +msgstr "" +"Задача 2 — Итого: 23 — Реализация: MPI 12 + Seq 3 — Производительность: 5" +" — Отчёт: 3" #: ../../../../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" +msgstr "" +"Задача 3 — Итого: 35 — Реализация: MPI 16 + Seq 4 — Производительность: " +"10 — Отчёт: 5" #: ../../../../docs/common_information/points.rst:28 msgid "Semester total: 70" @@ -92,285 +98,294 @@ msgstr "all — Итого: 21 (S 10, A 8, R 3)" msgid "Semester total: 64" msgstr "Итого за семестр: 64" -#: ../../../../docs/common_information/points.rst:42 +#: ../../../../docs/common_information/points.rst:41 +msgid "" +"Legend: S — Solution (implementation), A — Acceleration (performance), R " +"— Report" +msgstr "" + +#: ../../../../docs/common_information/points.rst:44 msgid "Performance points mapping" msgstr "Маппинг баллов за производительность" -#: ../../../../docs/common_information/points.rst:44 +#: ../../../../docs/common_information/points.rst:46 msgid "" "The ratio of efficiency percentage to points percentage (max 100%, min " "0%):" -msgstr "Соотношение процента эффективности к проценту баллов (макс. 100%, мин. 0%):" +msgstr "" +"Соотношение процента эффективности к проценту баллов (макс. 100%, мин. " +"0%):" -#: ../../../../docs/common_information/points.rst:46 +#: ../../../../docs/common_information/points.rst:48 msgid "If the score is not an integer, it is rounded up." msgstr "Если значение не целое, округляется в большую сторону." -#: ../../../../docs/common_information/points.rst:49 +#: ../../../../docs/common_information/points.rst:51 msgid "Efficiency (%)" msgstr "Эффективность" -#: ../../../../docs/common_information/points.rst:49 +#: ../../../../docs/common_information/points.rst:51 msgid "Points percentage" msgstr "Процент баллов за производительность" -#: ../../../../docs/common_information/points.rst:51 +#: ../../../../docs/common_information/points.rst:53 msgid ">= 50%" msgstr ">= 50%" -#: ../../../../docs/common_information/points.rst:51 +#: ../../../../docs/common_information/points.rst:53 msgid "100%" msgstr "100%" -#: ../../../../docs/common_information/points.rst:53 +#: ../../../../docs/common_information/points.rst:55 msgid "[45, 50)" msgstr "[45, 50)" -#: ../../../../docs/common_information/points.rst:53 +#: ../../../../docs/common_information/points.rst:55 msgid "90%" msgstr "90%" -#: ../../../../docs/common_information/points.rst:55 +#: ../../../../docs/common_information/points.rst:57 msgid "[42, 45)" msgstr "[42, 45)" -#: ../../../../docs/common_information/points.rst:55 +#: ../../../../docs/common_information/points.rst:57 msgid "80%" msgstr "80%" -#: ../../../../docs/common_information/points.rst:57 +#: ../../../../docs/common_information/points.rst:59 msgid "[40, 42)" msgstr "[40, 42)" -#: ../../../../docs/common_information/points.rst:57 +#: ../../../../docs/common_information/points.rst:59 msgid "70%" msgstr "70%" -#: ../../../../docs/common_information/points.rst:59 +#: ../../../../docs/common_information/points.rst:61 msgid "[37, 40)" msgstr "[37, 40)" -#: ../../../../docs/common_information/points.rst:59 +#: ../../../../docs/common_information/points.rst:61 msgid "60%" msgstr "60%" -#: ../../../../docs/common_information/points.rst:61 +#: ../../../../docs/common_information/points.rst:63 msgid "[35, 37)" msgstr "[35, 37)" -#: ../../../../docs/common_information/points.rst:61 +#: ../../../../docs/common_information/points.rst:63 msgid "50%" msgstr "50%" -#: ../../../../docs/common_information/points.rst:63 +#: ../../../../docs/common_information/points.rst:65 msgid "[32, 35)" msgstr "[32, 35)" -#: ../../../../docs/common_information/points.rst:63 +#: ../../../../docs/common_information/points.rst:65 msgid "40%" msgstr "40%" -#: ../../../../docs/common_information/points.rst:65 +#: ../../../../docs/common_information/points.rst:67 msgid "[30, 32)" msgstr "[30, 32)" -#: ../../../../docs/common_information/points.rst:65 +#: ../../../../docs/common_information/points.rst:67 msgid "30%" msgstr "30%" -#: ../../../../docs/common_information/points.rst:67 +#: ../../../../docs/common_information/points.rst:69 msgid "[27, 30)" msgstr "[27, 30)" -#: ../../../../docs/common_information/points.rst:67 +#: ../../../../docs/common_information/points.rst:69 msgid "20%" msgstr "20%" -#: ../../../../docs/common_information/points.rst:69 +#: ../../../../docs/common_information/points.rst:71 msgid "[25, 27)" msgstr "[25, 27)" -#: ../../../../docs/common_information/points.rst:69 +#: ../../../../docs/common_information/points.rst:71 msgid "10%" msgstr "10%" -#: ../../../../docs/common_information/points.rst:71 +#: ../../../../docs/common_information/points.rst:73 msgid "< 25%" msgstr "< 25%" -#: ../../../../docs/common_information/points.rst:71 +#: ../../../../docs/common_information/points.rst:73 msgid "0%" msgstr "0%" -#: ../../../../docs/common_information/points.rst:75 +#: ../../../../docs/common_information/points.rst:77 msgid "Report" msgstr "Отчёт" -#: ../../../../docs/common_information/points.rst:78 +#: ../../../../docs/common_information/points.rst:80 msgid "Completeness" msgstr "Наличие всех требуемых пунктов" -#: ../../../../docs/common_information/points.rst:78 +#: ../../../../docs/common_information/points.rst:80 msgid "Text Quality" msgstr "Качество текста" -#: ../../../../docs/common_information/points.rst:78 +#: ../../../../docs/common_information/points.rst:80 msgid "Formatting Quality" msgstr "Качество оформления" -#: ../../../../docs/common_information/points.rst:78 +#: ../../../../docs/common_information/points.rst:80 msgid "Total" msgstr "Итог" -#: ../../../../docs/common_information/points.rst:80 -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:103 +#: ../../../../docs/common_information/points.rst:82 +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:105 msgid "5" msgstr "5" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:82 msgid "2.5" msgstr "2.5" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:82 msgid "10" msgstr "10" -#: ../../../../docs/common_information/points.rst:84 +#: ../../../../docs/common_information/points.rst:86 msgid "Conversion to grade" msgstr "Перевод в оценку" -#: ../../../../docs/common_information/points.rst:86 +#: ../../../../docs/common_information/points.rst:88 msgid "5-point scale" msgstr "5-балльная шкала" -#: ../../../../docs/common_information/points.rst:89 -#: ../../../../docs/common_information/points.rst:100 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 msgid "Points range" msgstr "Диапозон баллов" -#: ../../../../docs/common_information/points.rst:89 -#: ../../../../docs/common_information/points.rst:100 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 msgid "Exam Assessment" msgstr "Экзаменационная оценка" -#: ../../../../docs/common_information/points.rst:89 -#: ../../../../docs/common_information/points.rst:100 +#: ../../../../docs/common_information/points.rst:91 +#: ../../../../docs/common_information/points.rst:102 msgid "Student Pass" msgstr "Зачет" -#: ../../../../docs/common_information/points.rst:91 -msgid "[87, 100]" -msgstr "[87, 100]" +#: ../../../../docs/common_information/points.rst:93 +#, fuzzy +msgid "[92, 100]" +msgstr "[99, 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:94 +#: ../../../../docs/common_information/points.rst:95 #: ../../../../docs/common_information/points.rst:104 #: ../../../../docs/common_information/points.rst:105 #: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:108 msgid "Passed" msgstr "Зачет" -#: ../../../../docs/common_information/points.rst:92 -msgid "[70, 87)" -msgstr "[70, 87)" +#: ../../../../docs/common_information/points.rst:94 +#, fuzzy +msgid "[70, 92)" +msgstr "[70, 82)" -#: ../../../../docs/common_information/points.rst:92 -#: ../../../../docs/common_information/points.rst:105 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "4" msgstr "4" -#: ../../../../docs/common_information/points.rst:93 -#: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:95 +#: ../../../../docs/common_information/points.rst:108 msgid "[50, 70)" msgstr "[50, 70)" -#: ../../../../docs/common_information/points.rst:93 -#: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:95 +#: ../../../../docs/common_information/points.rst:108 msgid "3" msgstr "3" -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 msgid "< 50" msgstr "< 50" -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 msgid "2" msgstr "2" -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:96 +#: ../../../../docs/common_information/points.rst:109 msgid "Not Passed" msgstr "Незачет" -#: ../../../../docs/common_information/points.rst:97 +#: ../../../../docs/common_information/points.rst:99 msgid "7-point scale (current)" msgstr "7-балльная шкала (текущая)" -#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:104 msgid "[99, 100]" msgstr "[99, 100]" -#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:104 msgid "5.5" msgstr "5.5" -#: ../../../../docs/common_information/points.rst:103 +#: ../../../../docs/common_information/points.rst:105 msgid "[92, 99)" msgstr "[92, 99)" -#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:106 msgid "[82, 92)" msgstr "[82, 92)" -#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:106 msgid "4.5" msgstr "4.5" -#: ../../../../docs/common_information/points.rst:105 +#: ../../../../docs/common_information/points.rst:107 msgid "[70, 82)" msgstr "[70, 82)" -#: ../../../../docs/common_information/points.rst:111 +#: ../../../../docs/common_information/points.rst:113 msgid "Penalties" msgstr "Штрафные санкции" -#: ../../../../docs/common_information/points.rst:113 -msgid "A deadline will be set for each version." +#: ../../../../docs/common_information/points.rst:115 +#, fuzzy +msgid "A deadline will be set for each task." msgstr "Для каждой версии будет установлен свой крайний срок сдачи." -#: ../../../../docs/common_information/points.rst:114 +#: ../../../../docs/common_information/points.rst:116 msgid "1 point is deducted from the version’s score for each day of delay." msgstr "За каждый день просрочки из оценки версии вычитается 1 балл." -#: ../../../../docs/common_information/points.rst:115 +#: ../../../../docs/common_information/points.rst:117 +#, fuzzy msgid "" -"A task is considered submitted when it is merged into the default branch " +"A task is considered accepted when it is merged into the default branch " "after a successful CI pipeline." -msgstr "Задание считается сданным, когда оно влито в ветку по умолчанию после успешного прохождения CI." +msgstr "" +"Задание считается сданным, когда оно влито в ветку по умолчанию после " +"успешного прохождения CI." -#: ../../../../docs/common_information/points.rst:116 +#: ../../../../docs/common_information/points.rst:118 +#, fuzzy msgid "" -"The submission time is defined as the timestamp of the last successful CI" -" commit." +"The submission time is defined as the timestamp of the last meaningful " +"commit (not an empty commit to re-trigger CI jobs)." msgstr "Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." -#: ../../../../docs/common_information/points.rst:119 +#: ../../../../docs/common_information/points.rst:121 msgid "Comments" msgstr "Комментарии" -#: ../../../../docs/common_information/points.rst:121 -msgid "It is forbidden to write the report if all tasks are not completed." -msgstr "" -"Запрещено писать отчет, если не выполнены все задания, которые связаны с " -"этим отчетом." - -#: ../../../../docs/common_information/points.rst:122 +#: ../../../../docs/common_information/points.rst:123 msgid "" "One week before the end of the semester, the repository is closed for " "final assessment." @@ -441,3 +456,16 @@ msgstr "За неделю до конца семестра репозитори #~ msgid "For 7-point grading system **(our current system)**" #~ msgstr "7-ми балльная система оценки **(наша текущая система)**" + +#~ msgid "[87, 100]" +#~ msgstr "[87, 100]" + +#~ msgid "[70, 87)" +#~ msgstr "[70, 87)" + +#~ msgid "It is forbidden to write the report if all tasks are not completed." +#~ msgstr "" +#~ "Запрещено писать отчет, если не " +#~ "выполнены все задания, которые связаны с" +#~ " этим отчетом." + diff --git a/docs/locale/ru/LC_MESSAGES/common_information/report.po b/docs/locale/ru/LC_MESSAGES/common_information/report.po index 16d5aa117..7971f58d2 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/report.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/report.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:06+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/common_information/report.rst:2 msgid "Report" @@ -34,19 +34,27 @@ msgstr "Общее и размещение" msgid "" "The report is a Markdown file placed inside your task directory: " "``tasks/__/report.md``." -msgstr "Отчёт — это Markdown‑файл в папке вашей задачи: ``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) баллов по этой задаче (см. «Баллы»)." +msgstr "" +"Наличие ``report.md`` обязательно для получения отчётных (R) баллов по " +"этой задаче (см. «Баллы»)." #: ../../../../docs/common_information/report.rst:9 +#, fuzzy msgid "" -"Write the report in a concise, reproducible manner. Use English or " -"Russian consistently." -msgstr "Пишите отчёт кратко и воспроизводимо. Используйте один язык последовательно (русский или английский)." +"Write the report concisely with enough detail to reproduce the results " +"(environment, commands, data generation). Use English or Russian " +"consistently." +msgstr "" +"Пишите отчёт кратко и воспроизводимо. Используйте один язык " +"последовательно (русский или английский)." #: ../../../../docs/common_information/report.rst:12 msgid "Report points" @@ -98,85 +106,104 @@ msgstr "Описание алгоритма (базового/последова #: ../../../../docs/common_information/report.rst:25 msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" -msgstr "Схема распараллеливания (для MPI — топология/обмены, для потоков — декомпозиция и планирование)" +msgstr "" +"Схема распараллеливания (для MPI — топология/обмены, для потоков — " +"декомпозиция и планирование)" #: ../../../../docs/common_information/report.rst:26 -msgid "Implementation Details per technology used (only those in your semester)" -msgstr "Детали реализации по используемым технологиям (только требуемые в семестре)" - -#: ../../../../docs/common_information/report.rst:27 msgid "" "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/компилятор/тип сборки; числа потоков/процессов) — Таблицы/графики времени; метрики ускорения/эффективности — Описание проверки корректности" +msgstr "" +"Экспериментальные результаты — Окружение (CPU/OS/компилятор/тип сборки; " +"числа потоков/процессов) — Таблицы/графики времени; метрики " +"ускорения/эффективности — Описание проверки корректности" -#: ../../../../docs/common_information/report.rst:31 -msgid "Conclusions (what worked, what didn’t, further work)" +#: ../../../../docs/common_information/report.rst:30 +#, fuzzy +msgid "Conclusions (what worked, what didn’t)" msgstr "Выводы (что получилось, ограничения, дальнейшие работы)" -#: ../../../../docs/common_information/report.rst:32 +#: ../../../../docs/common_information/report.rst:31 msgid "References (articles, docs; provide links)" msgstr "Источники (статьи, документация; ссылки)" -#: ../../../../docs/common_information/report.rst:33 -msgid "Appendix (optional code snippets; keep readable)" +#: ../../../../docs/common_information/report.rst:32 +#, fuzzy +msgid "Appendix (optional code snippets)" msgstr "Приложение (небольшие фрагменты кода; сохраняйте читаемость)" -#: ../../../../docs/common_information/report.rst:36 +#: ../../../../docs/common_information/report.rst:35 msgid "Evaluation criteria" msgstr "Критерии оценки" -#: ../../../../docs/common_information/report.rst:37 +#: ../../../../docs/common_information/report.rst:36 msgid "" "Completeness - All items from the recommended structure are present and " "meaningful - Results include both correctness and performance evidence" -msgstr "Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны — есть подтверждение корректности и результатов производительности" +msgstr "" +"Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны" +" — есть подтверждение корректности и результатов производительности" -#: ../../../../docs/common_information/report.rst:40 +#: ../../../../docs/common_information/report.rst:39 msgid "" "Text Quality - Clarity, coherence, correct terminology; acceptable " "language quality" -msgstr "Качество текста — ясность, связность, корректная терминология; приемлемое качество языка" +msgstr "" +"Качество текста — ясность, связность, корректная терминология; приемлемое" +" качество языка" -#: ../../../../docs/common_information/report.rst:42 +#: ../../../../docs/common_information/report.rst:41 msgid "" "Formatting Quality - Proper Markdown headings, lists, tables, fenced code" " blocks - Figures/plots with captions and relative paths; readable " "formatting" -msgstr "Качество оформления — корректные Markdown‑заголовки, списки, таблицы, блоки кода — рисунки/графики с подписями и относительными путями; читаемое форматирование" +msgstr "" +"Качество оформления — корректные Markdown‑заголовки, списки, таблицы, " +"блоки кода — рисунки/графики с подписями и относительными путями; " +"читаемое форматирование" -#: ../../../../docs/common_information/report.rst:47 +#: ../../../../docs/common_information/report.rst:46 msgid "Notes" msgstr "Примечания" -#: ../../../../docs/common_information/report.rst:48 +#: ../../../../docs/common_information/report.rst:47 msgid "" "Reports are reviewed online in the Pull Request. The final grade is based" " on the submitted version that passes the review." -msgstr "Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по версии, прошедшей ревью." +msgstr "" +"Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по " +"версии, прошедшей ревью." -#: ../../../../docs/common_information/report.rst:49 +#: ../../../../docs/common_information/report.rst:48 +#, fuzzy msgid "" -"If the task is disabled at the end of semester (e.g., fails in master; " +"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." -msgstr "Если задача окажется в «синей зоне» к концу семестра (например, падение в master), отчётные баллы по этой задаче обнуляются." +msgstr "" +"Если задача окажется в «синей зоне» к концу семестра (например, падение в" +" master), отчётные баллы по этой задаче обнуляются." -#: ../../../../docs/common_information/report.rst:50 +#: ../../../../docs/common_information/report.rst:49 msgid "" "Plagiarism is prohibited; identical or near‑duplicate reports will be " "rejected." -msgstr "Плагиат запрещён; совпадающие или почти совпадающие отчёты будут отклонены." +msgstr "" +"Плагиат запрещён; совпадающие или почти совпадающие отчёты будут " +"отклонены." -#: ../../../../docs/common_information/report.rst:55 +#: ../../../../docs/common_information/report.rst:52 msgid "Markdown template (report.md)" msgstr "Шаблон Markdown (report.md)" -#: ../../../../docs/common_information/report.rst:57 +#: ../../../../docs/common_information/report.rst:54 msgid "" "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``. Пути к файлам указывайте относительно папки задачи (для изображений/данных)." +msgstr "" +"Используйте следующий скелет для вашего ``report.md``. Пути к файлам " +"указывайте относительно папки задачи (для изображений/данных)." #~ msgid "Requirements for Criteria" #~ msgstr "Требования к критериям" @@ -297,3 +324,11 @@ msgstr "Используйте следующий скелет для вашег #~ msgid "Russian template (report.md)" #~ msgstr "" + +#~ msgid "" +#~ "Implementation Details per technology used " +#~ "(only those in your semester)" +#~ msgstr "" +#~ "Детали реализации по используемым технологиям" +#~ " (только требуемые в семестре)" + diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/api.po b/docs/locale/ru/LC_MESSAGES/user_guide/api.po index ce7c244c7..887f5b994 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:06+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -19,7 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/api.rst:2 msgid "API Reference" @@ -29,42 +29,10 @@ msgstr "Справочник API" msgid "Runners Module" msgstr "Модуль выполнения" -#: ../../../../docs/user_guide/api.rst -msgid "Functions" -msgstr "Функции" - -#: ../../../../docs/user_guide/api.rst -msgid "Parameters" -msgstr "Параметры" - -#: ../../../../docs/user_guide/api.rst -msgid "Returns" -msgstr "Возвращаемые значения" - #: ../../../../docs/user_guide/api.rst:14 msgid "Task Module" msgstr "Модуль задач" -#: ../../../../docs/user_guide/api.rst -msgid "Typedefs" -msgstr "Псевдонимы типов" - -#: ../../../../docs/user_guide/api.rst -msgid "Template Parameters" -msgstr "Параметры шаблона" - -#: ../../../../docs/user_guide/api.rst -msgid "Enums" -msgstr "Перечисления" - -#: ../../../../docs/user_guide/api.rst -msgid "Throws" -msgstr "Исключения" - -#: ../../../../docs/user_guide/api.rst -msgid "Variables" -msgstr "Переменные" - #: ../../../../docs/user_guide/api.rst:20 msgid "Utility Module" msgstr "Вспомогательный модуль (модуль с утилитами)" @@ -96,3 +64,4 @@ 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 62c0879c6..b487d34ac 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/build.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 14:15+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" @@ -57,13 +57,14 @@ msgstr "``-D USE_PERF_TESTS=ON`` включает тесты на произво #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=\"example\"``, " -"to limit the build." +"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build." +" Meta-layout tasks with ``threads`` and ``processes`` subtrees are built " +"as one selected task." msgstr "" "``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну " -"задачу или список через точку с запятой, например " -"``-D PPC_TASKS=\"example\"``, чтобы ограничить " -"сборку." +"задачу или список через точку с запятой, например ``-D PPC_TASKS=example``, " +"чтобы ограничить сборку. Задачи с meta-layout и поддеревьями ``threads`` и " +"``processes`` собираются как одна выбранная задача." #: ../../../../docs/user_guide/build.rst:32 msgid "" @@ -106,7 +107,9 @@ msgstr "**Запуск тестов**:" #: ../../../../docs/user_guide/build.rst:49 msgid "Prefer the helper runner described in ``User Guide → CI``." -msgstr "Рекомендуется использовать вспомогательный раннер, описанный в «Инструкция → CI»." +msgstr "" +"Рекомендуется использовать вспомогательный раннер, описанный в " +"«Инструкция → CI»." #~ msgid "Navigate to a source code folder." #~ msgstr "Перейдите в корень директории проекта" diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po index 359f65d04..5ea8f2b78 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 18:02+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" @@ -118,8 +118,10 @@ 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 блоки могут сворачиваться):" +msgid "" +"The pipeline is illustrated below. Image is auto-generated by " +"``scripts/jobs_graph.py``:" +msgstr "" #: ../../../../docs/user_guide/ci.rst:29 msgid "CI pipeline (pre-commit → OS builds/tests → perf → pages)" @@ -261,12 +263,12 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:89 msgid "" "Static analysis fails: address clang-tidy comments; do not use " -"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs " -"in their matching task backend directories." +"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread " +"APIs in their matching task backend directories." msgstr "" -"Падает статический анализ: поправьте замечания clang-tidy; не используйте " -"``NOLINT``/``IWYU pragma`` в коде задач; держите API OpenMP/TBB/MPI/" -"std::thread в соответствующих backend-директориях задач." +"Падает статический анализ: поправьте замечания clang-tidy; не используйте" +" ``NOLINT``/``IWYU pragma`` в коде задач; держите API " +"OpenMP/TBB/MPI/std::thread в соответствующих backend-директориях задач." #: ../../../../docs/user_guide/ci.rst:90 msgid "" @@ -332,15 +334,24 @@ msgid "" "clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to " "avoid mismatches. - The helper may be named ``clang-tidy-22`` or ``run-" "clang-tidy-22`` on some systems." -msgstr "Версия clang-tidy — в CI используется clang-tidy 22. Локально лучше использовать ту же версию, чтобы избежать расхождений. На некоторых системах помощник может называться ``clang-tidy-22`` или ``run-clang-tidy-22``." +msgstr "" +"Версия clang-tidy — в CI используется clang-tidy 22. Локально лучше " +"использовать ту же версию, чтобы избежать расхождений. На некоторых " +"системах помощник может называться ``clang-tidy-22`` или ``run-clang-" +"tidy-22``." #: ../../../../docs/user_guide/ci.rst:147 +#, fuzzy 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 " +"tidy-22``) 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-22``) или используйте Docker‑образ курса. gcovr: ``python3 -m pip install gcovr`` либо пакет дистрибутива. GCC: при сборке с GCC 14 используйте ``gcov-14`` (как в CI)." +msgstr "" +"Linux — clang-tidy: установите из репозитория дистрибутива (например, " +"``apt install clang-tidy-22``) или используйте Docker‑образ курса. gcovr:" +" ``python3 -m pip install gcovr`` либо пакет дистрибутива. GCC: при " +"сборке с GCC 14 используйте ``gcov-14`` (как в CI)." #: ../../../../docs/user_guide/ci.rst:152 msgid "" @@ -348,7 +359,11 @@ msgid "" "--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``." +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 "" @@ -356,7 +371,11 @@ msgid "" " 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." +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 " @@ -435,3 +454,10 @@ msgstr "Windows — clang-tidy: установите LLVM (Clang) или ``choco #~ "Это помогает отлаживать сбои в CI " #~ "или проверять точные аргументы, передаваемые" #~ " тестовым бинарникам." + +#~ msgid "" +#~ "The pipeline is illustrated below " +#~ "(blocks may be collapsed in GitHub " +#~ "UI):" +#~ msgstr "Схема конвейера приведена ниже (в UI GitHub блоки могут сворачиваться):" + 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 48de8bf71..5c25de372 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-24 15:07+0200\n" +"POT-Creation-Date: 2026-06-03 16:19+0200\n" "PO-Revision-Date: 2025-07-27 18:21+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -20,7 +20,7 @@ msgstr "" "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" +"Generated-By: Babel 2.18.0\n" #: ../../../../docs/user_guide/submit_work.rst:2 msgid "How to create, open, and submit your work" @@ -250,59 +250,90 @@ msgstr "" "функциональные/перф‑тесты ок, ветка названа как директория задачи, " "достоверность сведений)." -#: ../../../../docs/user_guide/submit_work.rst:160 +#: ../../../../docs/user_guide/submit_work.rst:158 msgid "PR checklist template (body)" msgstr "Шаблон PR (чек‑лист)" -#: ../../../../docs/user_guide/submit_work.rst:208 +#: ../../../../docs/user_guide/submit_work.rst:181 msgid "Common pitfalls (read before pushing)" msgstr "Частые ошибки (прочтите перед отправкой)" -#: ../../../../docs/user_guide/submit_work.rst:209 +#: ../../../../docs/user_guide/submit_work.rst:182 msgid "Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" "Неверное имя папки/ветки. Должно быть ``<фамилия>_<инициал>_<краткое>`` " "везде." -#: ../../../../docs/user_guide/submit_work.rst:210 +#: ../../../../docs/user_guide/submit_work.rst:183 msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." msgstr "Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." -#: ../../../../docs/user_guide/submit_work.rst:211 +#: ../../../../docs/user_guide/submit_work.rst:184 msgid "Tests rely on randomness or sleeps instead of env time limits." msgstr "" "Тесты зависят от случайности или задержек вместо лимитов по времени " "окружения." -#: ../../../../docs/user_guide/submit_work.rst:212 +#: ../../../../docs/user_guide/submit_work.rst:185 msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." msgstr "В ``settings.json`` не включена нужная технология — тесты не запустятся." -#: ../../../../docs/user_guide/submit_work.rst:213 +#: ../../../../docs/user_guide/submit_work.rst:186 msgid "Namespace doesn’t match the folder name and collides with others." msgstr "Namespace не соответствует имени папки и конфликтует с другими." -#: ../../../../docs/user_guide/submit_work.rst:214 +#: ../../../../docs/user_guide/submit_work.rst:187 msgid "Performance tests count or naming deviates from the required patterns." msgstr "Количество или именование перфтестов отклоняется от требуемых шаблонов." -#: ../../../../docs/user_guide/submit_work.rst:217 +#: ../../../../docs/user_guide/submit_work.rst:190 msgid "Useful examples to reference" msgstr "Полезные примеры для ориентирования" -#: ../../../../docs/user_guide/submit_work.rst:218 +#: ../../../../docs/user_guide/submit_work.rst:191 +msgid "Unified example: ``tasks/example``" +msgstr "Единый пример: ``tasks/example``" + +#: ../../../../docs/user_guide/submit_work.rst:192 +msgid "" +"Shared example files: ``tasks/example/settings.json``, " +"``tasks/example/info.json``, ``tasks/example/common``, " +"``tasks/example/data``" +msgstr "" +"Общие файлы примера: ``tasks/example/settings.json``, " +"``tasks/example/info.json``, ``tasks/example/common``, " +"``tasks/example/data``" + +#: ../../../../docs/user_guide/submit_work.rst:193 +#, python-brace-format +msgid "Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" +msgstr "Потоки: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" + +#: ../../../../docs/user_guide/submit_work.rst:194 msgid "" -"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" +"Processes: ``tasks/example/processes/t1``, " +"``tasks/example/processes/t2``, ``tasks/example/processes/t3``" msgstr "" -"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" +"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``," +" ``tasks/example/processes/t3``" -#: ../../../../docs/user_guide/submit_work.rst:219 -msgid "Threads: ``tasks/example/threads``" -msgstr "Потоки: ``tasks/example/threads``" +#: ../../../../docs/user_guide/submit_work.rst:195 +msgid "" +"Process tasks keep independent ``seq`` and ``mpi`` implementations under " +"each ``tN`` directory." +msgstr "" +"Задачи процессов хранят независимые реализации ``seq`` и ``mpi`` внутри " +"каждой директории ``tN``." + +#: ../../../../docs/user_guide/submit_work.rst:196 +msgid "" +"Example reports are tree-shaped: the root report links to section reports" +" and each implementation directory has its own ``report.md``." +msgstr "" +"Отчеты примера имеют древовидную структуру: корневой отчет ссылается на " +"отчеты секций, а каждая директория реализации содержит свой ``report.md``." -#: ../../../../docs/user_guide/submit_work.rst:221 +#: ../../../../docs/user_guide/submit_work.rst:198 msgid "" "Work from your fork in a dedicated branch (not ``master``). Branch name " "must match your task folder." @@ -310,11 +341,11 @@ msgstr "" "Работайте из своего форка в отдельной ветке (не ``master``). Имя ветки " "должно совпадать с именем папки задачи." -#: ../../../../docs/user_guide/submit_work.rst:224 +#: ../../../../docs/user_guide/submit_work.rst:201 msgid "Notes" msgstr "Примечания" -#: ../../../../docs/user_guide/submit_work.rst:225 +#: ../../../../docs/user_guide/submit_work.rst:202 msgid "" "All classes should live in a unique namespace (e.g., " "``__``)." @@ -322,7 +353,7 @@ msgstr "" "Все классы должны находиться в уникальном пространстве имён (например, " "``<фамилия>_<инициал>_<краткое>``)." -#: ../../../../docs/user_guide/submit_work.rst:226 +#: ../../../../docs/user_guide/submit_work.rst:203 msgid "" "Keep tests deterministic and within time limits; prefer env vars over " "sleeps." @@ -330,7 +361,7 @@ msgstr "" "Делайте тесты детерминированными и укладывающимися в лимиты времени; " "используйте переменные окружения вместо задержек." -#: ../../../../docs/user_guide/submit_work.rst:227 +#: ../../../../docs/user_guide/submit_work.rst:204 msgid "" "Follow code style (clang-format/clang-tidy), and run pre-commit hooks " "locally." diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index fe1103c8c..97c59d534 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -113,7 +113,7 @@ Tips for tests .. code-block:: json - { "student": { "last_name": "Фамилия", "first_name": "Имя", "middle_name": "Отчество", "group_number": "Группа" } } + { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа" } } Build and local run ------------------- diff --git a/modules/task/include/task.hpp b/modules/task/include/task.hpp index 71477fc2e..4ad826073 100644 --- a/modules/task/include/task.hpp +++ b/modules/task/include/task.hpp @@ -78,8 +78,9 @@ inline std::string GetStringTaskStatus(StatusOfTask status_of_task) { /// @brief Returns a string representation of the task type based on the JSON settings file. /// @param type_of_task Type of the task. /// @param settings_file_path Path to the JSON file containing task type strings. +/// @param settings_task_path Optional dot-separated nested path inside the `tasks` object. /// @return Formatted string combining the task type and its corresponding value from the file. -/// @throws std::runtime_error If the file cannot be opened. +/// @throws std::runtime_error If the file cannot be opened or the requested settings key is missing. inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string &settings_file_path, std::string_view settings_task_path = {}) { std::ifstream file(settings_file_path); @@ -95,18 +96,36 @@ inline std::string GetStringTaskType(TypeOfTask type_of_task, const std::string return std::string(type_str); } - const auto *settings_node = &list_settings->at("tasks"); + auto get_required_node = [&settings_file_path](const nlohmann::json &node, const std::string &key, + const std::string &settings_key_path) -> const nlohmann::json & { + if (!node.is_object() || !node.contains(key)) { + throw std::runtime_error("Missing settings key '" + settings_key_path + "' in " + settings_file_path); + } + return *node.find(key); + }; + + std::string settings_key_path = "tasks"; + const auto *settings_node = &get_required_node(*list_settings, "tasks", settings_key_path); for (size_t start = 0; start < settings_task_path.size();) { const size_t separator = settings_task_path.find('.', start); const size_t key_size = separator == std::string_view::npos ? settings_task_path.size() - start : separator - start; - settings_node = &settings_node->at(std::string(settings_task_path.substr(start, key_size))); + if (key_size == 0) { + throw std::runtime_error("Empty settings key in '" + std::string(settings_task_path) + "' from " + + settings_file_path); + } + const std::string key(settings_task_path.substr(start, key_size)); + settings_key_path += "." + key; + settings_node = &get_required_node(*settings_node, key, settings_key_path); if (separator == std::string_view::npos) { break; } start = separator + 1; } - return std::string(type_str) + "_" + std::string(settings_node->at(std::string(type_str))); + const std::string type_key(type_str); + settings_key_path += "." + type_key; + const auto &type_node = get_required_node(*settings_node, type_key, settings_key_path); + return type_key + "_" + type_node.get(); } enum class StateOfTesting : uint8_t { diff --git a/modules/task/tests/task_tests.cpp b/modules/task/tests/task_tests.cpp index 07ee633f8..6685f200c 100644 --- a/modules/task/tests/task_tests.cpp +++ b/modules/task/tests/task_tests.cpp @@ -221,6 +221,20 @@ TEST(TaskTest, GetStringTaskTypeReadsNestedTaskPath) { EXPECT_EQ(GetStringTaskType(TypeOfTask::kSEQ, path, "processes.t2"), "seq_enabled"); } +TEST(TaskTest, GetStringTaskTypeReportsMissingNestedTaskPath) { + std::string path = "settings_missing_nested.json"; + ScopedFile cleaner(path); + std::ofstream file(path); + file << R"({"tasks": {"processes": {"t1": {"mpi": "enabled"}}}})"; + file.close(); + + EXPECT_THROW(try { GetStringTaskType(TypeOfTask::kMPI, path, "processes.t2"); } catch (const std::runtime_error &e) { + EXPECT_NE(std::string(e.what()).find("tasks.processes.t2"), std::string::npos); + throw; + }, + std::runtime_error); +} + TEST(TaskTest, GetStringTaskTypeReturnsUnknownOnDefault) { std::string path = "settings_valid_unknown.json"; ScopedFile cleaner(path); diff --git a/modules/util/include/perf_test_util.hpp b/modules/util/include/perf_test_util.hpp index 535652cba..13c4e3f81 100644 --- a/modules/util/include/perf_test_util.hpp +++ b/modules/util/include/perf_test_util.hpp @@ -77,6 +77,7 @@ class BaseRunPerfTests : public ::testing::TestWithParam Date: Wed, 3 Jun 2026 16:50:46 +0200 Subject: [PATCH 07/12] Use split student fields in docs example --- docs/user_guide/submit_work.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index 97c59d534..d656c49ae 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -113,7 +113,7 @@ Tips for tests .. code-block:: json - { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа" } } + { "student": { "last_name": "last_name", "first_name": "first_name", "middle_name": "middle_name", "group_number": "group_number" } } Build and local run ------------------- From 76af06e57cc9bdf1df9273e1f34fc24c9a893a30 Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 17:00:44 +0200 Subject: [PATCH 08/12] Use full_name in example metadata --- docs/user_guide/submit_work.rst | 2 +- tasks/example/info.json | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index d656c49ae..97c59d534 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -113,7 +113,7 @@ Tips for tests .. code-block:: json - { "student": { "last_name": "last_name", "first_name": "first_name", "middle_name": "middle_name", "group_number": "group_number" } } + { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа" } } Build and local run ------------------- diff --git a/tasks/example/info.json b/tasks/example/info.json index 116dbeb04..76db715f9 100644 --- a/tasks/example/info.json +++ b/tasks/example/info.json @@ -1,8 +1,6 @@ { "student": { - "first_name": "first_name", - "group_number": "group_number", - "last_name": "last_name", - "middle_name": "middle_name" + "full_name": "full_name", + "group_number": "group_number" } } From 7c0d5dbc39251390af2ef07b8b602c7db4f5e5f9 Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 17:01:48 +0200 Subject: [PATCH 09/12] Read student full_name directly --- scoreboard/main.py | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/scoreboard/main.py b/scoreboard/main.py index 579ce0304..a9f8b50d5 100644 --- a/scoreboard/main.py +++ b/scoreboard/main.py @@ -102,18 +102,7 @@ def _student_info_for_dir(dir_name: str) -> dict: def _student_full_name(student: dict) -> str: - full_name = str(student.get("full_name", "")).strip() - if full_name: - return full_name - return " ".join( - part - for part in [ - str(student.get("last_name", "")).strip(), - str(student.get("first_name", "")).strip(), - str(student.get("middle_name", "")).strip(), - ] - if part - ) + return str(student.get("full_name", "")).strip() def _task_physical_dir(dir_name: str) -> Path: From 356e6bb8c9243f97c3c52c958eb32d715e976dbd Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 17:18:47 +0200 Subject: [PATCH 10/12] Clean regenerated translation catalogs --- .../common_information/introduction.po | 130 +------ .../LC_MESSAGES/common_information/points.po | 99 +----- .../LC_MESSAGES/common_information/report.po | 171 +--------- docs/locale/en/LC_MESSAGES/index.po | 7 +- docs/locale/en/LC_MESSAGES/user_guide/api.po | 54 +-- .../locale/en/LC_MESSAGES/user_guide/build.po | 27 +- docs/locale/en/LC_MESSAGES/user_guide/ci.po | 230 +++---------- .../user_guide/environment_variables.po | 24 +- .../en/LC_MESSAGES/user_guide/submit_work.po | 240 +++---------- .../common_information/introduction.po | 190 ++--------- .../LC_MESSAGES/common_information/points.po | 111 +----- .../LC_MESSAGES/common_information/report.po | 200 ++--------- docs/locale/ru/LC_MESSAGES/index.po | 6 +- docs/locale/ru/LC_MESSAGES/user_guide/api.po | 59 ++-- .../locale/ru/LC_MESSAGES/user_guide/build.po | 33 +- docs/locale/ru/LC_MESSAGES/user_guide/ci.po | 322 ++++++------------ .../ru/LC_MESSAGES/user_guide/submit_work.po | 316 +++++------------ 17 files changed, 483 insertions(+), 1736 deletions(-) diff --git a/docs/locale/en/LC_MESSAGES/common_information/introduction.po b/docs/locale/en/LC_MESSAGES/common_information/introduction.po index 0128970f1..01e869ac4 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/en/LC_MESSAGES/common_information/introduction.po @@ -79,7 +79,8 @@ msgid "" msgstr "" #: ../../../../docs/common_information/introduction.rst:19 -msgid "Each repository includes an example of a properly formatted PULL REQUEST." +msgid "" +"Each repository includes an example of a properly formatted PULL REQUEST." msgstr "" #: ../../../../docs/common_information/introduction.rst:20 @@ -89,12 +90,12 @@ msgstr "" #: ../../../../docs/common_information/introduction.rst:21 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" -" 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``" +"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``" msgstr "" #: ../../../../docs/common_information/introduction.rst:28 @@ -123,114 +124,7 @@ msgstr "" #: ../../../../docs/common_information/introduction.rst:36 msgid "" -"\\* *All instructions, repositories, and tables may be updated during the" -" learning process for better usability. Be prepared for changes and check" -" updates periodically.*" -msgstr "" - -#~ msgid "" -#~ "An example for each technology can " -#~ "be found in the corresponding directory:" -#~ " ``tasks//example``." -#~ msgstr "" - -#~ msgid "" -#~ "In each repository, the README.md " -#~ "contains a link to the course " -#~ "documentation (**read it fully!!!**)." -#~ msgstr "" - -#~ msgid "" -#~ "Additionally, each repository includes an " -#~ "example of a properly formatted PULL " -#~ "REQUEST." -#~ msgstr "" - -#~ msgid "All resources for using the repository will be provided here:" -#~ msgstr "" - -#~ msgid "" -#~ "`Git for half an hour: A " -#~ "Beginner’s Guide `__" -#~ msgstr "" - -#~ msgid "" -#~ "`Getting Started with Git and GitHub:" -#~ " A Beginner’s Guide `__" -#~ msgstr "" - -#~ msgid "" -#~ "`Git: A Quick Start Guide to Using" -#~ " Core Operations with Explanations " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "`Conflicts resolving in Git " -#~ "`__" -#~ msgstr "" - -#~ msgid "`Google testing framework (gtest) `__" -#~ msgstr "" - -#~ msgid "" -#~ "`GoogleTest Primer " -#~ "`__" -#~ msgstr "" - -#~ msgid "`GitHub Actions documentation `__" -#~ msgstr "" - -#~ msgid "" -#~ "`Parallel Programming Technologies. Message " -#~ "Passing Interface (MPI) " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "`Typing and Layout in the System " -#~ "LaTeX `__" -#~ msgstr "" - -#~ msgid "" -#~ "`LaTeX for the beginners " -#~ "`__" -#~ msgstr "" - -#~ msgid "`What is OpenMP? `__" -#~ msgstr "" - -#~ msgid "" -#~ "`TBB-1 " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "`Writing Multithreaded Applications in C++ " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "`Multithreading: New Features of the " -#~ "C++11 Standard " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "`Introduction to Parallel Computing " -#~ "`__" -#~ msgstr "" - -#~ msgid "" -#~ "\\* *All instructions, repositories, and " -#~ "tables may be updated during the " -#~ "learning process for better usability. " -#~ "Be prepared for changes, check and " -#~ "update them periodically!!!*" -#~ msgstr "" - +"\\* *All instructions, repositories, and tables may be updated during the " +"learning process for better usability. Be prepared for changes and check " +"updates periodically.*" +msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/common_information/points.po b/docs/locale/en/LC_MESSAGES/common_information/points.po index c2f684160..0656de018 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/points.po +++ b/docs/locale/en/LC_MESSAGES/common_information/points.po @@ -94,8 +94,8 @@ msgstr "" #: ../../../../docs/common_information/points.rst:41 msgid "" -"Legend: S — Solution (implementation), A — Acceleration (performance), R " -"— Report" +"Legend: S — Solution (implementation), A — Acceleration (performance), R — " +"Report" msgstr "" #: ../../../../docs/common_information/points.rst:44 @@ -104,8 +104,7 @@ msgstr "" #: ../../../../docs/common_information/points.rst:46 msgid "" -"The ratio of efficiency percentage to points percentage (max 100%, min " -"0%):" +"The ratio of efficiency percentage to points percentage (max 100%, min 0%):" msgstr "" #: ../../../../docs/common_information/points.rst:48 @@ -372,94 +371,6 @@ msgstr "" #: ../../../../docs/common_information/points.rst:123 msgid "" -"One week before the end of the semester, the repository is closed for " -"final assessment." +"One week before the end of the semester, the repository is closed for final " +"assessment." msgstr "" - -#~ msgid "For “process parallelism” semester" -#~ msgstr "" - -#~ msgid "1st MPI task" -#~ msgstr "" - -#~ msgid "Performance" -#~ msgstr "" - -#~ msgid "0" -#~ msgstr "" - -#~ msgid "MPI" -#~ msgstr "" - -#~ msgid "8" -#~ msgstr "" - -#~ msgid "Seq" -#~ msgstr "" - -#~ msgid "12" -#~ msgstr "" - -#~ msgid "Task" -#~ msgstr "" - -#~ msgid "2nd MPI task" -#~ msgstr "" - -#~ msgid "23" -#~ msgstr "" - -#~ msgid "3rd MPI task" -#~ msgstr "" - -#~ msgid "16" -#~ msgstr "" - -#~ msgid "35" -#~ msgstr "" - -#~ msgid "For “thread parallelism” semester" -#~ msgstr "" - -#~ msgid "OpenMP" -#~ msgstr "" - -#~ msgid "S" -#~ msgstr "" - -#~ msgid "A" -#~ msgstr "" - -#~ msgid "R" -#~ msgstr "" - -#~ msgid "6" -#~ msgstr "" - -#~ msgid "1" -#~ msgstr "" - -#~ msgid "11" -#~ msgstr "" - -#~ msgid "TBB" -#~ msgstr "" - -#~ msgid "C++ STL" -#~ msgstr "" - -#~ msgid "All" -#~ msgstr "" - -#~ msgid "21" -#~ msgstr "" - -#~ msgid "Grading" -#~ msgstr "" - -#~ msgid "5-point (4-grade) scale" -#~ msgstr "" - -#~ msgid "Exam" -#~ msgstr "" - diff --git a/docs/locale/en/LC_MESSAGES/common_information/report.po b/docs/locale/en/LC_MESSAGES/common_information/report.po index b57fb2913..8dad3a2b9 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/report.po +++ b/docs/locale/en/LC_MESSAGES/common_information/report.po @@ -32,14 +32,14 @@ msgstr "" #: ../../../../docs/common_information/report.rst:6 msgid "" -"The report is a Markdown file placed inside your task directory: " -"``tasks/__/report.md``." +"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``)." +"Presence of ``report.md`` is required to receive report (R) points for that " +"task (see ``Points``)." msgstr "" #: ../../../../docs/common_information/report.rst:9 @@ -103,9 +103,9 @@ msgstr "" #: ../../../../docs/common_information/report.rst:26 msgid "" -"Experimental Results - Environment (CPU, OS, compiler, build type; " -"thread/process counts) - Execution time tables/plots; performance metrics" -" (speedup/efficiency) - Correctness checks description" +"Experimental Results - Environment (CPU, OS, compiler, build type; thread/" +"process counts) - Execution time tables/plots; performance metrics (speedup/" +"efficiency) - Correctness checks description" msgstr "" #: ../../../../docs/common_information/report.rst:30 @@ -132,15 +132,14 @@ msgstr "" #: ../../../../docs/common_information/report.rst:39 msgid "" -"Text Quality - Clarity, coherence, correct terminology; acceptable " -"language quality" +"Text Quality - Clarity, coherence, correct terminology; acceptable language " +"quality" msgstr "" #: ../../../../docs/common_information/report.rst:41 msgid "" -"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" -" blocks - Figures/plots with captions and relative paths; readable " -"formatting" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code " +"blocks - Figures/plots with captions and relative paths; readable formatting" msgstr "" #: ../../../../docs/common_information/report.rst:46 @@ -149,14 +148,14 @@ msgstr "" #: ../../../../docs/common_information/report.rst:47 msgid "" -"Reports are reviewed online in the Pull Request. The final grade is based" -" on the submitted version that passes the review." +"Reports are reviewed online in the Pull Request. The final grade is based on " +"the submitted version that passes the review." msgstr "" #: ../../../../docs/common_information/report.rst:48 msgid "" -"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." +"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." msgstr "" #: ../../../../docs/common_information/report.rst:49 @@ -171,142 +170,6 @@ msgstr "" #: ../../../../docs/common_information/report.rst:54 msgid "" -"Use the following skeleton as a starting point for your ``report.md``. " -"Keep file paths relative to the task directory (for images/data)." +"Use the following skeleton as a starting point for your ``report.md``. Keep " +"file paths relative to the task directory (for images/data)." msgstr "" - -#~ msgid "Requirements for Criteria" -#~ msgstr "" - -#~ msgid "Introduction (can be a short paragraph)" -#~ msgstr "" - -#~ msgid "Problem Statement (descriptive)" -#~ msgstr "" - -#~ msgid "Algorithm Description" -#~ 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 "" - -#~ msgid "" -#~ "Write the report in a concise, " -#~ "reproducible manner. Use English or " -#~ "Russian consistently." -#~ msgstr "" - -#~ msgid "" -#~ "Implementation Details per technology used " -#~ "(only those in your semester)" -#~ msgstr "" - -#~ msgid "Conclusions (what worked, what didn’t, further work)" -#~ msgstr "" - -#~ msgid "Appendix (optional code snippets; keep readable)" -#~ msgstr "" - -#~ 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 "" - diff --git a/docs/locale/en/LC_MESSAGES/index.po b/docs/locale/en/LC_MESSAGES/index.po index c62b1aaab..eb1ff1922 100644 --- a/docs/locale/en/LC_MESSAGES/index.po +++ b/docs/locale/en/LC_MESSAGES/index.po @@ -13,7 +13,8 @@ msgstr "" "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" @@ -37,7 +38,3 @@ msgid "" "Below is the table of contents for the Parallel Programming Course " "documentation. Follow the links to learn more about each topic." msgstr "" - -#~ msgid "Common Information:" -#~ msgstr "" - diff --git a/docs/locale/en/LC_MESSAGES/user_guide/api.po b/docs/locale/en/LC_MESSAGES/user_guide/api.po index 4c6637226..76ba07ab0 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\n" +"POT-Creation-Date: 2026-06-03 17:17+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: en\n" @@ -28,39 +28,47 @@ msgstr "" msgid "Runners Module" msgstr "" -#: ../../../../docs/user_guide/api.rst:14 -msgid "Task Module" +#: ../../../../docs/user_guide/api.rst +msgid "Functions" msgstr "" -#: ../../../../docs/user_guide/api.rst:20 -msgid "Utility Module" +#: ../../../../docs/user_guide/api.rst +msgid "Parameters" msgstr "" -#: ../../../../docs/user_guide/api.rst:26 -msgid "Performance Module" +#: ../../../../docs/user_guide/api.rst +msgid "Returns" msgstr "" -#~ msgid "Functions" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst:14 +msgid "Task Module" +msgstr "" -#~ msgid "Parameters" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst +msgid "Typedefs" +msgstr "" -#~ msgid "Returns" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst +msgid "Template Parameters" +msgstr "" -#~ msgid "Typedefs" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst +msgid "Enums" +msgstr "" -#~ msgid "Template Parameters" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst +msgid "Throws" +msgstr "" -#~ msgid "Enums" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst +msgid "Variables" +msgstr "" -#~ msgid "Throws" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst:20 +msgid "Utility Module" +msgstr "" -#~ msgid "Variables" -#~ msgstr "" +#: ../../../../docs/user_guide/api.rst:26 +msgid "Performance Module" +msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/user_guide/build.po b/docs/locale/en/LC_MESSAGES/user_guide/build.po index 8e79f1690..19cfff664 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/build.po @@ -57,9 +57,9 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build." -" Meta-layout tasks with ``threads`` and ``processes`` subtrees are built " -"as one selected task." +"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build. " +"Meta-layout tasks with ``threads`` and ``processes`` subtrees are built as " +"one selected task." msgstr "" #: ../../../../docs/user_guide/build.rst:32 @@ -74,8 +74,8 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:35 msgid "" -"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " -"or running ``valgrind`` to keep debug information." +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or " +"running ``valgrind`` to keep debug information." msgstr "" #: ../../../../docs/user_guide/build.rst:37 @@ -97,20 +97,3 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:49 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 "" - -#~ msgid "" -#~ "``-D PPC_TASKS=all`` builds every task " -#~ "(default). Pass one task or a " -#~ "semicolon list, for example ``-D " -#~ "PPC_TASKS=\"example\"``, to limit the build." -#~ msgstr "" - diff --git a/docs/locale/en/LC_MESSAGES/user_guide/ci.po b/docs/locale/en/LC_MESSAGES/user_guide/ci.po index 383f60dde..a7df639af 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/ci.po @@ -32,11 +32,10 @@ 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)." +"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 @@ -53,27 +52,27 @@ msgstr "" 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``)." +"``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." +"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)." +"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)." +"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 @@ -84,8 +83,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:23 msgid "" -"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU" -" pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " +"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " +"pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " "OpenSSF Scorecard." msgstr "" @@ -95,8 +94,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:27 msgid "" -"The pipeline is illustrated below. Image is auto-generated by " -"``scripts/jobs_graph.py``:" +"The pipeline is illustrated below. Image is auto-generated by ``scripts/" +"jobs_graph.py``:" msgstr "" #: ../../../../docs/user_guide/ci.rst:29 @@ -133,8 +132,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:45 msgid "" -"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " -"(default ``0``)." +"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (default " +"``0``)." msgstr "" #: ../../../../docs/user_guide/ci.rst:47 @@ -148,9 +147,8 @@ 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)" +"(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 @@ -160,9 +158,8 @@ 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." +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags (e.g., " +"``--oversubscribe``). - ``--verbose`` prints every executed command." msgstr "" #: ../../../../docs/user_guide/ci.rst:77 @@ -171,15 +168,14 @@ 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``." +"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)." +"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 @@ -188,15 +184,14 @@ 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``." +"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." +"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 @@ -211,9 +206,9 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:89 msgid "" -"Static analysis fails: address clang-tidy comments; do not use " -"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread " -"APIs in their matching task backend directories." +"Static analysis fails: address clang-tidy comments; do not use ``NOLINT``/" +"``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs in their " +"matching task backend directories." msgstr "" #: ../../../../docs/user_guide/ci.rst:90 @@ -225,8 +220,8 @@ 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." +"(:doc:`environment_variables`) like ``PPC_TASK_MAX_TIME``/" +"``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." msgstr "" #: ../../../../docs/user_guide/ci.rst:92 @@ -237,8 +232,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " -"Sphinx targets." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before Sphinx " +"targets." msgstr "" #: ../../../../docs/user_guide/ci.rst:94 @@ -265,151 +260,30 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:143 msgid "" -"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to " -"avoid mismatches. - The helper may be named ``clang-tidy-22`` or ``run-" -"clang-tidy-22`` on some systems." +"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to avoid " +"mismatches. - The helper may be named ``clang-tidy-22`` or ``run-clang-" +"tidy-22`` on some systems." msgstr "" #: ../../../../docs/user_guide/ci.rst:147 msgid "" "Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" -"tidy-22``) 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)." +"tidy-22``) 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``." +"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 "" #: ../../../../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 "" - -#~ msgid "" -#~ "Security and static analysis — " -#~ "clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " -#~ "pragma``), scheduled CodeQL (C++/Python) and" -#~ " OpenSSF Scorecard." -#~ msgstr "" - -#~ msgid "" -#~ "The pipeline is illustrated below " -#~ "(blocks may be collapsed in GitHub " -#~ "UI):" -#~ msgstr "" - -#~ msgid "" -#~ "Static analysis (clang-tidy) fails: " -#~ "address comments; do not use " -#~ "``NOLINT``/``IWYU pragma`` in task code." -#~ msgstr "" - -#~ 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 "" - +"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 "" 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 6e4c9a00e..c203762a3 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po @@ -28,8 +28,8 @@ msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:4 msgid "" -"The following environment variables can be used to configure the " -"project's runtime behavior:" +"The following environment variables can be used to configure the project's " +"runtime behavior:" msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:6 @@ -40,22 +40,20 @@ msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:10 msgid "" -"``PPC_NUM_THREADS``: Specifies the number of threads to use. Default: " -"``1``" +"``PPC_NUM_THREADS``: Specifies the number of threads to use. Default: ``1``" msgstr "" #: ../../../../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``" +"``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: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``" +"``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 @@ -69,9 +67,3 @@ 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 fba9d8b4a..8ec311b7c 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po @@ -38,7 +38,8 @@ msgid "Repository and branch" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:8 -msgid "Fork the semester repository for your group (processes/threads, program)." +msgid "" +"Fork the semester repository for your group (processes/threads, program)." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:9 @@ -61,8 +62,7 @@ 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." +"If you work from a fork, clone your fork and set the course repo as upstream." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:19 @@ -82,15 +82,14 @@ 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)" +"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 "" -"Each implementation defines a class derived from ``BaseTask`` and " -"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"Each implementation defines a class derived from ``BaseTask`` and overrides " +"``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " "``PostProcessingImpl``. Also add:" msgstr "" @@ -100,10 +99,10 @@ msgstr "" #: ../../../../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``." +"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 @@ -111,7 +110,8 @@ msgid "Functional tests example:" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:90 -msgid "Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." +msgid "" +"Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:92 @@ -124,8 +124,8 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"Keep tests deterministic and under time limits; prefer env vars (see " -"``User Guide → Environment Variables``) over sleeps." +"Keep tests deterministic and under time limits; prefer env vars (see ``User " +"Guide → Environment Variables``) over sleeps." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:102 @@ -143,11 +143,13 @@ 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.:" +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):" +msgid "" +"``info.json`` — student metadata used in automation (scoreboard, macros):" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:119 @@ -169,15 +171,14 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:139 msgid "" "``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" +"tests first - ``ppc_func_tests`` — functional tests for all tasks/" +"technologies - ``ppc_perf_tests`` — performance tests for all tasks/" +"technologies" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"The runner applies gtest filters automatically to select technology " -"suites." +"The runner applies gtest filters automatically to select technology suites." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:147 @@ -190,17 +191,15 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " -".``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:152 msgid "" "Description should include: - Полное описание задачи; номер варианта; " -"используемая технология - Краткое описание реализации и отчёта - Чек-лист" -" (CI зелёный в форке, clang-format/clang-tidy пройдены, " -"функциональные/перф тесты ок, ветка названа как директория задачи, " -"достоверность сведений)." +"используемая технология - Краткое описание реализации и отчёта - Чек-лист " +"(CI зелёный в форке, clang-format/clang-tidy пройдены, функциональные/перф " +"тесты ок, ветка названа как директория задачи, достоверность сведений)." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:158 @@ -212,7 +211,8 @@ msgid "Common pitfalls (read before pushing)" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:182 -msgid "Wrong folder/branch name. Must be ``__`` everywhere." +msgid "" +"Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:183 @@ -224,7 +224,8 @@ msgid "Tests rely on randomness or sleeps instead of env time limits." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:185 -msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." +msgid "" +"``settings.json`` doesn’t enable a required technology — tests won’t run." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:186 @@ -245,9 +246,8 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:192 msgid "" -"Shared example files: ``tasks/example/settings.json``, " -"``tasks/example/info.json``, ``tasks/example/common``, " -"``tasks/example/data``" +"Shared example files: ``tasks/example/settings.json``, ``tasks/example/" +"info.json``, ``tasks/example/common``, ``tasks/example/data``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:193 @@ -257,8 +257,8 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:194 msgid "" -"Processes: ``tasks/example/processes/t1``, " -"``tasks/example/processes/t2``, ``tasks/example/processes/t3``" +"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:195 @@ -269,14 +269,14 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:196 msgid "" -"Example reports are tree-shaped: the root report links to section reports" -" and each implementation directory has its own ``report.md``." +"Example reports are tree-shaped: the root report links to section reports " +"and each implementation directory has its own ``report.md``." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:198 msgid "" -"Work from your fork in a dedicated branch (not ``master``). Branch name " -"must match your task folder." +"Work from your fork in a dedicated branch (not ``master``). Branch name must " +"match your task folder." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:201 @@ -291,8 +291,7 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:203 msgid "" -"Keep tests deterministic and within time limits; prefer env vars over " -"sleeps." +"Keep tests deterministic and within time limits; prefer env vars over sleeps." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:204 @@ -300,162 +299,3 @@ 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 "" - -#~ msgid "Threads: ``tasks/example/threads``" -#~ msgstr "" - diff --git a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po index 43026293d..66f3d3c9b 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po @@ -52,7 +52,8 @@ msgstr "Используются различные виды тестирова #: ../../../../docs/common_information/introduction.rst:14 msgid "Task distribution is random for each student." -msgstr "Распределение задач производится случайным образом для каждого человека" +msgstr "" +"Распределение задач производится случайным образом для каждого человека" #: ../../../../docs/common_information/introduction.rst:15 msgid "" @@ -83,13 +84,15 @@ msgid "" "In each repository, the README.md contains a link to the course " "documentation." msgstr "" -"В каждом из репозиториев в README.md находится документация курса " -"(просьба читать полностью!!!)" +"В каждом из репозиториев в README.md находится документация курса (просьба " +"читать полностью!!!)" #: ../../../../docs/common_information/introduction.rst:19 #, fuzzy -msgid "Each repository includes an example of a properly formatted PULL REQUEST." -msgstr "Также в каждом репозитории представлен пример оформления PULL REQUEST'а" +msgid "" +"Each repository includes an example of a properly formatted PULL REQUEST." +msgstr "" +"Также в каждом репозитории представлен пример оформления PULL REQUEST'а" #: ../../../../docs/common_information/introduction.rst:20 msgid "Submission of all tasks is mandatory to pass the course." @@ -98,20 +101,20 @@ msgstr "Все задачи обязательны к выполнению" #: ../../../../docs/common_information/introduction.rst:21 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" -" 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``" +"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``" msgstr "" "Задача, которая оказывается в мастер-ветке, продолжает проверяться. Если " -"задача упала (падение теста) в мастере, она отключается, и запись об этом" -" добавляется в таблицу результатов. Все отключенные (не исправленные) " -"задания в конце семестра приведут к обнулению баллов за их выполнение. " -"Можно увидеть, что ваша задача является отключенной, по следующему " -"признаку: имя директории вашей задачи будет изменено с " -"``seq/nesterov_a_vector_sum`` на ``seq/nesterov_a_vector_sum_disabled``" +"задача упала (падение теста) в мастере, она отключается, и запись об этом " +"добавляется в таблицу результатов. Все отключенные (не исправленные) задания " +"в конце семестра приведут к обнулению баллов за их выполнение. Можно " +"увидеть, что ваша задача является отключенной, по следующему признаку: имя " +"директории вашей задачи будет изменено с ``seq/nesterov_a_vector_sum`` на " +"``seq/nesterov_a_vector_sum_disabled``" #: ../../../../docs/common_information/introduction.rst:28 msgid "Communication" @@ -140,157 +143,10 @@ msgstr "Email — некритичные вопросы" #: ../../../../docs/common_information/introduction.rst:36 #, fuzzy msgid "" -"\\* *All instructions, repositories, and tables may be updated during the" -" learning process for better usability. Be prepared for changes and check" -" updates periodically.*" +"\\* *All instructions, repositories, and tables may be updated during the " +"learning process for better usability. Be prepared for changes and check " +"updates periodically.*" msgstr "" "\\* *Все инструкции, репозитории и таблицы могут быть изменены в ходе " "учебного процесса для более удобного использования, будьте готовы к " "изменениям и периодически проверяйте это!!!!!!*" - -#~ msgid "" -#~ "An example for each technology can " -#~ "be found in the corresponding directory:" -#~ " ``tasks//example``." -#~ msgstr "" -#~ "Пример для каждой технологии находится в" -#~ " директории: ``tasks//example``." - -#~ msgid "Contacts" -#~ msgstr "Контакты" - -#~ msgid "Alexander Nesterov — nesterov.alexander@outlook.com" -#~ msgstr "Александр Нестеров — nesterov.alexander@outlook.com" - -#~ msgid "Arseniy Obolenskiy — me@gooddoog.ru" -#~ msgstr "Арсений Оболенский — me@gooddoog.ru" - -#~ msgid "Next steps" -#~ msgstr "Следующие шаги" - -#~ msgid "" -#~ "Practice 1 (intro): task distribution, " -#~ "brief talk on parallelism, MPI examples" -#~ msgstr "" -#~ "Практика 1 (вводная): раздача вариантов, " -#~ "кратко о параллелизме, примеры MPI" - -#~ msgid "" -#~ "Practice 2 (repo usage): repository " -#~ "checks and project structure walkthrough" -#~ msgstr "Практика 2 (работа с репозиторием): проверки, обзор структуры проекта" - -#~ msgid "All resources for using the repository will be provided here:" -#~ msgstr "Все материалы по использованию репозитория будут представлены здесь:" - -#~ msgid "" -#~ "`Git for half an hour: A " -#~ "Beginner’s Guide `__" -#~ msgstr "" -#~ "`Git за полчаса: руководство для " -#~ "начинающих `__" - -#~ msgid "" -#~ "`Getting Started with Git and GitHub:" -#~ " A Beginner’s Guide `__" -#~ msgstr "" -#~ "`Знакомство с Git и GitHub: руководство" -#~ " для начинающих `__" - -#~ msgid "" -#~ "`Git: A Quick Start Guide to Using" -#~ " Core Operations with Explanations " -#~ "`__" -#~ msgstr "" -#~ "`Git. Быстрый старт по использованию " -#~ "основных операций с объяснениями " -#~ "`__" - -#~ msgid "" -#~ "`Conflicts resolving in Git " -#~ "`__" -#~ msgstr "" -#~ "`Разрешение конфликтов в Git " -#~ "`__" - -#~ msgid "`Google testing framework (gtest) `__" -#~ msgstr "" -#~ "`Фреймворк модульного тестирования Google " -#~ "(gtest) `__" - -#~ msgid "" -#~ "`GoogleTest Primer " -#~ "`__" -#~ msgstr "" -#~ "`Введение в GoogleTest " -#~ "`__" - -#~ msgid "`GitHub Actions documentation `__" -#~ msgstr "`GitHub Actions документация `__" - -#~ msgid "" -#~ "`Parallel Programming Technologies. Message " -#~ "Passing Interface (MPI) " -#~ "`__" -#~ msgstr "" -#~ "`Технологии параллельного программирования. Message" -#~ " Passing Interface (MPI) " -#~ "`__" - -#~ msgid "" -#~ "`Typing and Layout in the System " -#~ "LaTeX `__" -#~ msgstr "" -#~ "`Набор и вёрстка в системе LaTeX " -#~ "`__" - -#~ msgid "" -#~ "`LaTeX for the beginners " -#~ "`__" -#~ msgstr "" -#~ "`LaTeX для начинающих " -#~ "`__" - -#~ msgid "`What is OpenMP? `__" -#~ msgstr "`Что такое OpenMP? `__" - -#~ msgid "" -#~ "`TBB-1 " -#~ "`__" -#~ msgstr "" -#~ "`Средства разработки параллельных программ для" -#~ " систем с общей памятью. Библиотека " -#~ "Intel Threading Building Blocks " -#~ "`__" - -#~ msgid "" -#~ "`Writing Multithreaded Applications in C++ " -#~ "`__" -#~ msgstr "" -#~ "`Написание многопоточных приложений на C++ " -#~ "`__" - -#~ msgid "" -#~ "`Multithreading: New Features of the " -#~ "C++11 Standard " -#~ "`__" -#~ msgstr "" -#~ "`Многопоточность, новые возможности стандарта " -#~ "C++11 " -#~ "`__" - -#~ msgid "" -#~ "`Introduction to Parallel Computing " -#~ "`__" -#~ msgstr "" -#~ "`Введение в параллельные вычисления " -#~ "`__" diff --git a/docs/locale/ru/LC_MESSAGES/common_information/points.po b/docs/locale/ru/LC_MESSAGES/common_information/points.po index 03e5e24ba..c944481ac 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/points.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/points.po @@ -47,24 +47,24 @@ msgid "" "Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " "Report: 2" msgstr "" -"Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 " -"— Отчёт: 2" +"Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 — " +"Отчёт: 2" #: ../../../../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" +"Задача 2 — Итого: 23 — Реализация: MPI 12 + Seq 3 — Производительность: 5 — " +"Отчёт: 3" #: ../../../../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" +"Задача 3 — Итого: 35 — Реализация: MPI 16 + Seq 4 — Производительность: 10 — " +"Отчёт: 5" #: ../../../../docs/common_information/points.rst:28 msgid "Semester total: 70" @@ -100,8 +100,8 @@ msgstr "Итого за семестр: 64" #: ../../../../docs/common_information/points.rst:41 msgid "" -"Legend: S — Solution (implementation), A — Acceleration (performance), R " -"— Report" +"Legend: S — Solution (implementation), A — Acceleration (performance), R — " +"Report" msgstr "" #: ../../../../docs/common_information/points.rst:44 @@ -110,11 +110,9 @@ msgstr "Маппинг баллов за производительность" #: ../../../../docs/common_information/points.rst:46 msgid "" -"The ratio of efficiency percentage to points percentage (max 100%, min " -"0%):" +"The ratio of efficiency percentage to points percentage (max 100%, min 0%):" msgstr "" -"Соотношение процента эффективности к проценту баллов (макс. 100%, мин. " -"0%):" +"Соотношение процента эффективности к проценту баллов (макс. 100%, мин. 0%):" #: ../../../../docs/common_information/points.rst:48 msgid "If the score is not an integer, it is rounded up." @@ -379,7 +377,8 @@ msgstr "" msgid "" "The submission time is defined as the timestamp of the last meaningful " "commit (not an empty commit to re-trigger CI jobs)." -msgstr "Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." +msgstr "" +"Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." #: ../../../../docs/common_information/points.rst:121 msgid "Comments" @@ -387,85 +386,7 @@ msgstr "Комментарии" #: ../../../../docs/common_information/points.rst:123 msgid "" -"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-ми балльная система оценки **(наша текущая система)**" - -#~ msgid "[87, 100]" -#~ msgstr "[87, 100]" - -#~ msgid "[70, 87)" -#~ msgstr "[70, 87)" - -#~ msgid "It is forbidden to write the report if all tasks are not completed." -#~ msgstr "" -#~ "Запрещено писать отчет, если не " -#~ "выполнены все задания, которые связаны с" -#~ " этим отчетом." - +"One week before the end of the semester, the repository is closed for final " +"assessment." +msgstr "" +"За неделю до конца семестра репозиторий закрывается для подведения итогов." diff --git a/docs/locale/ru/LC_MESSAGES/common_information/report.po b/docs/locale/ru/LC_MESSAGES/common_information/report.po index 7971f58d2..21a1dd134 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/report.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/report.po @@ -32,19 +32,19 @@ msgstr "Общее и размещение" #: ../../../../docs/common_information/report.rst:6 msgid "" -"The report is a Markdown file placed inside your task directory: " -"``tasks/__/report.md``." +"The report is a Markdown file placed inside your task directory: ``tasks/" +"__/report.md``." msgstr "" -"Отчёт — это Markdown‑файл в папке вашей задачи: " -"``tasks/<фамилия>_<инициал>_<краткое>/report.md``." +"Отчёт — это 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``)." +"Presence of ``report.md`` is required to receive report (R) points for that " +"task (see ``Points``)." msgstr "" -"Наличие ``report.md`` обязательно для получения отчётных (R) баллов по " -"этой задаче (см. «Баллы»)." +"Наличие ``report.md`` обязательно для получения отчётных (R) баллов по этой " +"задаче (см. «Баллы»)." #: ../../../../docs/common_information/report.rst:9 #, fuzzy @@ -53,8 +53,8 @@ msgid "" "(environment, commands, data generation). Use English or Russian " "consistently." msgstr "" -"Пишите отчёт кратко и воспроизводимо. Используйте один язык " -"последовательно (русский или английский)." +"Пишите отчёт кратко и воспроизводимо. Используйте один язык последовательно " +"(русский или английский)." #: ../../../../docs/common_information/report.rst:12 msgid "Report points" @@ -112,13 +112,13 @@ msgstr "" #: ../../../../docs/common_information/report.rst:26 msgid "" -"Experimental Results - Environment (CPU, OS, compiler, build type; " -"thread/process counts) - Execution time tables/plots; performance metrics" -" (speedup/efficiency) - Correctness checks description" +"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/компилятор/тип сборки; " -"числа потоков/процессов) — Таблицы/графики времени; метрики " -"ускорения/эффективности — Описание проверки корректности" +"числа потоков/процессов) — Таблицы/графики времени; метрики ускорения/" +"эффективности — Описание проверки корректности" #: ../../../../docs/common_information/report.rst:30 #, fuzzy @@ -143,26 +143,25 @@ msgid "" "Completeness - All items from the recommended structure are present and " "meaningful - Results include both correctness and performance evidence" msgstr "" -"Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны" -" — есть подтверждение корректности и результатов производительности" +"Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны — " +"есть подтверждение корректности и результатов производительности" #: ../../../../docs/common_information/report.rst:39 msgid "" -"Text Quality - Clarity, coherence, correct terminology; acceptable " -"language quality" +"Text Quality - Clarity, coherence, correct terminology; acceptable language " +"quality" msgstr "" -"Качество текста — ясность, связность, корректная терминология; приемлемое" -" качество языка" +"Качество текста — ясность, связность, корректная терминология; приемлемое " +"качество языка" #: ../../../../docs/common_information/report.rst:41 msgid "" -"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" -" blocks - Figures/plots with captions and relative paths; readable " -"formatting" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code " +"blocks - Figures/plots with captions and relative paths; readable formatting" msgstr "" -"Качество оформления — корректные Markdown‑заголовки, списки, таблицы, " -"блоки кода — рисунки/графики с подписями и относительными путями; " -"читаемое форматирование" +"Качество оформления — корректные Markdown‑заголовки, списки, таблицы, блоки " +"кода — рисунки/графики с подписями и относительными путями; читаемое " +"форматирование" #: ../../../../docs/common_information/report.rst:46 msgid "Notes" @@ -170,8 +169,8 @@ msgstr "Примечания" #: ../../../../docs/common_information/report.rst:47 msgid "" -"Reports are reviewed online in the Pull Request. The final grade is based" -" on the submitted version that passes the review." +"Reports are reviewed online in the Pull Request. The final grade is based on " +"the submitted version that passes the review." msgstr "" "Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по " "версии, прошедшей ревью." @@ -179,19 +178,18 @@ msgstr "" #: ../../../../docs/common_information/report.rst:48 #, fuzzy msgid "" -"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." +"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." msgstr "" -"Если задача окажется в «синей зоне» к концу семестра (например, падение в" -" master), отчётные баллы по этой задаче обнуляются." +"Если задача окажется в «синей зоне» к концу семестра (например, падение в " +"master), отчётные баллы по этой задаче обнуляются." #: ../../../../docs/common_information/report.rst:49 msgid "" "Plagiarism is prohibited; identical or near‑duplicate reports will be " "rejected." msgstr "" -"Плагиат запрещён; совпадающие или почти совпадающие отчёты будут " -"отклонены." +"Плагиат запрещён; совпадающие или почти совпадающие отчёты будут отклонены." #: ../../../../docs/common_information/report.rst:52 msgid "Markdown template (report.md)" @@ -199,136 +197,8 @@ msgstr "Шаблон Markdown (report.md)" #: ../../../../docs/common_information/report.rst:54 msgid "" -"Use the following skeleton as a starting point for your ``report.md``. " -"Keep file paths relative to the task directory (for images/data)." +"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 "" - -#~ msgid "" -#~ "Implementation Details per technology used " -#~ "(only those in your semester)" -#~ msgstr "" -#~ "Детали реализации по используемым технологиям" -#~ " (только требуемые в семестре)" - diff --git a/docs/locale/ru/LC_MESSAGES/index.po b/docs/locale/ru/LC_MESSAGES/index.po index 083cf835b..ad8569d67 100644 --- a/docs/locale/ru/LC_MESSAGES/index.po +++ b/docs/locale/ru/LC_MESSAGES/index.po @@ -12,7 +12,8 @@ msgstr "" "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" @@ -40,6 +41,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 887f5b994..514c09904 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\n" +"POT-Creation-Date: 2026-06-03 17:17+0200\n" "PO-Revision-Date: 2025-08-22 21:45+0200\n" "Last-Translator: Learning Process Team \n" "Language: ru\n" @@ -29,10 +29,42 @@ msgstr "Справочник API" msgid "Runners Module" msgstr "Модуль выполнения" +#: ../../../../docs/user_guide/api.rst +msgid "Functions" +msgstr "Функции" + +#: ../../../../docs/user_guide/api.rst +msgid "Parameters" +msgstr "Параметры" + +#: ../../../../docs/user_guide/api.rst +msgid "Returns" +msgstr "Возвращаемые значения" + #: ../../../../docs/user_guide/api.rst:14 msgid "Task Module" msgstr "Модуль задач" +#: ../../../../docs/user_guide/api.rst +msgid "Typedefs" +msgstr "Псевдонимы типов" + +#: ../../../../docs/user_guide/api.rst +msgid "Template Parameters" +msgstr "Параметры шаблона" + +#: ../../../../docs/user_guide/api.rst +msgid "Enums" +msgstr "Перечисления" + +#: ../../../../docs/user_guide/api.rst +msgid "Throws" +msgstr "Исключения" + +#: ../../../../docs/user_guide/api.rst +msgid "Variables" +msgstr "Переменные" + #: ../../../../docs/user_guide/api.rst:20 msgid "Utility Module" msgstr "Вспомогательный модуль (модуль с утилитами)" @@ -40,28 +72,3 @@ msgstr "Вспомогательный модуль (модуль с утили #: ../../../../docs/user_guide/api.rst:26 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 b487d34ac..81947fec0 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/build.po @@ -57,13 +57,13 @@ msgstr "``-D USE_PERF_TESTS=ON`` включает тесты на произво #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build." -" Meta-layout tasks with ``threads`` and ``processes`` subtrees are built " -"as one selected task." +"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build. " +"Meta-layout tasks with ``threads`` and ``processes`` subtrees are built as " +"one selected task." msgstr "" -"``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну " -"задачу или список через точку с запятой, например ``-D PPC_TASKS=example``, " -"чтобы ограничить сборку. Задачи с meta-layout и поддеревьями ``threads`` и " +"``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну задачу " +"или список через точку с запятой, например ``-D PPC_TASKS=example``, чтобы " +"ограничить сборку. Задачи с meta-layout и поддеревьями ``threads`` и " "``processes`` собираются как одна выбранная задача." #: ../../../../docs/user_guide/build.rst:32 @@ -80,12 +80,11 @@ msgstr "``-D CMAKE_BUILD_TYPE=Release`` нормальная сборка (по #: ../../../../docs/user_guide/build.rst:35 msgid "" -"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " -"or running ``valgrind`` to keep debug information." +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or " +"running ``valgrind`` to keep debug information." msgstr "" "``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` рекомендуется при использовании " -"санитайзеров или запуске ``valgrind`` для сохранения отладочной " -"информации." +"санитайзеров или запуске ``valgrind`` для сохранения отладочной информации." #: ../../../../docs/user_guide/build.rst:37 msgid "``-D CMAKE_BUILD_TYPE=Debug`` for debugging sessions." @@ -94,8 +93,8 @@ msgstr "``-D CMAKE_BUILD_TYPE=Debug`` используется при отлад #: ../../../../docs/user_guide/build.rst:39 msgid "*A corresponding flag can be omitted if it's not needed.*" msgstr "" -"*Ряд CMake флагов может быть выключен, если они не требуются для " -"выполнения работы.*" +"*Ряд CMake флагов может быть выключен, если они не требуются для выполнения " +"работы.*" #: ../../../../docs/user_guide/build.rst:41 msgid "**Build the project**:" @@ -108,11 +107,5 @@ msgstr "**Запуск тестов**:" #: ../../../../docs/user_guide/build.rst:49 msgid "Prefer the helper runner described in ``User Guide → CI``." msgstr "" -"Рекомендуется использовать вспомогательный раннер, описанный в " -"«Инструкция → CI»." - -#~ msgid "Navigate to a source code folder." -#~ msgstr "Перейдите в корень директории проекта" - -#~ msgid "Run ``/build/bin``" -#~ msgstr "Запустите ``/build/bin``" +"Рекомендуется использовать вспомогательный раннер, описанный в «Инструкция → " +"CI»." diff --git a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po index 5ea8f2b78..807996fd2 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po @@ -32,17 +32,16 @@ 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)." +"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 "" -"Ваш pull request должен пройти все обязательные проверки CI перед " -"ревью/слиянием. Конвейер проверяет форматирование и статический анализ, " -"собирает проект на всех платформах, запускает функциональные тесты " -"(потоки и MPI), измеряет производительность, собирает документацию и " -"публикует артефакты (отчёт по покрытию, документация, табло)." +"Ваш pull request должен пройти все обязательные проверки CI перед ревью/" +"слиянием. Конвейер проверяет форматирование и статический анализ, собирает " +"проект на всех платформах, запускает функциональные тесты (потоки и MPI), " +"измеряет производительность, собирает документацию и публикует артефакты " +"(отчёт по покрытию, документация, табло)." #: ../../../../docs/user_guide/ci.rst:9 msgid "High‑level pipeline" @@ -60,58 +59,57 @@ msgstr "" 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``)." +"``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``)." +"Сборки и тесты на платформах (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``)." #: ../../../../docs/user_guide/ci.rst:15 msgid "" -"Sanitizers (Ubuntu/Clang) — Address/UB/Leak; tests use ``PPC_ASAN_RUN=1``" -" to skip valgrind." +"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." #: ../../../../docs/user_guide/ci.rst:17 msgid "" -"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to " -"Codecov and uploads ``cov-report`` (HTML)." +"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to Codecov " +"and uploads ``cov-report`` (HTML)." msgstr "" -"Покрытие (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; публикация в " -"Codecov и загрузка артефакта ``cov-report`` (HTML)." +"Покрытие (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; публикация в Codecov " +"и загрузка артефакта ``cov-report`` (HTML)." #: ../../../../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)." +"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)." +"Производительность (perf) — ``scripts/generate_perf_results.sh`` формирует " +"``build/perf_stat_dir``; загружаются артефакты ``perf-stat`` (Linux) и " +"``perf-stat-macos`` (macOS)." #: ../../../../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 "" -"Pages (документация и табло) — сборка Doxygen XML и Sphinx (EN+RU) + " -"табло; в ветке ``master`` деплой вместе с покрытием на GitHub Pages." +"Pages (документация и табло) — сборка Doxygen XML и Sphinx (EN+RU) + табло; " +"в ветке ``master`` деплой вместе с покрытием на GitHub Pages." #: ../../../../docs/user_guide/ci.rst:23 msgid "" -"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU" -" pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " +"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " +"pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " "OpenSSF Scorecard." msgstr "" -"Безопасность и статический анализ — clang‑tidy в PR (избегайте " -"``NOLINT``/``IWYU pragma``), проверки API для backend'ов задач, плановые " -"CodeQL (C++/Python) и OpenSSF Scorecard." +"Безопасность и статический анализ — clang‑tidy в PR (избегайте ``NOLINT``/" +"``IWYU pragma``), проверки API для backend'ов задач, плановые CodeQL (C++/" +"Python) и OpenSSF Scorecard." #: ../../../../docs/user_guide/ci.rst:26 msgid "Diagram" @@ -119,8 +117,8 @@ msgstr "Схема" #: ../../../../docs/user_guide/ci.rst:27 msgid "" -"The pipeline is illustrated below. Image is auto-generated by " -"``scripts/jobs_graph.py``:" +"The pipeline is illustrated below. Image is auto-generated by ``scripts/" +"jobs_graph.py``:" msgstr "" #: ../../../../docs/user_guide/ci.rst:29 @@ -159,8 +157,8 @@ msgstr "``PPC_ASAN_RUN``" #: ../../../../docs/user_guide/ci.rst:45 msgid "" -"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " -"(default ``0``)." +"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (default " +"``0``)." msgstr "" "Установите ``1``, если включены санитайзеры, чтобы пропустить запуск под " "``valgrind`` (по умолчанию ``0``)." @@ -172,20 +170,18 @@ 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``)." +"Установите ``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)" +"(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)." +"(OpenMP/TBB/std::thread); — ``--running-type=processes`` — MPI‑тесты; — ``--" +"running-type=performance`` — бенчмарки производительности (как в CI perf)." #: ../../../../docs/user_guide/ci.rst:55 msgid "Examples:" @@ -194,14 +190,13 @@ 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." +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags (e.g., " +"``--oversubscribe``). - ``--verbose`` prints every executed command." msgstr "" "Опции: — ``--counts`` запускает тесты последовательно для нескольких " "значений потоков/процессов; — ``--additional-mpi-args`` передаёт " -"дополнительные флаги MPI‑ланчеру (например, ``--oversubscribe``); — " -"``--verbose`` печатает каждую выполняемую команду." +"дополнительные флаги MPI‑ланчеру (например, ``--oversubscribe``); — ``--" +"verbose`` печатает каждую выполняемую команду." #: ../../../../docs/user_guide/ci.rst:77 msgid "Coverage and sanitizers locally" @@ -209,21 +204,20 @@ 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``." +"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``." +"Санитайзеры (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)." +"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``)." +"Покрытие (Linux/GCC): конфигурация с ``-D USE_COVERAGE=ON``, запуск тестов, " +"затем генерация HTML через ``gcovr`` (см. команду в CI job ``gcc-build-" +"codecov``)." #: ../../../../docs/user_guide/ci.rst:82 msgid "Docs and scoreboard artifacts" @@ -231,22 +225,20 @@ 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``." +"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``." +"Документация: сначала запустите 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." +"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``." +"соберите цель табло или воспользуйтесь локально ``python3 scoreboard/" +"main.py``." #: ../../../../docs/user_guide/ci.rst:87 msgid "Troubleshooting" @@ -257,18 +249,18 @@ msgid "" "Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-" "commit install``) and commit fixes." msgstr "" -"Падает pre-commit: запустите локально ``pre-commit run -a`` " -"(предварительно ``pre-commit install``) и закоммитьте исправления." +"Падает pre-commit: запустите локально ``pre-commit run -a`` (предварительно " +"``pre-commit install``) и закоммитьте исправления." #: ../../../../docs/user_guide/ci.rst:89 msgid "" -"Static analysis fails: address clang-tidy comments; do not use " -"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread " -"APIs in their matching task backend directories." +"Static analysis fails: address clang-tidy comments; do not use ``NOLINT``/" +"``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs in their " +"matching task backend directories." msgstr "" -"Падает статический анализ: поправьте замечания clang-tidy; не используйте" -" ``NOLINT``/``IWYU pragma`` в коде задач; держите API " -"OpenMP/TBB/MPI/std::thread в соответствующих backend-директориях задач." +"Падает статический анализ: поправьте замечания clang-tidy; не используйте " +"``NOLINT``/``IWYU pragma`` в коде задач; держите API OpenMP/TBB/MPI/" +"std::thread в соответствующих backend-директориях задач." #: ../../../../docs/user_guide/ci.rst:90 msgid "" @@ -281,37 +273,36 @@ 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." +"(:doc:`environment_variables`) like ``PPC_TASK_MAX_TIME``/" +"``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." msgstr "" -"Превышены лимиты времени: уменьшите объёмы данных; используйте переменные" -" окружения (:doc:`environment_variables`) вроде " -"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; избегайте " -"задержек/случайностей." +"Превышены лимиты времени: уменьшите объёмы данных; используйте переменные " +"окружения (:doc:`environment_variables`) вроде ``PPC_TASK_MAX_TIME``/" +"``PPC_PERF_MAX_TIME``; избегайте задержек/случайностей." #: ../../../../docs/user_guide/ci.rst:92 msgid "" "MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-" "args=\\\"--oversubscribe\\\"``." msgstr "" -"Проблемы с локальным запуском MPI: задайте ``PPC_NUM_PROC`` и попробуйте " -"``--additional-mpi-args=\"--oversubscribe\"``." +"Проблемы с локальным запуском MPI: задайте ``PPC_NUM_PROC`` и попробуйте ``--" +"additional-mpi-args=\"--oversubscribe\"``." #: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " -"Sphinx targets." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before Sphinx " +"targets." msgstr "" -"Проблемы со сборкой документации: исправьте предупреждения RST; перед " -"целями Sphinx выполните ``doxygen Doxyfile``." +"Проблемы со сборкой документации: исправьте предупреждения 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``) и длительность в пределах лимитов." +"Падает job производительности: убедитесь, что ровно два перфтеста (``task`` " +"и ``pipeline``) и длительность в пределах лимитов." #: ../../../../docs/user_guide/ci.rst:97 msgid "Local clang-tidy and gcovr examples" @@ -331,133 +322,46 @@ msgstr "Подсказки по инструментам (версии и уст #: ../../../../docs/user_guide/ci.rst:143 msgid "" -"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to " -"avoid mismatches. - The helper may be named ``clang-tidy-22`` or ``run-" -"clang-tidy-22`` on some systems." +"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to avoid " +"mismatches. - The helper may be named ``clang-tidy-22`` or ``run-clang-" +"tidy-22`` on some systems." msgstr "" "Версия clang-tidy — в CI используется clang-tidy 22. Локально лучше " -"использовать ту же версию, чтобы избежать расхождений. На некоторых " -"системах помощник может называться ``clang-tidy-22`` или ``run-clang-" -"tidy-22``." +"использовать ту же версию, чтобы избежать расхождений. На некоторых системах " +"помощник может называться ``clang-tidy-22`` или ``run-clang-tidy-22``." #: ../../../../docs/user_guide/ci.rst:147 #, fuzzy msgid "" "Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" -"tidy-22``) 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)." +"tidy-22``) 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-22``) или используйте Docker‑образ курса. gcovr:" -" ``python3 -m pip install gcovr`` либо пакет дистрибутива. GCC: при " -"сборке с GCC 14 используйте ``gcov-14`` (как в CI)." +"Linux — clang-tidy: установите из репозитория дистрибутива (например, ``apt " +"install clang-tidy-22``) или используйте 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``." +"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``." +"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." +"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 " -#~ "или проверять точные аргументы, передаваемые" -#~ " тестовым бинарникам." - -#~ msgid "" -#~ "The pipeline is illustrated below " -#~ "(blocks may be collapsed in GitHub " -#~ "UI):" -#~ msgstr "Схема конвейера приведена ниже (в UI GitHub блоки могут сворачиваться):" - +"Windows — clang-tidy: установите LLVM (Clang) или ``choco install llvm``; " +"убедитесь, что ``clang-tidy.exe`` доступен в PATH. gcovr: ``py -m pip " +"install gcovr``. Покрытие в основном поддерживается нашим CI на Linux/GCC — " +"предпочтительнее генерировать отчёты на Linux." 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 5c25de372..b3ce677a3 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po @@ -40,7 +40,8 @@ msgid "Repository and branch" msgstr "Репозиторий и ветка" #: ../../../../docs/user_guide/submit_work.rst:8 -msgid "Fork the semester repository for your group (processes/threads, program)." +msgid "" +"Fork the semester repository for your group (processes/threads, program)." msgstr "" "Сделайте форк семестрового репозитория вашей группы (процессы/потоки, " "направление)." @@ -51,8 +52,7 @@ msgid "" "``__`` (e.g., ``nesterov_a_elem_vec_sum``)." msgstr "" "Создайте ветку, имя которой точно совпадает с папкой вашей задачи: " -"``<фамилия>_<инициал>_<краткое>`` (например, " -"``nesterov_a_elem_vec_sum``)." +"``<фамилия>_<инициал>_<краткое>`` (например, ``nesterov_a_elem_vec_sum``)." #: ../../../../docs/user_guide/submit_work.rst:13 msgid "Prerequisites" @@ -70,8 +70,7 @@ 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." +"If you work from a fork, clone your fork and set the course repo as upstream." msgstr "" "Если вы работаете из форка, клонируйте свой форк и добавьте основной " "репозиторий курса как upstream." @@ -95,19 +94,17 @@ msgstr "``common/include/common.hpp`` — общие типы и `BaseTask`:" #: ../../../../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)" +"Processes (MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/" +"src`` - Threads: ``seq``, ``omp``, ``tbb``, ``stl`` (same include/src split)" msgstr "" -"Реализации технологий (добавляйте только нужные в семестре): — Процессы " -"(MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` — " -"Потоки: ``seq``, ``omp``, ``tbb``, ``stl`` (аналогичное разделение " -"include/src)" +"Реализации технологий (добавляйте только нужные в семестре): — Процессы (MPI/" +"SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` — Потоки: " +"``seq``, ``omp``, ``tbb``, ``stl`` (аналогичное разделение include/src)" #: ../../../../docs/user_guide/submit_work.rst:35 msgid "" -"Each implementation defines a class derived from ``BaseTask`` and " -"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"Each implementation defines a class derived from ``BaseTask`` and overrides " +"``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " "``PostProcessingImpl``. Also add:" msgstr "" "Каждая реализация определяет класс, унаследованный от ``BaseTask``, и " @@ -120,26 +117,26 @@ 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`` + " +"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." +msgid "" +"Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." msgstr "" -"При необходимости используйте ``PPC_ID_`` для доступа к ресурсам" -" из ``data/``." +"При необходимости используйте ``PPC_ID_`` для доступа к ресурсам из " +"``data/``." #: ../../../../docs/user_guide/submit_work.rst:92 msgid "Performance tests example:" @@ -151,12 +148,12 @@ msgstr "Советы по тестам" #: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"Keep tests deterministic and under time limits; prefer env vars (see " -"``User Guide → Environment Variables``) over sleeps." +"Keep tests deterministic and under time limits; prefer env vars (see ``User " +"Guide → Environment Variables``) over sleeps." msgstr "" "Делайте тесты детерминированными и укладывающимися в лимиты времени; " -"используйте переменные окружения (см. «Инструкция → Переменные " -"окружения») вместо задержек." +"используйте переменные окружения (см. «Инструкция → Переменные окружения») " +"вместо задержек." #: ../../../../docs/user_guide/submit_work.rst:102 msgid "Use ``PPC_ID_`` to access files from ``data/``." @@ -167,22 +164,26 @@ msgid "" "Cover edge cases in functional tests; add exactly two performance test " "styles (``task`` and ``pipeline``) inside the suite." msgstr "" -"Покрывайте крайние случаи в функциональных тестах; добавьте ровно два " -"стиля перфтестов (``task`` и ``pipeline``) внутри набора." +"Покрывайте крайние случаи в функциональных тестах; добавьте ровно два стиля " +"перфтестов (``task`` и ``pipeline``) внутри набора." #: ../../../../docs/user_guide/submit_work.rst:105 msgid "``data/`` — optional input files for tests (e.g., images)." -msgstr "``data/`` — опциональные входные файлы для тестов (например, изображения)." +msgstr "" +"``data/`` — опциональные входные файлы для тестов (например, изображения)." #: ../../../../docs/user_guide/submit_work.rst:106 -msgid "``settings.json`` — enable required technologies for your semester, e.g.:" +msgid "" +"``settings.json`` — enable required technologies for your semester, e.g.:" msgstr "" -"``settings.json`` — включение необходимых технологий для вашего семестра," -" например:" +"``settings.json`` — включение необходимых технологий для вашего семестра, " +"например:" #: ../../../../docs/user_guide/submit_work.rst:112 -msgid "``info.json`` — student metadata used in automation (scoreboard, macros):" -msgstr "``info.json`` — данные студента для автоматизации (scoreboard, макросы):" +msgid "" +"``info.json`` — student metadata used in automation (scoreboard, macros):" +msgstr "" +"``info.json`` — данные студента для автоматизации (scoreboard, макросы):" #: ../../../../docs/user_guide/submit_work.rst:119 msgid "Build and local run" @@ -203,9 +204,9 @@ msgstr "Исполняемые файлы (где искать тесты)" #: ../../../../docs/user_guide/submit_work.rst:139 msgid "" "``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" +"tests first - ``ppc_func_tests`` — functional tests for all tasks/" +"technologies - ``ppc_perf_tests`` — performance tests for all tasks/" +"technologies" msgstr "" "Исполняемые файлы генерируются в ``build/bin`` (или ``install/bin`` при " "установке): - ``core_func_tests`` — тесты ядра библиотеки - " @@ -214,11 +215,10 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"The runner applies gtest filters automatically to select technology " -"suites." +"The runner applies gtest filters automatically to select technology suites." msgstr "" -"Runner автоматически применяет gtest‑фильтры для выбора наборов тестов по" -" технологиям." +"Runner автоматически применяет gtest‑фильтры для выбора наборов тестов по " +"технологиям." #: ../../../../docs/user_guide/submit_work.rst:147 msgid "Pull Request" @@ -230,25 +230,21 @@ msgstr "Формат заголовка (пример):" #: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " -".``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" msgstr "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " -".``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" #: ../../../../docs/user_guide/submit_work.rst:152 msgid "" "Description should include: - Полное описание задачи; номер варианта; " -"используемая технология - Краткое описание реализации и отчёта - Чек-лист" -" (CI зелёный в форке, clang-format/clang-tidy пройдены, " -"функциональные/перф тесты ок, ветка названа как директория задачи, " -"достоверность сведений)." +"используемая технология - Краткое описание реализации и отчёта - Чек-лист " +"(CI зелёный в форке, clang-format/clang-tidy пройдены, функциональные/перф " +"тесты ок, ветка названа как директория задачи, достоверность сведений)." msgstr "" "Описание должно включать: — Полное описание задачи; номер варианта; " -"используемую технологию — Краткое описание реализации и отчёта — Чек‑лист" -" (CI зелёный в форке, clang‑format/clang‑tidy пройдены, " -"функциональные/перф‑тесты ок, ветка названа как директория задачи, " -"достоверность сведений)." +"используемую технологию — Краткое описание реализации и отчёта — Чек‑лист " +"(CI зелёный в форке, clang‑format/clang‑tidy пройдены, функциональные/" +"перф‑тесты ок, ветка названа как директория задачи, достоверность сведений)." #: ../../../../docs/user_guide/submit_work.rst:158 msgid "PR checklist template (body)" @@ -259,14 +255,16 @@ msgid "Common pitfalls (read before pushing)" msgstr "Частые ошибки (прочтите перед отправкой)" #: ../../../../docs/user_guide/submit_work.rst:182 -msgid "Wrong folder/branch name. Must be ``__`` everywhere." +msgid "" +"Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" "Неверное имя папки/ветки. Должно быть ``<фамилия>_<инициал>_<краткое>`` " "везде." #: ../../../../docs/user_guide/submit_work.rst:183 msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." -msgstr "Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." +msgstr "" +"Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." #: ../../../../docs/user_guide/submit_work.rst:184 msgid "Tests rely on randomness or sleeps instead of env time limits." @@ -275,8 +273,10 @@ msgstr "" "окружения." #: ../../../../docs/user_guide/submit_work.rst:185 -msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." -msgstr "В ``settings.json`` не включена нужная технология — тесты не запустятся." +msgid "" +"``settings.json`` doesn’t enable a required technology — tests won’t run." +msgstr "" +"В ``settings.json`` не включена нужная технология — тесты не запустятся." #: ../../../../docs/user_guide/submit_work.rst:186 msgid "Namespace doesn’t match the folder name and collides with others." @@ -284,7 +284,8 @@ msgstr "Namespace не соответствует имени папки и ко #: ../../../../docs/user_guide/submit_work.rst:187 msgid "Performance tests count or naming deviates from the required patterns." -msgstr "Количество или именование перфтестов отклоняется от требуемых шаблонов." +msgstr "" +"Количество или именование перфтестов отклоняется от требуемых шаблонов." #: ../../../../docs/user_guide/submit_work.rst:190 msgid "Useful examples to reference" @@ -296,13 +297,11 @@ msgstr "Единый пример: ``tasks/example``" #: ../../../../docs/user_guide/submit_work.rst:192 msgid "" -"Shared example files: ``tasks/example/settings.json``, " -"``tasks/example/info.json``, ``tasks/example/common``, " -"``tasks/example/data``" +"Shared example files: ``tasks/example/settings.json``, ``tasks/example/" +"info.json``, ``tasks/example/common``, ``tasks/example/data``" msgstr "" -"Общие файлы примера: ``tasks/example/settings.json``, " -"``tasks/example/info.json``, ``tasks/example/common``, " -"``tasks/example/data``" +"Общие файлы примера: ``tasks/example/settings.json``, ``tasks/example/" +"info.json``, ``tasks/example/common``, ``tasks/example/data``" #: ../../../../docs/user_guide/submit_work.rst:193 #, python-brace-format @@ -311,11 +310,11 @@ msgstr "Потоки: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" #: ../../../../docs/user_guide/submit_work.rst:194 msgid "" -"Processes: ``tasks/example/processes/t1``, " -"``tasks/example/processes/t2``, ``tasks/example/processes/t3``" +"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" msgstr "" -"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``," -" ``tasks/example/processes/t3``" +"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " +"``tasks/example/processes/t3``" #: ../../../../docs/user_guide/submit_work.rst:195 msgid "" @@ -327,16 +326,16 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:196 msgid "" -"Example reports are tree-shaped: the root report links to section reports" -" and each implementation directory has its own ``report.md``." +"Example reports are tree-shaped: the root report links to section reports " +"and each implementation directory has its own ``report.md``." msgstr "" "Отчеты примера имеют древовидную структуру: корневой отчет ссылается на " "отчеты секций, а каждая директория реализации содержит свой ``report.md``." #: ../../../../docs/user_guide/submit_work.rst:198 msgid "" -"Work from your fork in a dedicated branch (not ``master``). Branch name " -"must match your task folder." +"Work from your fork in a dedicated branch (not ``master``). Branch name must " +"match your task folder." msgstr "" "Работайте из своего форка в отдельной ветке (не ``master``). Имя ветки " "должно совпадать с именем папки задачи." @@ -355,8 +354,7 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:203 msgid "" -"Keep tests deterministic and within time limits; prefer env vars over " -"sleeps." +"Keep tests deterministic and within time limits; prefer env vars over sleeps." msgstr "" "Делайте тесты детерминированными и укладывающимися в лимиты времени; " "используйте переменные окружения вместо задержек." @@ -368,165 +366,3 @@ msgid "" 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." - -#~ msgid "**Failing to follow the rules will result in a red project build.**" -#~ msgstr "**Несоблюдение правил приведет к падению сборки проекта.**" From 5aac6c322d2375cf628d49d31f54de016978164c Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 17:23:41 +0200 Subject: [PATCH 11/12] Remove docs changes from example layout PR --- .editorconfig | 3 - docs/common_information/introduction.rst | 2 +- .../common_information/introduction.po | 162 +++++--- .../LC_MESSAGES/common_information/points.po | 378 ++++++------------ .../LC_MESSAGES/common_information/report.po | 189 +++++++-- docs/locale/en/LC_MESSAGES/index.po | 7 +- docs/locale/en/LC_MESSAGES/user_guide/api.po | 28 +- .../locale/en/LC_MESSAGES/user_guide/build.po | 22 +- docs/locale/en/LC_MESSAGES/user_guide/ci.po | 204 +++++++--- .../user_guide/environment_variables.po | 24 +- .../en/LC_MESSAGES/user_guide/submit_work.po | 289 +++++++++---- .../common_information/introduction.po | 260 +++++++++--- .../LC_MESSAGES/common_information/points.po | 289 +++++++------ .../LC_MESSAGES/common_information/report.po | 251 ++++++++---- docs/locale/ru/LC_MESSAGES/index.po | 6 +- docs/locale/ru/LC_MESSAGES/user_guide/api.po | 28 +- .../locale/ru/LC_MESSAGES/user_guide/build.po | 38 +- docs/locale/ru/LC_MESSAGES/user_guide/ci.po | 310 ++++++++------ .../ru/LC_MESSAGES/user_guide/submit_work.po | 371 +++++++++++------ docs/user_guide/build.rst | 6 +- docs/user_guide/submit_work.rst | 12 +- 21 files changed, 1846 insertions(+), 1033 deletions(-) diff --git a/.editorconfig b/.editorconfig index 1024366cb..c74f22029 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,9 +14,6 @@ indent_size = 2 [*.{yml,yaml}] indent_size = 2 -[*.{bat,cmd}] -end_of_line = crlf - [*.py] indent_size = 4 diff --git a/docs/common_information/introduction.rst b/docs/common_information/introduction.rst index 795d56869..c47e4b086 100644 --- a/docs/common_information/introduction.rst +++ b/docs/common_information/introduction.rst @@ -14,7 +14,7 @@ Practice - Task distribution is random for each student. - 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`` tree with ``threads`` and ``processes/t1``..``processes/t3`` sections. +- 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. diff --git a/docs/locale/en/LC_MESSAGES/common_information/introduction.po b/docs/locale/en/LC_MESSAGES/common_information/introduction.po index 01e869ac4..c5efcd497 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/en/LC_MESSAGES/common_information/introduction.po @@ -2,129 +2,183 @@ # 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: 2026-06-03 16:19+0200\n" +"POT-Creation-Date: 2025-02-09 00:23+0100\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.18.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../../../docs/common_information/introduction.rst:2 +#: ../../common_information/introduction.rst:2 msgid "Introduction" msgstr "" -#: ../../../../docs/common_information/introduction.rst:5 +#: ../../common_information/introduction.rst:5 msgid "Practice" msgstr "" -#: ../../../../docs/common_information/introduction.rst:7 +#: ../../common_information/introduction.rst:7 msgid "We work online" msgstr "" -#: ../../../../docs/common_information/introduction.rst:9 +#: ../../common_information/introduction.rst:9 msgid "Use GitHub repository" msgstr "" -#: ../../../../docs/common_information/introduction.rst:10 +#: ../../common_information/introduction.rst:10 msgid "Use Pull Requests" msgstr "" -#: ../../../../docs/common_information/introduction.rst:11 +#: ../../common_information/introduction.rst:11 msgid "Merge into the master branch" msgstr "" -#: ../../../../docs/common_information/introduction.rst:12 +#: ../../common_information/introduction.rst:12 msgid "Test verification" msgstr "" -#: ../../../../docs/common_information/introduction.rst:14 +#: ../../common_information/introduction.rst:14 msgid "Task distribution is random for each student." msgstr "" -#: ../../../../docs/common_information/introduction.rst:15 +#: ../../common_information/introduction.rst:15 msgid "" -"Full automation of quality and performance checks; plagiarism checks are " -"applied." +"An example for each technology can be found in the corresponding " +"directory: ``tasks//example``." msgstr "" -#: ../../../../docs/common_information/introduction.rst:16 +#: ../../common_information/introduction.rst:16 msgid "" -"Deadlines are set per task. See the penalties and grading rules in " -"``Points``." +"In each repository, the README.md contains a link to the course " +"documentation (**read it fully!!!**)." msgstr "" -#: ../../../../docs/common_information/introduction.rst:17 +#: ../../common_information/introduction.rst:17 msgid "" -"Examples are provided in ``tasks/example`` tree with ``threads`` and " -"``processes/t1``..``processes/t3`` sections." +"Additionally, each repository includes an example of a properly formatted" +" PULL REQUEST." +msgstr "" + +#: ../../common_information/introduction.rst:18 +msgid "Submission of all tasks is mandatory to pass the course." msgstr "" -#: ../../../../docs/common_information/introduction.rst:18 +#: ../../common_information/introduction.rst:19 msgid "" -"In each repository, the README.md contains a link to the course " -"documentation." +"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``" +msgstr "" + +#: ../../common_information/introduction.rst:24 +msgid "All resources for using the repository will be provided here:" msgstr "" -#: ../../../../docs/common_information/introduction.rst:19 +#: ../../common_information/introduction.rst:26 msgid "" -"Each repository includes an example of a properly formatted PULL REQUEST." +"`Git for half an hour: A Beginner’s Guide `__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:20 -msgid "Submission of all tasks is mandatory to pass the course." +#: ../../common_information/introduction.rst:27 +#, python-format +msgid "" +"`Getting Started with Git and GitHub: A Beginner’s Guide " +"`__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:21 +#: ../../common_information/introduction.rst:28 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 " -"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``" +"`Git: A Quick Start Guide to Using Core Operations with Explanations " +"`__" +msgstr "" + +#: ../../common_information/introduction.rst:29 +msgid "" +"`Conflicts resolving in Git " +"`__" +msgstr "" + +#: ../../common_information/introduction.rst:30 +msgid "`Google testing framework (gtest) `__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:28 -msgid "Communication" +#: ../../common_information/introduction.rst:31 +msgid "" +"`GoogleTest Primer " +"`__" +msgstr "" + +#: ../../common_information/introduction.rst:32 +msgid "`GitHub Actions documentation `__" +msgstr "" + +#: ../../common_information/introduction.rst:33 +msgid "" +"`Parallel Programming Technologies. Message Passing Interface (MPI) " +"`__" +msgstr "" + +#: ../../common_information/introduction.rst:34 +msgid "" +"`Typing and Layout in the System LaTeX `__" +msgstr "" + +#: ../../common_information/introduction.rst:35 +msgid "" +"`LaTeX for the beginners " +"`__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:30 -msgid "Telegram channel — announcements and quick updates" +#: ../../common_information/introduction.rst:36 +msgid "`What is OpenMP? `__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:31 -msgid "GitHub Issues — repository problems and bug reports" +#: ../../common_information/introduction.rst:37 +msgid "" +"`TBB-1 " +"`__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:32 -msgid "Lessons — Q&A" +#: ../../common_information/introduction.rst:38 +msgid "" +"`Writing Multithreaded Applications in C++ `__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:33 -msgid "Feedback form — critical issues" +#: ../../common_information/introduction.rst:39 +msgid "" +"`Multithreading: New Features of the C++11 Standard " +"`__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:34 -msgid "Email — non‑urgent matters" +#: ../../common_information/introduction.rst:40 +msgid "" +"`Introduction to Parallel Computing " +"`__" msgstr "" -#: ../../../../docs/common_information/introduction.rst:36 +#: ../../common_information/introduction.rst:42 msgid "" -"\\* *All instructions, repositories, and tables may be updated during the " -"learning process for better usability. Be prepared for changes and check " -"updates periodically.*" +"\\* *All instructions, repositories, and tables may be updated during the" +" learning process for better usability. Be prepared for changes, check " +"and update them periodically!!!*" msgstr "" diff --git a/docs/locale/en/LC_MESSAGES/common_information/points.po b/docs/locale/en/LC_MESSAGES/common_information/points.po index 0656de018..e89ceb8ed 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/points.po +++ b/docs/locale/en/LC_MESSAGES/common_information/points.po @@ -2,375 +2,235 @@ # 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: 2026-06-03 16:19+0200\n" +"POT-Creation-Date: 2025-02-09 00:58+0100\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.18.0\n" +"Generated-By: Babel 2.17.0\n" -#: ../../../../docs/common_information/points.rst:2 +#: ../../common_information/points.rst:2 msgid "Points" msgstr "" -#: ../../../../docs/common_information/points.rst:5 -msgid "Overview" +#: ../../common_information/points.rst:4 +msgid "For “process parallelism” semester" msgstr "" -#: ../../../../docs/common_information/points.rst:7 -msgid "Total per semester (Practice): 70 points" +#: ../../common_information/points.rst:6 +msgid "1st MPI task" msgstr "" -#: ../../../../docs/common_information/points.rst:8 -msgid "Report points are distributed per task and sum to 10" -msgstr "" - -#: ../../../../docs/common_information/points.rst:11 -msgid "Processes semester (MPI)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:13 -msgid "" -"Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " -"Report: 2" -msgstr "" - -#: ../../../../docs/common_information/points.rst:18 -msgid "" -"Task 2 — Total: 23 - Implementation: MPI 12 + Seq 3 - Performance: 5 - " -"Report: 3" -msgstr "" - -#: ../../../../docs/common_information/points.rst:23 -msgid "" -"Task 3 — Total: 35 - Implementation: MPI 16 + Seq 4 - Performance: 10 - " -"Report: 5" -msgstr "" - -#: ../../../../docs/common_information/points.rst:28 -msgid "Semester total: 70" -msgstr "" - -#: ../../../../docs/common_information/points.rst:31 -msgid "Threads semester (OpenMP/TBB/std::thread)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:33 -msgid "seq — Total: 5 (S 4, R 1)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:34 -msgid "omp — Total: 11 (S 6, A 3, R 2)" +#: ../../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 +msgid "Report" msgstr "" -#: ../../../../docs/common_information/points.rst:35 -msgid "tbb — Total: 11 (S 6, A 3, R 2)" +#: ../../common_information/points.rst:9 ../../common_information/points.rst:17 +#: ../../common_information/points.rst:25 +msgid "2" msgstr "" -#: ../../../../docs/common_information/points.rst:36 -msgid "stl — Total: 16 (S 8, A 6, R 2)" +#: ../../common_information/points.rst:10 ../../common_information/points.rst:18 +msgid "Performance" msgstr "" -#: ../../../../docs/common_information/points.rst:37 -msgid "all — Total: 21 (S 10, A 8, R 3)" +#: ../../common_information/points.rst:10 +msgid "0" msgstr "" -#: ../../../../docs/common_information/points.rst:39 -msgid "Semester total: 64" +#: ../../common_information/points.rst:11 ../../common_information/points.rst:19 +#: ../../common_information/points.rst:27 +msgid "MPI" msgstr "" -#: ../../../../docs/common_information/points.rst:41 -msgid "" -"Legend: S — Solution (implementation), A — Acceleration (performance), R — " -"Report" +#: ../../common_information/points.rst:11 +msgid "8" msgstr "" -#: ../../../../docs/common_information/points.rst:44 -msgid "Performance points mapping" +#: ../../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 "" -#: ../../../../docs/common_information/points.rst:46 -msgid "" -"The ratio of efficiency percentage to points percentage (max 100%, min 0%):" -msgstr "" - -#: ../../../../docs/common_information/points.rst:48 -msgid "If the score is not an integer, it is rounded up." +#: ../../common_information/points.rst:12 +msgid "2" msgstr "" -#: ../../../../docs/common_information/points.rst:51 -msgid "Efficiency (%)" +#: ../../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 "" -#: ../../../../docs/common_information/points.rst:51 -msgid "Points percentage" +#: ../../common_information/points.rst:13 +msgid "12" msgstr "" -#: ../../../../docs/common_information/points.rst:53 -msgid ">= 50%" +#: ../../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 "" -#: ../../../../docs/common_information/points.rst:53 -msgid "100%" +#: ../../common_information/points.rst:16 +msgid "2nd MPI task" msgstr "" -#: ../../../../docs/common_information/points.rst:55 -msgid "[45, 50)" +#: ../../common_information/points.rst:19 +msgid "12" msgstr "" -#: ../../../../docs/common_information/points.rst:55 -msgid "90%" +#: ../../common_information/points.rst:20 +msgid "3" msgstr "" -#: ../../../../docs/common_information/points.rst:57 -msgid "[42, 45)" +#: ../../common_information/points.rst:21 +msgid "23" msgstr "" -#: ../../../../docs/common_information/points.rst:57 -msgid "80%" +#: ../../common_information/points.rst:24 +msgid "3rd MPI task" msgstr "" -#: ../../../../docs/common_information/points.rst:59 -msgid "[40, 42)" +#: ../../common_information/points.rst:26 +msgid "5" msgstr "" -#: ../../../../docs/common_information/points.rst:59 -msgid "70%" +#: ../../common_information/points.rst:27 +msgid "16" msgstr "" -#: ../../../../docs/common_information/points.rst:61 -msgid "[37, 40)" +#: ../../common_information/points.rst:28 +msgid "4" msgstr "" -#: ../../../../docs/common_information/points.rst:61 -msgid "60%" +#: ../../common_information/points.rst:29 +msgid "35" msgstr "" -#: ../../../../docs/common_information/points.rst:63 -msgid "[35, 37)" +#: ../../common_information/points.rst:33 +msgid "For “thread parallelism” semester" msgstr "" -#: ../../../../docs/common_information/points.rst:63 -msgid "50%" +#: ../../common_information/points.rst:36 +msgid "OpenMP" msgstr "" -#: ../../../../docs/common_information/points.rst:65 -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 "S" msgstr "" -#: ../../../../docs/common_information/points.rst:65 -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 "A" msgstr "" -#: ../../../../docs/common_information/points.rst:67 -msgid "[30, 32)" +#: ../../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 "" -#: ../../../../docs/common_information/points.rst:67 -msgid "30%" +#: ../../common_information/points.rst:37 +msgid "6" msgstr "" -#: ../../../../docs/common_information/points.rst:69 -msgid "[27, 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 "" -#: ../../../../docs/common_information/points.rst:69 -msgid "20%" +#: ../../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 "" -#: ../../../../docs/common_information/points.rst:71 -msgid "[25, 27)" +#: ../../common_information/points.rst:43 +msgid "TBB" msgstr "" -#: ../../../../docs/common_information/points.rst:71 -msgid "10%" +#: ../../common_information/points.rst:47 ../../common_information/points.rst:55 +#: ../../common_information/points.rst:63 ../../common_information/points.rst:71 +msgid "2" msgstr "" -#: ../../../../docs/common_information/points.rst:73 -msgid "< 25%" +#: ../../common_information/points.rst:51 +msgid "C++ STL" msgstr "" -#: ../../../../docs/common_information/points.rst:73 -msgid "0%" +#: ../../common_information/points.rst:52 +msgid "8" msgstr "" -#: ../../../../docs/common_information/points.rst:77 -msgid "Report" +#: ../../common_information/points.rst:56 +msgid "16" msgstr "" -#: ../../../../docs/common_information/points.rst:80 -msgid "Completeness" +#: ../../common_information/points.rst:59 +msgid "All" msgstr "" -#: ../../../../docs/common_information/points.rst:80 -msgid "Text Quality" +#: ../../common_information/points.rst:60 +msgid "10" msgstr "" -#: ../../../../docs/common_information/points.rst:80 -msgid "Formatting Quality" +#: ../../common_information/points.rst:64 +msgid "21" msgstr "" -#: ../../../../docs/common_information/points.rst:80 -msgid "Total" +#: ../../common_information/points.rst:68 +msgid "4" msgstr "" -#: ../../../../docs/common_information/points.rst:82 -#: ../../../../docs/common_information/points.rst:93 -#: ../../../../docs/common_information/points.rst:105 +#: ../../common_information/points.rst:72 msgid "5" msgstr "" -#: ../../../../docs/common_information/points.rst:82 -msgid "2.5" -msgstr "" - -#: ../../../../docs/common_information/points.rst:82 -msgid "10" +#: ../../common_information/points.rst:74 +msgid "Grading" msgstr "" -#: ../../../../docs/common_information/points.rst:86 -msgid "Conversion to grade" +#: ../../common_information/points.rst:76 +msgid "5-point (4-grade) scale" msgstr "" -#: ../../../../docs/common_information/points.rst:88 -msgid "5-point scale" +#: ../../common_information/points.rst:78 +msgid "Exam" msgstr "" -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 +#: ../../common_information/points.rst:78 msgid "Points range" msgstr "" -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 -msgid "Exam Assessment" -msgstr "" - -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 -msgid "Student Pass" -msgstr "" - -#: ../../../../docs/common_information/points.rst:93 -msgid "[92, 100]" -msgstr "" - -#: ../../../../docs/common_information/points.rst:93 -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:95 -#: ../../../../docs/common_information/points.rst:104 -#: ../../../../docs/common_information/points.rst:105 -#: ../../../../docs/common_information/points.rst:106 -#: ../../../../docs/common_information/points.rst:107 -#: ../../../../docs/common_information/points.rst:108 +#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 msgid "Passed" msgstr "" -#: ../../../../docs/common_information/points.rst:94 -msgid "[70, 92)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:107 -msgid "4" -msgstr "" - -#: ../../../../docs/common_information/points.rst:95 -#: ../../../../docs/common_information/points.rst:108 -msgid "[50, 70)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:95 -#: ../../../../docs/common_information/points.rst:108 -msgid "3" -msgstr "" - -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 -msgid "< 50" -msgstr "" - -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 -msgid "2" -msgstr "" - -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 +#: ../../common_information/points.rst:78 ../../common_information/points.rst:114 msgid "Not Passed" msgstr "" -#: ../../../../docs/common_information/points.rst:99 -msgid "7-point scale (current)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:104 -msgid "[99, 100]" -msgstr "" - -#: ../../../../docs/common_information/points.rst:104 -msgid "5.5" -msgstr "" - -#: ../../../../docs/common_information/points.rst:105 -msgid "[92, 99)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:106 -msgid "[82, 92)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:106 -msgid "4.5" -msgstr "" - -#: ../../../../docs/common_information/points.rst:107 -msgid "[70, 82)" -msgstr "" - -#: ../../../../docs/common_information/points.rst:113 -msgid "Penalties" -msgstr "" - -#: ../../../../docs/common_information/points.rst:115 -msgid "A deadline will be set for each task." -msgstr "" - -#: ../../../../docs/common_information/points.rst:116 -msgid "1 point is deducted from the version’s score for each day of delay." -msgstr "" - -#: ../../../../docs/common_information/points.rst:117 -msgid "" -"A task is considered accepted when it is merged into the default branch " -"after a successful CI pipeline." -msgstr "" - -#: ../../../../docs/common_information/points.rst:118 -msgid "" -"The submission time is defined as the timestamp of the last meaningful " -"commit (not an empty commit to re-trigger CI jobs)." -msgstr "" - -#: ../../../../docs/common_information/points.rst:121 -msgid "Comments" -msgstr "" - -#: ../../../../docs/common_information/points.rst:123 -msgid "" -"One week before the end of the semester, the repository is 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 8dad3a2b9..6a720743b 100644 --- a/docs/locale/en/LC_MESSAGES/common_information/report.po +++ b/docs/locale/en/LC_MESSAGES/common_information/report.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/common_information/report.rst:2 msgid "Report" @@ -32,21 +32,20 @@ msgstr "" #: ../../../../docs/common_information/report.rst:6 msgid "" -"The report is a Markdown file placed inside your task directory: ``tasks/" -"__/report.md``." +"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``)." +"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 concisely with enough detail to reproduce the results " -"(environment, commands, data generation). Use English or Russian " -"consistently." +"Write the report in a concise, reproducible manner. Use English or " +"Russian consistently." msgstr "" #: ../../../../docs/common_information/report.rst:12 @@ -102,74 +101,190 @@ msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" msgstr "" #: ../../../../docs/common_information/report.rst:26 -msgid "" -"Experimental Results - Environment (CPU, OS, compiler, build type; thread/" -"process counts) - Execution time tables/plots; performance metrics (speedup/" -"efficiency) - Correctness checks description" +msgid "Implementation Details per technology used (only those in your semester)" msgstr "" -#: ../../../../docs/common_information/report.rst:30 -msgid "Conclusions (what worked, what didn’t)" +#: ../../../../docs/common_information/report.rst:27 +msgid "" +"Experimental Results - Environment (CPU, OS, compiler, build type; " +"thread/process counts) - Execution time tables/plots; performance metrics" +" (speedup/efficiency) - Correctness checks description" msgstr "" #: ../../../../docs/common_information/report.rst:31 -msgid "References (articles, docs; provide links)" +msgid "Conclusions (what worked, what didn’t, further work)" msgstr "" #: ../../../../docs/common_information/report.rst:32 -msgid "Appendix (optional code snippets)" +msgid "References (articles, docs; provide links)" msgstr "" -#: ../../../../docs/common_information/report.rst:35 -msgid "Evaluation criteria" +#: ../../../../docs/common_information/report.rst:33 +msgid "Appendix (optional code snippets; keep readable)" msgstr "" #: ../../../../docs/common_information/report.rst:36 +msgid "Evaluation criteria" +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 "" -#: ../../../../docs/common_information/report.rst:39 +#: ../../../../docs/common_information/report.rst:40 msgid "" -"Text Quality - Clarity, coherence, correct terminology; acceptable language " -"quality" +"Text Quality - Clarity, coherence, correct terminology; acceptable " +"language quality" msgstr "" -#: ../../../../docs/common_information/report.rst:41 +#: ../../../../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" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" +" blocks - Figures/plots with captions and relative paths; readable " +"formatting" msgstr "" -#: ../../../../docs/common_information/report.rst:46 +#: ../../../../docs/common_information/report.rst:47 msgid "Notes" msgstr "" -#: ../../../../docs/common_information/report.rst:47 +#: ../../../../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." +"Reports are reviewed online in the Pull Request. The final grade is based" +" on the submitted version that passes the review." msgstr "" -#: ../../../../docs/common_information/report.rst:48 +#: ../../../../docs/common_information/report.rst:49 msgid "" -"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." +"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 "" -#: ../../../../docs/common_information/report.rst:49 +#: ../../../../docs/common_information/report.rst:50 msgid "" "Plagiarism is prohibited; identical or near‑duplicate reports will be " "rejected." msgstr "" -#: ../../../../docs/common_information/report.rst:52 +#: ../../../../docs/common_information/report.rst:55 msgid "Markdown template (report.md)" msgstr "" -#: ../../../../docs/common_information/report.rst:54 +#: ../../../../docs/common_information/report.rst:57 msgid "" -"Use the following skeleton as a starting point for your ``report.md``. Keep " -"file paths relative to the task directory (for images/data)." +"Use the following skeleton as a starting point for your ``report.md``. " +"Keep file paths relative to the task directory (for images/data)." msgstr "" + +#~ msgid "Requirements for Criteria" +#~ msgstr "" + +#~ msgid "Introduction (can be a short paragraph)" +#~ msgstr "" + +#~ msgid "Problem Statement (descriptive)" +#~ msgstr "" + +#~ msgid "Algorithm Description" +#~ 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 "" + diff --git a/docs/locale/en/LC_MESSAGES/index.po b/docs/locale/en/LC_MESSAGES/index.po index eb1ff1922..c62b1aaab 100644 --- a/docs/locale/en/LC_MESSAGES/index.po +++ b/docs/locale/en/LC_MESSAGES/index.po @@ -13,8 +13,7 @@ msgstr "" "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" @@ -38,3 +37,7 @@ msgid "" "Below is the table of contents for the Parallel Programming Course " "documentation. Follow the links to learn more about each topic." msgstr "" + +#~ msgid "Common Information:" +#~ msgstr "" + diff --git a/docs/locale/en/LC_MESSAGES/user_guide/api.po b/docs/locale/en/LC_MESSAGES/user_guide/api.po index 76ba07ab0..9dd535be2 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 17:17+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" @@ -18,7 +18,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/api.rst:2 msgid "API Reference" @@ -72,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 19cfff664..27ad56bbd 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/build.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" @@ -57,9 +57,8 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build. " -"Meta-layout tasks with ``threads`` and ``processes`` subtrees are built as " -"one selected task." +"semicolon list, for example ``-D PPC_TASKS=\"example_threads;example_processes\"``, " +"to limit the build." msgstr "" #: ../../../../docs/user_guide/build.rst:32 @@ -74,8 +73,8 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:35 msgid "" -"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or " -"running ``valgrind`` to keep debug information." +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " +"or running ``valgrind`` to keep debug information." msgstr "" #: ../../../../docs/user_guide/build.rst:37 @@ -97,3 +96,12 @@ msgstr "" #: ../../../../docs/user_guide/build.rst:49 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 a7df639af..f04a77f87 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/ci.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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: en\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" @@ -32,10 +32,11 @@ 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)." +"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 @@ -52,27 +53,27 @@ msgstr "" 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``)." +"``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." +"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)." +"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)." +"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 @@ -83,9 +84,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:23 msgid "" -"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " -"pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " -"OpenSSF Scorecard." +"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 @@ -93,9 +93,7 @@ msgid "Diagram" msgstr "" #: ../../../../docs/user_guide/ci.rst:27 -msgid "" -"The pipeline is illustrated below. Image is auto-generated by ``scripts/" -"jobs_graph.py``:" +msgid "The pipeline is illustrated below (blocks may be collapsed in GitHub UI):" msgstr "" #: ../../../../docs/user_guide/ci.rst:29 @@ -132,8 +130,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:45 msgid "" -"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (default " -"``0``)." +"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " +"(default ``0``)." msgstr "" #: ../../../../docs/user_guide/ci.rst:47 @@ -147,8 +145,9 @@ 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)" +"(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 @@ -158,8 +157,9 @@ 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." +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags " +"(e.g., ``--oversubscribe``). - ``--verbose`` prints every executed " +"command." msgstr "" #: ../../../../docs/user_guide/ci.rst:77 @@ -168,14 +168,15 @@ 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``." +"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)." +"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 @@ -184,14 +185,15 @@ 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``." +"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." +"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 @@ -206,9 +208,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:89 msgid "" -"Static analysis fails: address clang-tidy comments; do not use ``NOLINT``/" -"``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs in their " -"matching task backend directories." +"Static analysis (clang-tidy) fails: address comments; do not use " +"``NOLINT``/``IWYU pragma`` in task code." msgstr "" #: ../../../../docs/user_guide/ci.rst:90 @@ -220,8 +221,8 @@ 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." +"(:doc:`environment_variables`) like " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." msgstr "" #: ../../../../docs/user_guide/ci.rst:92 @@ -232,8 +233,8 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before Sphinx " -"targets." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " +"Sphinx targets." msgstr "" #: ../../../../docs/user_guide/ci.rst:94 @@ -260,30 +261,121 @@ msgstr "" #: ../../../../docs/user_guide/ci.rst:143 msgid "" -"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to avoid " -"mismatches. - The helper may be named ``clang-tidy-22`` or ``run-clang-" -"tidy-22`` on some systems." +"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to " +"avoid mismatches. - The helper may be named ``clang-tidy-22`` or ``run-" +"clang-tidy-22`` on some systems." msgstr "" #: ../../../../docs/user_guide/ci.rst:147 msgid "" "Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" -"tidy-22``) 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)." +"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``." +"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 "" #: ../../../../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: 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_variables.po b/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po index c203762a3..6e4c9a00e 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/environment_variables.po @@ -28,8 +28,8 @@ msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:4 msgid "" -"The following environment variables can be used to configure the project's " -"runtime behavior:" +"The following environment variables can be used to configure the " +"project's runtime behavior:" msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:6 @@ -40,20 +40,22 @@ msgstr "" #: ../../../../docs/user_guide/environment_variables.rst:10 msgid "" -"``PPC_NUM_THREADS``: Specifies the number of threads to use. Default: ``1``" +"``PPC_NUM_THREADS``: Specifies the number of threads to use. Default: " +"``1``" msgstr "" #: ../../../../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``" +"``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: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``" +"``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 @@ -67,3 +69,9 @@ 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 8ec311b7c..598369c39 100644 --- a/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/en/LC_MESSAGES/user_guide/submit_work.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/submit_work.rst:2 msgid "How to create, open, and submit your work" @@ -38,8 +38,7 @@ msgid "Repository and branch" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:8 -msgid "" -"Fork the semester repository for your group (processes/threads, program)." +msgid "Fork the semester repository for your group (processes/threads, program)." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:9 @@ -62,7 +61,8 @@ 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." +"If you work from a fork, clone your fork and set the course repo as " +"upstream." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:19 @@ -82,14 +82,15 @@ 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)" +"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 "" -"Each implementation defines a class derived from ``BaseTask`` and overrides " -"``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"Each implementation defines a class derived from ``BaseTask`` and " +"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " "``PostProcessingImpl``. Also add:" msgstr "" @@ -99,10 +100,10 @@ msgstr "" #: ../../../../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``." +"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 @@ -110,8 +111,7 @@ msgid "Functional tests example:" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:90 -msgid "" -"Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." +msgid "Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:92 @@ -124,8 +124,8 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"Keep tests deterministic and under time limits; prefer env vars (see ``User " -"Guide → Environment Variables``) over sleeps." +"Keep tests deterministic and under time limits; prefer env vars (see " +"``User Guide → Environment Variables``) over sleeps." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:102 @@ -143,13 +143,11 @@ 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.:" +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):" +msgid "``info.json`` — student metadata used in automation (scoreboard, macros):" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:119 @@ -171,14 +169,15 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:139 msgid "" "``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" +"tests first - ``ppc_func_tests`` — functional tests for all " +"tasks/technologies - ``ppc_perf_tests`` — performance tests for all " +"tasks/technologies" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"The runner applies gtest filters automatically to select technology suites." +"The runner applies gtest filters automatically to select technology " +"suites." msgstr "" #: ../../../../docs/user_guide/submit_work.rst:147 @@ -191,111 +190,245 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" msgstr "" #: ../../../../docs/user_guide/submit_work.rst:152 msgid "" "Description should include: - Полное описание задачи; номер варианта; " -"используемая технология - Краткое описание реализации и отчёта - Чек-лист " -"(CI зелёный в форке, clang-format/clang-tidy пройдены, функциональные/перф " -"тесты ок, ветка названа как директория задачи, достоверность сведений)." +"используемая технология - Краткое описание реализации и отчёта - Чек-лист" +" (CI зелёный в форке, clang-format/clang-tidy пройдены, " +"функциональные/перф тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:158 +#: ../../../../docs/user_guide/submit_work.rst:160 msgid "PR checklist template (body)" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:181 +#: ../../../../docs/user_guide/submit_work.rst:208 msgid "Common pitfalls (read before pushing)" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:182 -msgid "" -"Wrong folder/branch name. Must be ``__`` everywhere." +#: ../../../../docs/user_guide/submit_work.rst:209 +msgid "Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:183 +#: ../../../../docs/user_guide/submit_work.rst:210 msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:184 +#: ../../../../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:185 -msgid "" -"``settings.json`` doesn’t enable a required technology — tests won’t run." +#: ../../../../docs/user_guide/submit_work.rst:212 +msgid "``settings.json`` doesn’t enable a required technology — tests won’t run." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:186 +#: ../../../../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:187 +#: ../../../../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:190 +#: ../../../../docs/user_guide/submit_work.rst:217 msgid "Useful examples to reference" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:191 -msgid "Unified example: ``tasks/example``" -msgstr "" - -#: ../../../../docs/user_guide/submit_work.rst:192 +#: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"Shared example files: ``tasks/example/settings.json``, ``tasks/example/" -"info.json``, ``tasks/example/common``, ``tasks/example/data``" +"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:193 -#, python-brace-format -msgid "Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" +#: ../../../../docs/user_guide/submit_work.rst:219 +msgid "Threads: ``tasks/example_threads``" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:194 +#: ../../../../docs/user_guide/submit_work.rst:221 msgid "" -"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" +"Work from your fork in a dedicated branch (not ``master``). Branch name " +"must match your task folder." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:195 -msgid "" -"Process tasks keep independent ``seq`` and ``mpi`` implementations under " -"each ``tN`` directory." -msgstr "" - -#: ../../../../docs/user_guide/submit_work.rst:196 -msgid "" -"Example reports are tree-shaped: the root report links to section reports " -"and each implementation directory has its own ``report.md``." -msgstr "" - -#: ../../../../docs/user_guide/submit_work.rst:198 -msgid "" -"Work from your fork in a dedicated branch (not ``master``). Branch name must " -"match your task folder." -msgstr "" - -#: ../../../../docs/user_guide/submit_work.rst:201 +#: ../../../../docs/user_guide/submit_work.rst:224 msgid "Notes" msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:202 +#: ../../../../docs/user_guide/submit_work.rst:225 msgid "" "All classes should live in a unique namespace (e.g., " "``__``)." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:203 +#: ../../../../docs/user_guide/submit_work.rst:226 msgid "" -"Keep tests deterministic and within time limits; prefer env vars over sleeps." +"Keep tests deterministic and within time limits; prefer env vars over " +"sleeps." msgstr "" -#: ../../../../docs/user_guide/submit_work.rst:204 +#: ../../../../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 66f3d3c9b..8d82fb1c8 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/introduction.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/introduction.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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: ru\n" @@ -20,133 +20,277 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/common_information/introduction.rst:2 msgid "Introduction" msgstr "Вводная информация" #: ../../../../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 "Практика" -#: ../../../../docs/common_information/introduction.rst:7 +#: ../../../../docs/common_information/introduction.rst:13 msgid "We work online" msgstr "Работа происходит в режиме online" -#: ../../../../docs/common_information/introduction.rst:9 +#: ../../../../docs/common_information/introduction.rst:15 msgid "Use GitHub repository" msgstr "Используется GitHub репозиторий" -#: ../../../../docs/common_information/introduction.rst:10 +#: ../../../../docs/common_information/introduction.rst:16 msgid "Use Pull Requests" msgstr "Для задач задействуются Pull Request'ы" -#: ../../../../docs/common_information/introduction.rst:11 +#: ../../../../docs/common_information/introduction.rst:17 msgid "Merge into the master branch" msgstr "Рабочая git-ветка курса - master" -#: ../../../../docs/common_information/introduction.rst:12 +#: ../../../../docs/common_information/introduction.rst:18 msgid "Test verification" msgstr "Используются различные виды тестирования" -#: ../../../../docs/common_information/introduction.rst:14 +#: ../../../../docs/common_information/introduction.rst:20 msgid "Task distribution is random for each student." -msgstr "" -"Распределение задач производится случайным образом для каждого человека" +msgstr "Распределение задач производится случайным образом для каждого человека" -#: ../../../../docs/common_information/introduction.rst:15 +#: ../../../../docs/common_information/introduction.rst:21 msgid "" "Full automation of quality and performance checks; plagiarism checks are " "applied." -msgstr "" -"Полная автоматизация проверок качества и производительности; проводится " -"проверка на плагиат." +msgstr "Полная автоматизация проверок качества и производительности; проводится проверка на плагиат." -#: ../../../../docs/common_information/introduction.rst:16 +#: ../../../../docs/common_information/introduction.rst:22 msgid "" "Deadlines are set per task. See the penalties and grading rules in " "``Points``." msgstr "Дедлайны задаются на каждую задачу. Подробности в разделе ``Баллы``." -#: ../../../../docs/common_information/introduction.rst:17 -#, fuzzy +#: ../../../../docs/common_information/introduction.rst:23 msgid "" -"Examples are provided in ``tasks/example`` tree with ``threads`` and " -"``processes/t1``..``processes/t3`` sections." -msgstr "" -"Примеры размещены в дереве ``tasks/example`` с секциями ``threads`` и " -"``processes/t1``..``processes/t3``." +"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:18 -#, fuzzy +#: ../../../../docs/common_information/introduction.rst:24 msgid "" "In each repository, the README.md contains a link to the course " -"documentation." +"documentation (**read it fully!!!**)." msgstr "" -"В каждом из репозиториев в README.md находится документация курса (просьба " -"читать полностью!!!)" +"В каждом из репозиториев в README.md находится документация курса " +"(просьба читать полностью!!!)" -#: ../../../../docs/common_information/introduction.rst:19 -#, fuzzy +#: ../../../../docs/common_information/introduction.rst:25 msgid "" -"Each repository includes an example of a properly formatted PULL REQUEST." -msgstr "" -"Также в каждом репозитории представлен пример оформления PULL REQUEST'а" +"Additionally, each repository includes an example of a properly formatted" +" PULL REQUEST." +msgstr "Также в каждом репозитории представлен пример оформления PULL REQUEST'а" -#: ../../../../docs/common_information/introduction.rst:20 +#: ../../../../docs/common_information/introduction.rst:26 msgid "Submission of all tasks is mandatory to pass the course." msgstr "Все задачи обязательны к выполнению" -#: ../../../../docs/common_information/introduction.rst:21 +#: ../../../../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 " -"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``" +"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``" msgstr "" "Задача, которая оказывается в мастер-ветке, продолжает проверяться. Если " -"задача упала (падение теста) в мастере, она отключается, и запись об этом " -"добавляется в таблицу результатов. Все отключенные (не исправленные) задания " -"в конце семестра приведут к обнулению баллов за их выполнение. Можно " -"увидеть, что ваша задача является отключенной, по следующему признаку: имя " -"директории вашей задачи будет изменено с ``seq/nesterov_a_vector_sum`` на " -"``seq/nesterov_a_vector_sum_disabled``" - -#: ../../../../docs/common_information/introduction.rst:28 +"задача упала (падение теста) в мастере, она отключается, и запись об этом" +" добавляется в таблицу результатов. Все отключенные (не исправленные) " +"задания в конце семестра приведут к обнулению баллов за их выполнение. " +"Можно увидеть, что ваша задача является отключенной, по следующему " +"признаку: имя директории вашей задачи будет изменено с " +"``seq/nesterov_a_vector_sum`` на ``seq/nesterov_a_vector_sum_disabled``" + +#: ../../../../docs/common_information/introduction.rst:34 msgid "Communication" msgstr "Коммуникации" -#: ../../../../docs/common_information/introduction.rst:30 +#: ../../../../docs/common_information/introduction.rst:36 msgid "Telegram channel — announcements and quick updates" msgstr "Канал в Telegram — объявления и быстрые обновления" -#: ../../../../docs/common_information/introduction.rst:31 +#: ../../../../docs/common_information/introduction.rst:37 msgid "GitHub Issues — repository problems and bug reports" msgstr "GitHub Issues — проблемы репозитория и отчёты об ошибках" -#: ../../../../docs/common_information/introduction.rst:32 +#: ../../../../docs/common_information/introduction.rst:38 msgid "Lessons — Q&A" msgstr "Занятия — вопросы и ответы" -#: ../../../../docs/common_information/introduction.rst:33 +#: ../../../../docs/common_information/introduction.rst:39 msgid "Feedback form — critical issues" msgstr "Форма обратной связи — критические вопросы" -#: ../../../../docs/common_information/introduction.rst:34 +#: ../../../../docs/common_information/introduction.rst:40 msgid "Email — non‑urgent matters" msgstr "Email — некритичные вопросы" -#: ../../../../docs/common_information/introduction.rst:36 -#, fuzzy +#: ../../../../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 "Все материалы по использованию репозитория будут представлены здесь:" + +#: ../../../../docs/common_information/introduction.rst:50 +msgid "" +"`Git for half an hour: A Beginner’s Guide `__" +msgstr "" +"`Git за полчаса: руководство для начинающих `__" + +#: ../../../../docs/common_information/introduction.rst:51 +#, python-format msgid "" -"\\* *All instructions, repositories, and tables may be updated during the " -"learning process for better usability. Be prepared for changes and check " -"updates periodically.*" +"`Getting Started with Git and GitHub: A Beginner’s Guide " +"`__" +msgstr "" +"`Знакомство с Git и GitHub: руководство для начинающих " +"`__" + +#: ../../../../docs/common_information/introduction.rst:52 +msgid "" +"`Git: A Quick Start Guide to Using Core Operations with Explanations " +"`__" +msgstr "" +"`Git. Быстрый старт по использованию основных операций с объяснениями " +"`__" + +#: ../../../../docs/common_information/introduction.rst:53 +msgid "" +"`Conflicts resolving in Git " +"`__" +msgstr "" +"`Разрешение конфликтов в Git " +"`__" + +#: ../../../../docs/common_information/introduction.rst:54 +msgid "`Google testing framework (gtest) `__" +msgstr "`Фреймворк модульного тестирования Google (gtest) `__" + +#: ../../../../docs/common_information/introduction.rst:55 +msgid "" +"`GoogleTest Primer " +"`__" +msgstr "`Введение в GoogleTest `__" + +#: ../../../../docs/common_information/introduction.rst:56 +msgid "`GitHub Actions documentation `__" +msgstr "`GitHub Actions документация `__" + +#: ../../../../docs/common_information/introduction.rst:57 +msgid "" +"`Parallel Programming Technologies. Message Passing Interface (MPI) " +"`__" +msgstr "" +"`Технологии параллельного программирования. Message Passing Interface " +"(MPI) `__" + +#: ../../../../docs/common_information/introduction.rst:58 +msgid "" +"`Typing and Layout in the System LaTeX `__" +msgstr "" +"`Набор и вёрстка в системе LaTeX `__" + +#: ../../../../docs/common_information/introduction.rst:59 +msgid "" +"`LaTeX for the beginners " +"`__" +msgstr "" +"`LaTeX для начинающих " +"`__" + +#: ../../../../docs/common_information/introduction.rst:60 +msgid "`What is OpenMP? `__" +msgstr "`Что такое OpenMP? `__" + +#: ../../../../docs/common_information/introduction.rst:61 +msgid "" +"`TBB-1 " +"`__" +msgstr "" +"`Средства разработки параллельных программ для систем с общей памятью. " +"Библиотека Intel Threading Building Blocks " +"`__" + +#: ../../../../docs/common_information/introduction.rst:62 +msgid "" +"`Writing Multithreaded Applications in C++ `__" +msgstr "" +"`Написание многопоточных приложений на C++ `__" + +#: ../../../../docs/common_information/introduction.rst:63 +msgid "" +"`Multithreading: New Features of the C++11 Standard " +"`__" +msgstr "" +"`Многопоточность, новые возможности стандарта C++11 " +"`__" + +#: ../../../../docs/common_information/introduction.rst:64 +msgid "" +"`Introduction to Parallel Computing " +"`__" +msgstr "" +"`Введение в параллельные вычисления " +"`__" + +#: ../../../../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 " +"and update them periodically!!!*" 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 c944481ac..2acecb54d 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/points.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/points.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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: ru\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/common_information/points.rst:2 msgid "Points" @@ -46,25 +46,19 @@ msgstr "Семестр процессов (MPI)" msgid "" "Task 1 — Total: 12 - Implementation: MPI 8 + Seq 2 - Performance: 0 - " "Report: 2" -msgstr "" -"Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 — " -"Отчёт: 2" +msgstr "Задача 1 — Итого: 12 — Реализация: MPI 8 + Seq 2 — Производительность: 0 — Отчёт: 2" #: ../../../../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" +msgstr "Задача 2 — Итого: 23 — Реализация: MPI 12 + Seq 3 — Производительность: 5 — Отчёт: 3" #: ../../../../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" +msgstr "Задача 3 — Итого: 35 — Реализация: MPI 16 + Seq 4 — Производительность: 10 — Отчёт: 5" #: ../../../../docs/common_information/points.rst:28 msgid "Semester total: 70" @@ -98,295 +92,352 @@ msgstr "all — Итого: 21 (S 10, A 8, R 3)" msgid "Semester total: 64" msgstr "Итого за семестр: 64" -#: ../../../../docs/common_information/points.rst:41 -msgid "" -"Legend: S — Solution (implementation), A — Acceleration (performance), R — " -"Report" -msgstr "" - -#: ../../../../docs/common_information/points.rst:44 +#: ../../../../docs/common_information/points.rst:42 msgid "Performance points mapping" msgstr "Маппинг баллов за производительность" -#: ../../../../docs/common_information/points.rst:46 +#: ../../../../docs/common_information/points.rst:44 msgid "" -"The ratio of efficiency percentage to points percentage (max 100%, min 0%):" -msgstr "" -"Соотношение процента эффективности к проценту баллов (макс. 100%, мин. 0%):" +"The ratio of efficiency percentage to points percentage (max 100%, min " +"0%):" +msgstr "Соотношение процента эффективности к проценту баллов (макс. 100%, мин. 0%):" -#: ../../../../docs/common_information/points.rst:48 +#: ../../../../docs/common_information/points.rst:46 msgid "If the score is not an integer, it is rounded up." msgstr "Если значение не целое, округляется в большую сторону." -#: ../../../../docs/common_information/points.rst:51 +#: ../../../../docs/common_information/points.rst:49 msgid "Efficiency (%)" msgstr "Эффективность" -#: ../../../../docs/common_information/points.rst:51 +#: ../../../../docs/common_information/points.rst:49 msgid "Points percentage" msgstr "Процент баллов за производительность" -#: ../../../../docs/common_information/points.rst:53 +#: ../../../../docs/common_information/points.rst:51 msgid ">= 50%" msgstr ">= 50%" -#: ../../../../docs/common_information/points.rst:53 +#: ../../../../docs/common_information/points.rst:51 msgid "100%" msgstr "100%" -#: ../../../../docs/common_information/points.rst:55 +#: ../../../../docs/common_information/points.rst:53 msgid "[45, 50)" msgstr "[45, 50)" -#: ../../../../docs/common_information/points.rst:55 +#: ../../../../docs/common_information/points.rst:53 msgid "90%" msgstr "90%" -#: ../../../../docs/common_information/points.rst:57 +#: ../../../../docs/common_information/points.rst:55 msgid "[42, 45)" msgstr "[42, 45)" -#: ../../../../docs/common_information/points.rst:57 +#: ../../../../docs/common_information/points.rst:55 msgid "80%" msgstr "80%" -#: ../../../../docs/common_information/points.rst:59 +#: ../../../../docs/common_information/points.rst:57 msgid "[40, 42)" msgstr "[40, 42)" -#: ../../../../docs/common_information/points.rst:59 +#: ../../../../docs/common_information/points.rst:57 msgid "70%" msgstr "70%" -#: ../../../../docs/common_information/points.rst:61 +#: ../../../../docs/common_information/points.rst:59 msgid "[37, 40)" msgstr "[37, 40)" -#: ../../../../docs/common_information/points.rst:61 +#: ../../../../docs/common_information/points.rst:59 msgid "60%" msgstr "60%" -#: ../../../../docs/common_information/points.rst:63 +#: ../../../../docs/common_information/points.rst:61 msgid "[35, 37)" msgstr "[35, 37)" -#: ../../../../docs/common_information/points.rst:63 +#: ../../../../docs/common_information/points.rst:61 msgid "50%" msgstr "50%" -#: ../../../../docs/common_information/points.rst:65 +#: ../../../../docs/common_information/points.rst:63 msgid "[32, 35)" msgstr "[32, 35)" -#: ../../../../docs/common_information/points.rst:65 +#: ../../../../docs/common_information/points.rst:63 msgid "40%" msgstr "40%" -#: ../../../../docs/common_information/points.rst:67 +#: ../../../../docs/common_information/points.rst:65 msgid "[30, 32)" msgstr "[30, 32)" -#: ../../../../docs/common_information/points.rst:67 +#: ../../../../docs/common_information/points.rst:65 msgid "30%" msgstr "30%" -#: ../../../../docs/common_information/points.rst:69 +#: ../../../../docs/common_information/points.rst:67 msgid "[27, 30)" msgstr "[27, 30)" -#: ../../../../docs/common_information/points.rst:69 +#: ../../../../docs/common_information/points.rst:67 msgid "20%" msgstr "20%" -#: ../../../../docs/common_information/points.rst:71 +#: ../../../../docs/common_information/points.rst:69 msgid "[25, 27)" msgstr "[25, 27)" -#: ../../../../docs/common_information/points.rst:71 +#: ../../../../docs/common_information/points.rst:69 msgid "10%" msgstr "10%" -#: ../../../../docs/common_information/points.rst:73 +#: ../../../../docs/common_information/points.rst:71 msgid "< 25%" msgstr "< 25%" -#: ../../../../docs/common_information/points.rst:73 +#: ../../../../docs/common_information/points.rst:71 msgid "0%" msgstr "0%" -#: ../../../../docs/common_information/points.rst:77 +#: ../../../../docs/common_information/points.rst:75 msgid "Report" msgstr "Отчёт" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:78 msgid "Completeness" msgstr "Наличие всех требуемых пунктов" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:78 msgid "Text Quality" msgstr "Качество текста" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:78 msgid "Formatting Quality" msgstr "Качество оформления" -#: ../../../../docs/common_information/points.rst:80 +#: ../../../../docs/common_information/points.rst:78 msgid "Total" msgstr "Итог" -#: ../../../../docs/common_information/points.rst:82 -#: ../../../../docs/common_information/points.rst:93 -#: ../../../../docs/common_information/points.rst:105 +#: ../../../../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:82 +#: ../../../../docs/common_information/points.rst:80 msgid "2.5" msgstr "2.5" -#: ../../../../docs/common_information/points.rst:82 +#: ../../../../docs/common_information/points.rst:80 msgid "10" msgstr "10" -#: ../../../../docs/common_information/points.rst:86 +#: ../../../../docs/common_information/points.rst:84 msgid "Conversion to grade" msgstr "Перевод в оценку" -#: ../../../../docs/common_information/points.rst:88 +#: ../../../../docs/common_information/points.rst:86 msgid "5-point scale" msgstr "5-балльная шкала" -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Points range" msgstr "Диапозон баллов" -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Exam Assessment" msgstr "Экзаменационная оценка" -#: ../../../../docs/common_information/points.rst:91 -#: ../../../../docs/common_information/points.rst:102 +#: ../../../../docs/common_information/points.rst:89 +#: ../../../../docs/common_information/points.rst:100 msgid "Student Pass" msgstr "Зачет" -#: ../../../../docs/common_information/points.rst:93 -#, fuzzy -msgid "[92, 100]" -msgstr "[99, 100]" +#: ../../../../docs/common_information/points.rst:91 +msgid "[87, 100]" +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:94 -#: ../../../../docs/common_information/points.rst:95 +#: ../../../../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 -#: ../../../../docs/common_information/points.rst:107 -#: ../../../../docs/common_information/points.rst:108 msgid "Passed" msgstr "Зачет" -#: ../../../../docs/common_information/points.rst:94 -#, fuzzy -msgid "[70, 92)" -msgstr "[70, 82)" +#: ../../../../docs/common_information/points.rst:92 +msgid "[70, 87)" +msgstr "[70, 87)" -#: ../../../../docs/common_information/points.rst:94 -#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:92 +#: ../../../../docs/common_information/points.rst:105 msgid "4" msgstr "4" -#: ../../../../docs/common_information/points.rst:95 -#: ../../../../docs/common_information/points.rst:108 +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:106 msgid "[50, 70)" msgstr "[50, 70)" -#: ../../../../docs/common_information/points.rst:95 -#: ../../../../docs/common_information/points.rst:108 +#: ../../../../docs/common_information/points.rst:93 +#: ../../../../docs/common_information/points.rst:106 msgid "3" msgstr "3" -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "< 50" msgstr "< 50" -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "2" msgstr "2" -#: ../../../../docs/common_information/points.rst:96 -#: ../../../../docs/common_information/points.rst:109 +#: ../../../../docs/common_information/points.rst:94 +#: ../../../../docs/common_information/points.rst:107 msgid "Not Passed" msgstr "Незачет" -#: ../../../../docs/common_information/points.rst:99 +#: ../../../../docs/common_information/points.rst:97 msgid "7-point scale (current)" msgstr "7-балльная шкала (текущая)" -#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:102 msgid "[99, 100]" msgstr "[99, 100]" -#: ../../../../docs/common_information/points.rst:104 +#: ../../../../docs/common_information/points.rst:102 msgid "5.5" msgstr "5.5" -#: ../../../../docs/common_information/points.rst:105 +#: ../../../../docs/common_information/points.rst:103 msgid "[92, 99)" msgstr "[92, 99)" -#: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:104 msgid "[82, 92)" msgstr "[82, 92)" -#: ../../../../docs/common_information/points.rst:106 +#: ../../../../docs/common_information/points.rst:104 msgid "4.5" msgstr "4.5" -#: ../../../../docs/common_information/points.rst:107 +#: ../../../../docs/common_information/points.rst:105 msgid "[70, 82)" msgstr "[70, 82)" -#: ../../../../docs/common_information/points.rst:113 +#: ../../../../docs/common_information/points.rst:111 msgid "Penalties" msgstr "Штрафные санкции" -#: ../../../../docs/common_information/points.rst:115 -#, fuzzy -msgid "A deadline will be set for each task." +#: ../../../../docs/common_information/points.rst:113 +msgid "A deadline will be set for each version." msgstr "Для каждой версии будет установлен свой крайний срок сдачи." -#: ../../../../docs/common_information/points.rst:116 +#: ../../../../docs/common_information/points.rst:114 msgid "1 point is deducted from the version’s score for each day of delay." msgstr "За каждый день просрочки из оценки версии вычитается 1 балл." -#: ../../../../docs/common_information/points.rst:117 -#, fuzzy +#: ../../../../docs/common_information/points.rst:115 msgid "" -"A task is considered accepted when it is merged into the default branch " +"A task is considered submitted when it is merged into the default branch " "after a successful CI pipeline." -msgstr "" -"Задание считается сданным, когда оно влито в ветку по умолчанию после " -"успешного прохождения CI." +msgstr "Задание считается сданным, когда оно влито в ветку по умолчанию после успешного прохождения CI." -#: ../../../../docs/common_information/points.rst:118 -#, fuzzy +#: ../../../../docs/common_information/points.rst:116 msgid "" -"The submission time is defined as the timestamp of the last meaningful " -"commit (not an empty commit to re-trigger CI jobs)." -msgstr "" -"Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." +"The submission time is defined as the timestamp of the last successful CI" +" commit." +msgstr "Время сдачи — это метка времени последнего коммита, успешно прошедшего CI." -#: ../../../../docs/common_information/points.rst:121 +#: ../../../../docs/common_information/points.rst:119 msgid "Comments" msgstr "Комментарии" -#: ../../../../docs/common_information/points.rst:123 -msgid "" -"One week before the end of the semester, the repository is closed for final " -"assessment." +#: ../../../../docs/common_information/points.rst:121 +msgid "It is forbidden to write the report if all tasks are not completed." msgstr "" -"За неделю до конца семестра репозиторий закрывается для подведения итогов." +"Запрещено писать отчет, если не выполнены все задания, которые связаны с " +"этим отчетом." + +#: ../../../../docs/common_information/points.rst:122 +msgid "" +"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/report.po b/docs/locale/ru/LC_MESSAGES/common_information/report.po index 21a1dd134..16d5aa117 100644 --- a/docs/locale/ru/LC_MESSAGES/common_information/report.po +++ b/docs/locale/ru/LC_MESSAGES/common_information/report.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/common_information/report.rst:2 msgid "Report" @@ -32,29 +32,21 @@ 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``." +"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) баллов по этой " -"задаче (см. «Баллы»)." +"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 -#, fuzzy msgid "" -"Write the report concisely with enough detail to reproduce the results " -"(environment, commands, data generation). Use English or Russian " -"consistently." -msgstr "" -"Пишите отчёт кратко и воспроизводимо. Используйте один язык последовательно " -"(русский или английский)." +"Write the report in a concise, reproducible manner. Use English or " +"Russian consistently." +msgstr "Пишите отчёт кратко и воспроизводимо. Используйте один язык последовательно (русский или английский)." #: ../../../../docs/common_information/report.rst:12 msgid "Report points" @@ -106,99 +98,202 @@ msgstr "Описание алгоритма (базового/последова #: ../../../../docs/common_information/report.rst:25 msgid "Parallelization Scheme (MPI topology/data flow or threads scheduling)" -msgstr "" -"Схема распараллеливания (для MPI — топология/обмены, для потоков — " -"декомпозиция и планирование)" +msgstr "Схема распараллеливания (для MPI — топология/обмены, для потоков — декомпозиция и планирование)" #: ../../../../docs/common_information/report.rst:26 +msgid "Implementation Details per technology used (only those in your semester)" +msgstr "Детали реализации по используемым технологиям (только требуемые в семестре)" + +#: ../../../../docs/common_information/report.rst:27 msgid "" -"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/компилятор/тип сборки; " -"числа потоков/процессов) — Таблицы/графики времени; метрики ускорения/" -"эффективности — Описание проверки корректности" +"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/компилятор/тип сборки; числа потоков/процессов) — Таблицы/графики времени; метрики ускорения/эффективности — Описание проверки корректности" -#: ../../../../docs/common_information/report.rst:30 -#, fuzzy -msgid "Conclusions (what worked, what didn’t)" +#: ../../../../docs/common_information/report.rst:31 +msgid "Conclusions (what worked, what didn’t, further work)" msgstr "Выводы (что получилось, ограничения, дальнейшие работы)" -#: ../../../../docs/common_information/report.rst:31 +#: ../../../../docs/common_information/report.rst:32 msgid "References (articles, docs; provide links)" msgstr "Источники (статьи, документация; ссылки)" -#: ../../../../docs/common_information/report.rst:32 -#, fuzzy -msgid "Appendix (optional code snippets)" +#: ../../../../docs/common_information/report.rst:33 +msgid "Appendix (optional code snippets; keep readable)" msgstr "Приложение (небольшие фрагменты кода; сохраняйте читаемость)" -#: ../../../../docs/common_information/report.rst:35 +#: ../../../../docs/common_information/report.rst:36 msgid "Evaluation criteria" msgstr "Критерии оценки" -#: ../../../../docs/common_information/report.rst:36 +#: ../../../../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 "" -"Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны — " -"есть подтверждение корректности и результатов производительности" +msgstr "Полнота — все пункты из рекомендуемой структуры присутствуют и осмысленны — есть подтверждение корректности и результатов производительности" -#: ../../../../docs/common_information/report.rst:39 +#: ../../../../docs/common_information/report.rst:40 msgid "" -"Text Quality - Clarity, coherence, correct terminology; acceptable language " -"quality" -msgstr "" -"Качество текста — ясность, связность, корректная терминология; приемлемое " -"качество языка" +"Text Quality - Clarity, coherence, correct terminology; acceptable " +"language quality" +msgstr "Качество текста — ясность, связность, корректная терминология; приемлемое качество языка" -#: ../../../../docs/common_information/report.rst:41 +#: ../../../../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‑заголовки, списки, таблицы, блоки " -"кода — рисунки/графики с подписями и относительными путями; читаемое " -"форматирование" +"Formatting Quality - Proper Markdown headings, lists, tables, fenced code" +" blocks - Figures/plots with captions and relative paths; readable " +"formatting" +msgstr "Качество оформления — корректные Markdown‑заголовки, списки, таблицы, блоки кода — рисунки/графики с подписями и относительными путями; читаемое форматирование" -#: ../../../../docs/common_information/report.rst:46 +#: ../../../../docs/common_information/report.rst:47 msgid "Notes" msgstr "Примечания" -#: ../../../../docs/common_information/report.rst:47 -msgid "" -"Reports are reviewed online in the Pull Request. The final grade is based on " -"the submitted version that passes the review." -msgstr "" -"Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по " -"версии, прошедшей ревью." - #: ../../../../docs/common_information/report.rst:48 -#, fuzzy msgid "" -"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." -msgstr "" -"Если задача окажется в «синей зоне» к концу семестра (например, падение в " -"master), отчётные баллы по этой задаче обнуляются." +"Reports are reviewed online in the Pull Request. The final grade is based" +" on the submitted version that passes the review." +msgstr "Отчёты проверяются онлайн в Pull Request. Итоговая оценка ставится по версии, прошедшей ревью." #: ../../../../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 "Если задача окажется в «синей зоне» к концу семестра (например, падение в master), отчётные баллы по этой задаче обнуляются." + +#: ../../../../docs/common_information/report.rst:50 +msgid "" "Plagiarism is prohibited; identical or near‑duplicate reports will be " "rejected." -msgstr "" -"Плагиат запрещён; совпадающие или почти совпадающие отчёты будут отклонены." +msgstr "Плагиат запрещён; совпадающие или почти совпадающие отчёты будут отклонены." -#: ../../../../docs/common_information/report.rst:52 +#: ../../../../docs/common_information/report.rst:55 msgid "Markdown template (report.md)" msgstr "Шаблон Markdown (report.md)" -#: ../../../../docs/common_information/report.rst:54 +#: ../../../../docs/common_information/report.rst:57 msgid "" -"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``. Пути к файлам " -"указывайте относительно папки задачи (для изображений/данных)." +"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/index.po b/docs/locale/ru/LC_MESSAGES/index.po index ad8569d67..083cf835b 100644 --- a/docs/locale/ru/LC_MESSAGES/index.po +++ b/docs/locale/ru/LC_MESSAGES/index.po @@ -12,8 +12,7 @@ msgstr "" "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" @@ -41,3 +40,6 @@ 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 514c09904..ce7c244c7 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/api.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/api.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 17:17+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" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/api.rst:2 msgid "API Reference" @@ -72,3 +72,27 @@ msgstr "Вспомогательный модуль (модуль с утили #: ../../../../docs/user_guide/api.rst:26 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 81947fec0..558ba494a 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/build.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/build.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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: ru\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/build.rst:2 msgid "Build the Project with ``CMake``" @@ -57,14 +57,13 @@ msgstr "``-D USE_PERF_TESTS=ON`` включает тесты на произво #: ../../../../docs/user_guide/build.rst:29 msgid "" "``-D PPC_TASKS=all`` builds every task (default). Pass one task or a " -"semicolon list, for example ``-D PPC_TASKS=example``, to limit the build. " -"Meta-layout tasks with ``threads`` and ``processes`` subtrees are built as " -"one selected task." +"semicolon list, for example ``-D PPC_TASKS=\"example_threads;example_processes\"``, " +"to limit the build." msgstr "" -"``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну задачу " -"или список через точку с запятой, например ``-D PPC_TASKS=example``, чтобы " -"ограничить сборку. Задачи с meta-layout и поддеревьями ``threads`` и " -"``processes`` собираются как одна выбранная задача." +"``-D PPC_TASKS=all`` собирает все задачи (по умолчанию). Укажите одну " +"задачу или список через точку с запятой, например " +"``-D PPC_TASKS=\"example_threads;example_processes\"``, чтобы ограничить " +"сборку." #: ../../../../docs/user_guide/build.rst:32 msgid "" @@ -80,11 +79,12 @@ msgstr "``-D CMAKE_BUILD_TYPE=Release`` нормальная сборка (по #: ../../../../docs/user_guide/build.rst:35 msgid "" -"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers or " -"running ``valgrind`` to keep debug information." +"``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` recommended when using sanitizers " +"or running ``valgrind`` to keep debug information." msgstr "" "``-D CMAKE_BUILD_TYPE=RelWithDebInfo`` рекомендуется при использовании " -"санитайзеров или запуске ``valgrind`` для сохранения отладочной информации." +"санитайзеров или запуске ``valgrind`` для сохранения отладочной " +"информации." #: ../../../../docs/user_guide/build.rst:37 msgid "``-D CMAKE_BUILD_TYPE=Debug`` for debugging sessions." @@ -93,8 +93,8 @@ msgstr "``-D CMAKE_BUILD_TYPE=Debug`` используется при отлад #: ../../../../docs/user_guide/build.rst:39 msgid "*A corresponding flag can be omitted if it's not needed.*" msgstr "" -"*Ряд CMake флагов может быть выключен, если они не требуются для выполнения " -"работы.*" +"*Ряд CMake флагов может быть выключен, если они не требуются для " +"выполнения работы.*" #: ../../../../docs/user_guide/build.rst:41 msgid "**Build the project**:" @@ -106,6 +106,10 @@ msgstr "**Запуск тестов**:" #: ../../../../docs/user_guide/build.rst:49 msgid "Prefer the helper runner described in ``User Guide → CI``." -msgstr "" -"Рекомендуется использовать вспомогательный раннер, описанный в «Инструкция → " -"CI»." +msgstr "Рекомендуется использовать вспомогательный раннер, описанный в «Инструкция → CI»." + +#~ msgid "Navigate to a source code folder." +#~ msgstr "Перейдите в корень директории проекта" + +#~ 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 807996fd2..359f65d04 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/ci.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/ci.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/ci.rst:2 msgid "Continuous Integration (CI)" @@ -32,16 +32,17 @@ 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)." +"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 "" -"Ваш pull request должен пройти все обязательные проверки CI перед ревью/" -"слиянием. Конвейер проверяет форматирование и статический анализ, собирает " -"проект на всех платформах, запускает функциональные тесты (потоки и MPI), " -"измеряет производительность, собирает документацию и публикует артефакты " -"(отчёт по покрытию, документация, табло)." +"Ваш pull request должен пройти все обязательные проверки CI перед " +"ревью/слиянием. Конвейер проверяет форматирование и статический анализ, " +"собирает проект на всех платформах, запускает функциональные тесты " +"(потоки и MPI), измеряет производительность, собирает документацию и " +"публикует артефакты (отчёт по покрытию, документация, табло)." #: ../../../../docs/user_guide/ci.rst:9 msgid "High‑level pipeline" @@ -59,67 +60,66 @@ msgstr "" 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``)." +"``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``)." +"Сборки и тесты на платформах (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``)." #: ../../../../docs/user_guide/ci.rst:15 msgid "" -"Sanitizers (Ubuntu/Clang) — Address/UB/Leak; tests use ``PPC_ASAN_RUN=1`` to " -"skip valgrind." +"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." #: ../../../../docs/user_guide/ci.rst:17 msgid "" -"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to Codecov " -"and uploads ``cov-report`` (HTML)." +"Coverage (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; publishes to " +"Codecov and uploads ``cov-report`` (HTML)." msgstr "" -"Покрытие (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; публикация в Codecov " -"и загрузка артефакта ``cov-report`` (HTML)." +"Покрытие (Ubuntu/GCC) — ``-D USE_COVERAGE=ON`` + gcovr; публикация в " +"Codecov и загрузка артефакта ``cov-report`` (HTML)." #: ../../../../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)." +"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)." +"Производительность (perf) — ``scripts/generate_perf_results.sh`` " +"формирует ``build/perf_stat_dir``; загружаются артефакты ``perf-stat`` " +"(Linux) и ``perf-stat-macos`` (macOS)." #: ../../../../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 "" -"Pages (документация и табло) — сборка Doxygen XML и Sphinx (EN+RU) + табло; " -"в ветке ``master`` деплой вместе с покрытием на GitHub Pages." +"Pages (документация и табло) — сборка Doxygen XML и Sphinx (EN+RU) + " +"табло; в ветке ``master`` деплой вместе с покрытием на GitHub Pages." #: ../../../../docs/user_guide/ci.rst:23 msgid "" -"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU " -"pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " +"Security and static analysis — clang‑tidy on PRs (avoid ``NOLINT``/``IWYU" +" pragma``), task backend API checks, scheduled CodeQL (C++/Python) and " "OpenSSF Scorecard." msgstr "" -"Безопасность и статический анализ — clang‑tidy в PR (избегайте ``NOLINT``/" -"``IWYU pragma``), проверки API для backend'ов задач, плановые CodeQL (C++/" -"Python) и OpenSSF Scorecard." +"Безопасность и статический анализ — clang‑tidy в PR (избегайте " +"``NOLINT``/``IWYU pragma``), проверки API для backend'ов задач, плановые " +"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. Image is auto-generated by ``scripts/" -"jobs_graph.py``:" -msgstr "" +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)" @@ -157,8 +157,8 @@ msgstr "``PPC_ASAN_RUN``" #: ../../../../docs/user_guide/ci.rst:45 msgid "" -"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs (default " -"``0``)." +"Set to ``1`` when sanitizers are enabled to skip ``valgrind`` runs " +"(default ``0``)." msgstr "" "Установите ``1``, если включены санитайзеры, чтобы пропустить запуск под " "``valgrind`` (по умолчанию ``0``)." @@ -170,18 +170,20 @@ 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``)." +"Установите ``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)" +"(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)." +"(OpenMP/TBB/std::thread); — ``--running-type=processes`` — MPI‑тесты; — " +"``--running-type=performance`` — бенчмарки производительности (как в CI " +"perf)." #: ../../../../docs/user_guide/ci.rst:55 msgid "Examples:" @@ -190,13 +192,14 @@ 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." +"sequentially. - ``--additional-mpi-args`` passes extra launcher flags " +"(e.g., ``--oversubscribe``). - ``--verbose`` prints every executed " +"command." msgstr "" "Опции: — ``--counts`` запускает тесты последовательно для нескольких " "значений потоков/процессов; — ``--additional-mpi-args`` передаёт " -"дополнительные флаги MPI‑ланчеру (например, ``--oversubscribe``); — ``--" -"verbose`` печатает каждую выполняемую команду." +"дополнительные флаги MPI‑ланчеру (например, ``--oversubscribe``); — " +"``--verbose`` печатает каждую выполняемую команду." #: ../../../../docs/user_guide/ci.rst:77 msgid "Coverage and sanitizers locally" @@ -204,20 +207,21 @@ 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``." +"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``." +"Санитайзеры (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)." +"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``)." +"Покрытие (Linux/GCC): конфигурация с ``-D USE_COVERAGE=ON``, запуск " +"тестов, затем генерация HTML через ``gcovr`` (см. команду в CI job ``gcc-" +"build-codecov``)." #: ../../../../docs/user_guide/ci.rst:82 msgid "Docs and scoreboard artifacts" @@ -225,20 +229,22 @@ 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``." +"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``." +"Документация: сначала запустите 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." +"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``." +"соберите цель табло или воспользуйтесь локально ``python3 " +"scoreboard/main.py``." #: ../../../../docs/user_guide/ci.rst:87 msgid "Troubleshooting" @@ -249,14 +255,14 @@ msgid "" "Pre-commit fails: run ``pre-commit run -a`` locally (install with ``pre-" "commit install``) and commit fixes." msgstr "" -"Падает pre-commit: запустите локально ``pre-commit run -a`` (предварительно " -"``pre-commit install``) и закоммитьте исправления." +"Падает pre-commit: запустите локально ``pre-commit run -a`` " +"(предварительно ``pre-commit install``) и закоммитьте исправления." #: ../../../../docs/user_guide/ci.rst:89 msgid "" -"Static analysis fails: address clang-tidy comments; do not use ``NOLINT``/" -"``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs in their " -"matching task backend directories." +"Static analysis fails: address clang-tidy comments; do not use " +"``NOLINT``/``IWYU pragma`` in task code; keep OpenMP/TBB/MPI/std::thread APIs " +"in their matching task backend directories." msgstr "" "Падает статический анализ: поправьте замечания clang-tidy; не используйте " "``NOLINT``/``IWYU pragma`` в коде задач; держите API OpenMP/TBB/MPI/" @@ -273,36 +279,37 @@ 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." +"(:doc:`environment_variables`) like " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; avoid sleeps/randomness." msgstr "" -"Превышены лимиты времени: уменьшите объёмы данных; используйте переменные " -"окружения (:doc:`environment_variables`) вроде ``PPC_TASK_MAX_TIME``/" -"``PPC_PERF_MAX_TIME``; избегайте задержек/случайностей." +"Превышены лимиты времени: уменьшите объёмы данных; используйте переменные" +" окружения (:doc:`environment_variables`) вроде " +"``PPC_TASK_MAX_TIME``/``PPC_PERF_MAX_TIME``; избегайте " +"задержек/случайностей." #: ../../../../docs/user_guide/ci.rst:92 msgid "" "MPI runs fail locally: set ``PPC_NUM_PROC`` and try ``--additional-mpi-" "args=\\\"--oversubscribe\\\"``." msgstr "" -"Проблемы с локальным запуском MPI: задайте ``PPC_NUM_PROC`` и попробуйте ``--" -"additional-mpi-args=\"--oversubscribe\"``." +"Проблемы с локальным запуском MPI: задайте ``PPC_NUM_PROC`` и попробуйте " +"``--additional-mpi-args=\"--oversubscribe\"``." #: ../../../../docs/user_guide/ci.rst:93 msgid "" -"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before Sphinx " -"targets." +"Docs build fails: fix RST warnings; run ``doxygen Doxyfile`` before " +"Sphinx targets." msgstr "" -"Проблемы со сборкой документации: исправьте предупреждения RST; перед целями " -"Sphinx выполните ``doxygen Doxyfile``." +"Проблемы со сборкой документации: исправьте предупреждения 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``) и длительность в пределах лимитов." +"Падает job производительности: убедитесь, что ровно два перфтеста " +"(``task`` и ``pipeline``) и длительность в пределах лимитов." #: ../../../../docs/user_guide/ci.rst:97 msgid "Local clang-tidy and gcovr examples" @@ -322,46 +329,109 @@ msgstr "Подсказки по инструментам (версии и уст #: ../../../../docs/user_guide/ci.rst:143 msgid "" -"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to avoid " -"mismatches. - The helper may be named ``clang-tidy-22`` or ``run-clang-" -"tidy-22`` on some systems." -msgstr "" -"Версия clang-tidy — в CI используется clang-tidy 22. Локально лучше " -"использовать ту же версию, чтобы избежать расхождений. На некоторых системах " -"помощник может называться ``clang-tidy-22`` или ``run-clang-tidy-22``." +"clang-tidy version - CI uses clang-tidy 22. Prefer the same locally to " +"avoid mismatches. - The helper may be named ``clang-tidy-22`` or ``run-" +"clang-tidy-22`` on some systems." +msgstr "Версия clang-tidy — в CI используется clang-tidy 22. Локально лучше использовать ту же версию, чтобы избежать расхождений. На некоторых системах помощник может называться ``clang-tidy-22`` или ``run-clang-tidy-22``." #: ../../../../docs/user_guide/ci.rst:147 -#, fuzzy msgid "" "Linux - clang-tidy: install from your distro (e.g., ``apt install clang-" -"tidy-22``) 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-22``) или используйте Docker‑образ курса. gcovr: " -"``python3 -m pip install gcovr`` либо пакет дистрибутива. GCC: при сборке с " -"GCC 14 используйте ``gcov-14`` (как в CI)." +"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-22``) или используйте 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``." +"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." +"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/submit_work.po b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po index b3ce677a3..f32859fb5 100644 --- a/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po +++ b/docs/locale/ru/LC_MESSAGES/user_guide/submit_work.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Parallel Programming Course \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-06-03 16:19+0200\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" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.18.0\n" +"Generated-By: Babel 2.17.0\n" #: ../../../../docs/user_guide/submit_work.rst:2 msgid "How to create, open, and submit your work" @@ -40,8 +40,7 @@ msgid "Repository and branch" msgstr "Репозиторий и ветка" #: ../../../../docs/user_guide/submit_work.rst:8 -msgid "" -"Fork the semester repository for your group (processes/threads, program)." +msgid "Fork the semester repository for your group (processes/threads, program)." msgstr "" "Сделайте форк семестрового репозитория вашей группы (процессы/потоки, " "направление)." @@ -52,7 +51,8 @@ msgid "" "``__`` (e.g., ``nesterov_a_elem_vec_sum``)." msgstr "" "Создайте ветку, имя которой точно совпадает с папкой вашей задачи: " -"``<фамилия>_<инициал>_<краткое>`` (например, ``nesterov_a_elem_vec_sum``)." +"``<фамилия>_<инициал>_<краткое>`` (например, " +"``nesterov_a_elem_vec_sum``)." #: ../../../../docs/user_guide/submit_work.rst:13 msgid "Prerequisites" @@ -70,7 +70,8 @@ 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." +"If you work from a fork, clone your fork and set the course repo as " +"upstream." msgstr "" "Если вы работаете из форка, клонируйте свой форк и добавьте основной " "репозиторий курса как upstream." @@ -94,17 +95,19 @@ msgstr "``common/include/common.hpp`` — общие типы и `BaseTask`:" #: ../../../../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)" +"Processes (MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, " +"``mpi/src`` - Threads: ``seq``, ``omp``, ``tbb``, ``stl`` (same " +"include/src split)" msgstr "" -"Реализации технологий (добавляйте только нужные в семестре): — Процессы (MPI/" -"SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` — Потоки: " -"``seq``, ``omp``, ``tbb``, ``stl`` (аналогичное разделение include/src)" +"Реализации технологий (добавляйте только нужные в семестре): — Процессы " +"(MPI/SEQ): ``seq/include``, ``seq/src``, ``mpi/include``, ``mpi/src`` — " +"Потоки: ``seq``, ``omp``, ``tbb``, ``stl`` (аналогичное разделение " +"include/src)" #: ../../../../docs/user_guide/submit_work.rst:35 msgid "" -"Each implementation defines a class derived from ``BaseTask`` and overrides " -"``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " +"Each implementation defines a class derived from ``BaseTask`` and " +"overrides ``ValidationImpl``, ``PreProcessingImpl``, ``RunImpl``, " "``PostProcessingImpl``. Also add:" msgstr "" "Каждая реализация определяет класс, унаследованный от ``BaseTask``, и " @@ -117,26 +120,26 @@ 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`` — тесты производительности на базе " +"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." +msgid "Use ``PPC_ID_`` to resolve resources from ``data/`` when needed." msgstr "" -"При необходимости используйте ``PPC_ID_`` для доступа к ресурсам из " -"``data/``." +"При необходимости используйте ``PPC_ID_`` для доступа к ресурсам" +" из ``data/``." #: ../../../../docs/user_guide/submit_work.rst:92 msgid "Performance tests example:" @@ -148,12 +151,12 @@ msgstr "Советы по тестам" #: ../../../../docs/user_guide/submit_work.rst:101 msgid "" -"Keep tests deterministic and under time limits; prefer env vars (see ``User " -"Guide → Environment Variables``) over sleeps." +"Keep tests deterministic and under time limits; prefer env vars (see " +"``User Guide → Environment Variables``) over sleeps." msgstr "" "Делайте тесты детерминированными и укладывающимися в лимиты времени; " -"используйте переменные окружения (см. «Инструкция → Переменные окружения») " -"вместо задержек." +"используйте переменные окружения (см. «Инструкция → Переменные " +"окружения») вместо задержек." #: ../../../../docs/user_guide/submit_work.rst:102 msgid "Use ``PPC_ID_`` to access files from ``data/``." @@ -164,26 +167,22 @@ msgid "" "Cover edge cases in functional tests; add exactly two performance test " "styles (``task`` and ``pipeline``) inside the suite." msgstr "" -"Покрывайте крайние случаи в функциональных тестах; добавьте ровно два стиля " -"перфтестов (``task`` и ``pipeline``) внутри набора." +"Покрывайте крайние случаи в функциональных тестах; добавьте ровно два " +"стиля перфтестов (``task`` и ``pipeline``) внутри набора." #: ../../../../docs/user_guide/submit_work.rst:105 msgid "``data/`` — optional input files for tests (e.g., images)." -msgstr "" -"``data/`` — опциональные входные файлы для тестов (например, изображения)." +msgstr "``data/`` — опциональные входные файлы для тестов (например, изображения)." #: ../../../../docs/user_guide/submit_work.rst:106 -msgid "" -"``settings.json`` — enable required technologies for your semester, e.g.:" +msgid "``settings.json`` — enable required technologies for your semester, e.g.:" msgstr "" -"``settings.json`` — включение необходимых технологий для вашего семестра, " -"например:" +"``settings.json`` — включение необходимых технологий для вашего семестра," +" например:" #: ../../../../docs/user_guide/submit_work.rst:112 -msgid "" -"``info.json`` — student metadata used in automation (scoreboard, macros):" -msgstr "" -"``info.json`` — данные студента для автоматизации (scoreboard, макросы):" +msgid "``info.json`` — student metadata used in automation (scoreboard, macros):" +msgstr "``info.json`` — данные студента для автоматизации (scoreboard, макросы):" #: ../../../../docs/user_guide/submit_work.rst:119 msgid "Build and local run" @@ -204,9 +203,9 @@ msgstr "Исполняемые файлы (где искать тесты)" #: ../../../../docs/user_guide/submit_work.rst:139 msgid "" "``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" +"tests first - ``ppc_func_tests`` — functional tests for all " +"tasks/technologies - ``ppc_perf_tests`` — performance tests for all " +"tasks/technologies" msgstr "" "Исполняемые файлы генерируются в ``build/bin`` (или ``install/bin`` при " "установке): - ``core_func_tests`` — тесты ядра библиотеки - " @@ -215,10 +214,11 @@ msgstr "" #: ../../../../docs/user_guide/submit_work.rst:144 msgid "" -"The runner applies gtest filters automatically to select technology suites." +"The runner applies gtest filters automatically to select technology " +"suites." msgstr "" -"Runner автоматически применяет gtest‑фильтры для выбора наборов тестов по " -"технологиям." +"Runner автоматически применяет gtest‑фильтры для выбора наборов тестов по" +" технологиям." #: ../../../../docs/user_guide/submit_work.rst:147 msgid "Pull Request" @@ -230,121 +230,91 @@ msgstr "Формат заголовка (пример):" #: ../../../../docs/user_guide/submit_work.rst:150 msgid "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" msgstr "" -"``<Фамилия Имя>. Технология . <Название задачи>. Вариант .``" +"``<Фамилия Имя>. Технология . <Название задачи>. Вариант " +".``" #: ../../../../docs/user_guide/submit_work.rst:152 msgid "" "Description should include: - Полное описание задачи; номер варианта; " -"используемая технология - Краткое описание реализации и отчёта - Чек-лист " -"(CI зелёный в форке, clang-format/clang-tidy пройдены, функциональные/перф " -"тесты ок, ветка названа как директория задачи, достоверность сведений)." +"используемая технология - Краткое описание реализации и отчёта - Чек-лист" +" (CI зелёный в форке, clang-format/clang-tidy пройдены, " +"функциональные/перф тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." msgstr "" "Описание должно включать: — Полное описание задачи; номер варианта; " -"используемую технологию — Краткое описание реализации и отчёта — Чек‑лист " -"(CI зелёный в форке, clang‑format/clang‑tidy пройдены, функциональные/" -"перф‑тесты ок, ветка названа как директория задачи, достоверность сведений)." +"используемую технологию — Краткое описание реализации и отчёта — Чек‑лист" +" (CI зелёный в форке, clang‑format/clang‑tidy пройдены, " +"функциональные/перф‑тесты ок, ветка названа как директория задачи, " +"достоверность сведений)." -#: ../../../../docs/user_guide/submit_work.rst:158 +#: ../../../../docs/user_guide/submit_work.rst:160 msgid "PR checklist template (body)" msgstr "Шаблон PR (чек‑лист)" -#: ../../../../docs/user_guide/submit_work.rst:181 +#: ../../../../docs/user_guide/submit_work.rst:208 msgid "Common pitfalls (read before pushing)" msgstr "Частые ошибки (прочтите перед отправкой)" -#: ../../../../docs/user_guide/submit_work.rst:182 -msgid "" -"Wrong folder/branch name. Must be ``__`` everywhere." +#: ../../../../docs/user_guide/submit_work.rst:209 +msgid "Wrong folder/branch name. Must be ``__`` everywhere." msgstr "" "Неверное имя папки/ветки. Должно быть ``<фамилия>_<инициал>_<краткое>`` " "везде." -#: ../../../../docs/user_guide/submit_work.rst:183 +#: ../../../../docs/user_guide/submit_work.rst:210 msgid "Missing or wrong ``GetStaticTypeOfTask`` value for a technology." -msgstr "" -"Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." +msgstr "Отсутствует или неверное значение ``GetStaticTypeOfTask`` для технологии." -#: ../../../../docs/user_guide/submit_work.rst:184 +#: ../../../../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:185 -msgid "" -"``settings.json`` doesn’t enable a required technology — tests won’t run." -msgstr "" -"В ``settings.json`` не включена нужная технология — тесты не запустятся." +#: ../../../../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:186 +#: ../../../../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:187 +#: ../../../../docs/user_guide/submit_work.rst:214 msgid "Performance tests count or naming deviates from the required patterns." -msgstr "" -"Количество или именование перфтестов отклоняется от требуемых шаблонов." +msgstr "Количество или именование перфтестов отклоняется от требуемых шаблонов." -#: ../../../../docs/user_guide/submit_work.rst:190 +#: ../../../../docs/user_guide/submit_work.rst:217 msgid "Useful examples to reference" msgstr "Полезные примеры для ориентирования" -#: ../../../../docs/user_guide/submit_work.rst:191 -msgid "Unified example: ``tasks/example``" -msgstr "Единый пример: ``tasks/example``" - -#: ../../../../docs/user_guide/submit_work.rst:192 +#: ../../../../docs/user_guide/submit_work.rst:218 msgid "" -"Shared example files: ``tasks/example/settings.json``, ``tasks/example/" -"info.json``, ``tasks/example/common``, ``tasks/example/data``" +"Processes: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" msgstr "" -"Общие файлы примера: ``tasks/example/settings.json``, ``tasks/example/" -"info.json``, ``tasks/example/common``, ``tasks/example/data``" +"Процессы: ``tasks/example_processes``, ``tasks/example_processes_2``, " +"``tasks/example_processes_3``" -#: ../../../../docs/user_guide/submit_work.rst:193 -#, python-brace-format -msgid "Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" -msgstr "Потоки: ``tasks/example/threads/{seq,omp,tbb,stl,all}``" +#: ../../../../docs/user_guide/submit_work.rst:219 +msgid "Threads: ``tasks/example_threads``" +msgstr "Потоки: ``tasks/example_threads``" -#: ../../../../docs/user_guide/submit_work.rst:194 +#: ../../../../docs/user_guide/submit_work.rst:221 msgid "" -"Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" -msgstr "" -"Процессы: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, " -"``tasks/example/processes/t3``" - -#: ../../../../docs/user_guide/submit_work.rst:195 -msgid "" -"Process tasks keep independent ``seq`` and ``mpi`` implementations under " -"each ``tN`` directory." -msgstr "" -"Задачи процессов хранят независимые реализации ``seq`` и ``mpi`` внутри " -"каждой директории ``tN``." - -#: ../../../../docs/user_guide/submit_work.rst:196 -msgid "" -"Example reports are tree-shaped: the root report links to section reports " -"and each implementation directory has its own ``report.md``." -msgstr "" -"Отчеты примера имеют древовидную структуру: корневой отчет ссылается на " -"отчеты секций, а каждая директория реализации содержит свой ``report.md``." - -#: ../../../../docs/user_guide/submit_work.rst:198 -msgid "" -"Work from your fork in a dedicated branch (not ``master``). Branch name must " -"match your task folder." +"Work from your fork in a dedicated branch (not ``master``). Branch name " +"must match your task folder." msgstr "" "Работайте из своего форка в отдельной ветке (не ``master``). Имя ветки " "должно совпадать с именем папки задачи." -#: ../../../../docs/user_guide/submit_work.rst:201 +#: ../../../../docs/user_guide/submit_work.rst:224 msgid "Notes" msgstr "Примечания" -#: ../../../../docs/user_guide/submit_work.rst:202 +#: ../../../../docs/user_guide/submit_work.rst:225 msgid "" "All classes should live in a unique namespace (e.g., " "``__``)." @@ -352,17 +322,180 @@ msgstr "" "Все классы должны находиться в уникальном пространстве имён (например, " "``<фамилия>_<инициал>_<краткое>``)." -#: ../../../../docs/user_guide/submit_work.rst:203 +#: ../../../../docs/user_guide/submit_work.rst:226 msgid "" -"Keep tests deterministic and within time limits; prefer env vars over sleeps." +"Keep tests deterministic and within time limits; prefer env vars over " +"sleeps." msgstr "" "Делайте тесты детерминированными и укладывающимися в лимиты времени; " "используйте переменные окружения вместо задержек." -#: ../../../../docs/user_guide/submit_work.rst:204 +#: ../../../../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." + +#~ 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 09ee1ca80..622c71263 100644 --- a/docs/user_guide/build.rst +++ b/docs/user_guide/build.rst @@ -13,7 +13,7 @@ Navigate to the project root. .. code-block:: bash - cmake -S . -B build -DPPC_TASKS=example -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release + cmake -S . -B build -DPPC_TASKS="example_threads;example_processes" -D USE_FUNC_TESTS=ON -D USE_PERF_TESTS=ON -D CMAKE_BUILD_TYPE=Release Optional: enable sanitizers for local debugging @@ -27,8 +27,8 @@ Navigate to the project root. - ``-D USE_FUNC_TESTS=ON`` enable functional tests. - ``-D USE_PERF_TESTS=ON`` enable performance tests. - ``-D PPC_TASKS=all`` builds every task (default). Pass one task or a semicolon list, - for example ``-D PPC_TASKS=example``, to limit the build. Meta-layout tasks - with ``threads`` and ``processes`` subtrees are built as one selected task. + for example ``-D PPC_TASKS="example_threads;example_processes"``, to limit + the build. - ``-D PPC_IMPLEMENTATIONS="seq;omp"`` select implementation folders to configure. - ``-D CMAKE_BUILD_TYPE=Release`` normal build (default). diff --git a/docs/user_guide/submit_work.rst b/docs/user_guide/submit_work.rst index 97c59d534..0d3107302 100644 --- a/docs/user_guide/submit_work.rst +++ b/docs/user_guide/submit_work.rst @@ -107,13 +107,13 @@ Tips for tests .. code-block:: json - { "tasks": { "mpi": "enabled", "seq": "enabled" } } + { "tasks_type": "processes", "tasks": { "mpi": "enabled", "seq": "enabled" } } - ``info.json`` — student metadata used in automation (scoreboard, macros): .. code-block:: json - { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа" } } + { "student": { "full_name": "Фамилия Имя Отчество", "group_number": "Группа", "task_number": "1" } } Build and local run ------------------- @@ -188,12 +188,8 @@ Common pitfalls (read before pushing) Useful examples to reference ---------------------------- -- Unified example: ``tasks/example`` -- Shared example files: ``tasks/example/settings.json``, ``tasks/example/info.json``, ``tasks/example/common``, ``tasks/example/data`` -- Threads: ``tasks/example/threads/{seq,omp,tbb,stl,all}`` -- Processes: ``tasks/example/processes/t1``, ``tasks/example/processes/t2``, ``tasks/example/processes/t3`` -- Process tasks keep independent ``seq`` and ``mpi`` implementations under each ``tN`` directory. -- Example reports are tree-shaped: the root report links to section reports and each implementation directory has its own ``report.md``. +- 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. From 674221ff9f931c528bb26e9521113b999cbf85ee Mon Sep 17 00:00:00 2001 From: Alexander Nesterov Date: Wed, 3 Jun 2026 17:36:41 +0200 Subject: [PATCH 12/12] Clean up nested settings test formatting --- modules/task/tests/task_tests.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/modules/task/tests/task_tests.cpp b/modules/task/tests/task_tests.cpp index 6685f200c..70d7c67a2 100644 --- a/modules/task/tests/task_tests.cpp +++ b/modules/task/tests/task_tests.cpp @@ -228,11 +228,12 @@ TEST(TaskTest, GetStringTaskTypeReportsMissingNestedTaskPath) { file << R"({"tasks": {"processes": {"t1": {"mpi": "enabled"}}}})"; file.close(); - EXPECT_THROW(try { GetStringTaskType(TypeOfTask::kMPI, path, "processes.t2"); } catch (const std::runtime_error &e) { + try { + GetStringTaskType(TypeOfTask::kMPI, path, "processes.t2"); + FAIL() << "Expected std::runtime_error"; + } catch (const std::runtime_error &e) { EXPECT_NE(std::string(e.what()).find("tasks.processes.t2"), std::string::npos); - throw; - }, - std::runtime_error); + } } TEST(TaskTest, GetStringTaskTypeReturnsUnknownOnDefault) {