Skip to content

Conversation

@Ksunyy
Copy link
Contributor

@Ksunyy Ksunyy commented Jan 3, 2026

Описание

  • Задача: Поразрядная сортировка для целых чисел с четно-нечетным слиянием Бэтчера.
  • Вариант: 19
  • Технология: SEQ, MPI
  • Описание вашей реализации и отчёта.
    В данной работе реализована поразрядная сортировка (Radix Sort) для целых чисел в сочетании с алгоритмом чётно-нечётного слияния Бэтчера. Разработаны последовательная (SEQ) и параллельная (MPI) версии алгоритма.

В MPI-версии исходный массив распределяется между процессами блоками. На первом этапе каждый процесс выполняет локальную поразрядную сортировку (LSD Radix Sort) своей части данных, что обеспечивает высокую степень параллелизма. На втором этапе осуществляется глобальное упорядочивание данных с использованием сети слияния Бэтчера, где обмен массивами между процессами-партнерами реализован через функции MPI_Sendrecv, а локальное объединение — с помощью эффективного слияния отсортированных последовательностей.

Корректность реализации подтверждена функциональными тестами на различных наборах данных (включая дубликаты и обратную сортировку), а производительность алгоритмов оценена с помощью тестов производительности, продемонстрировавших значительное ускорение за счет эффективного использования кэш-памяти при распределенной обработке.


Чек-лист

  • Статус CI: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке
  • Директория и именование задачи: Я создал директорию с именем <фамилия>_<первая_буква_имени>_<короткое_название_задачи>
  • Полное описание задачи: Я предоставил полное описание задачи в теле pull request
  • clang-format: Мои изменения успешно проходят clang-format локально в моем форке (нет ошибок форматирования)
  • clang-tidy: Мои изменения успешно проходят clang-tidy локально в моем форке (нет предупреждений/ошибок)
  • Функциональные тесты: Все функциональные тесты успешно проходят локально на моей машине
  • Тесты производительности: Все тесты производительности успешно проходят локально на моей машине
  • Ветка: Я работаю в ветке, названной точно так же, как директория моей задачи (например, nesterov_a_vector_sum), а не в master
  • Правдивое содержание: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и достоверными.

@github-actions github-actions bot added the task label Jan 3, 2026
@codecov-commenter
Copy link

codecov-commenter commented Jan 3, 2026

Codecov Report

❌ Patch coverage is 85.90308% with 32 lines in your changes missing coverage. Please review.
✅ Project coverage is 17.35%. Comparing base (92b24d3) to head (d979391).
⚠️ Report is 199 commits behind head on master.

Files with missing lines Patch % Lines
...vetsova_k_rad_sort_batch_merge/mpi/src/ops_mpi.cpp 84.09% 14 Missing and 14 partials ⚠️
...vetsova_k_rad_sort_batch_merge/seq/src/ops_seq.cpp 92.15% 1 Missing and 3 partials ⚠️

❌ Your patch status has failed because the patch coverage (85.90%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage.

❗ There is a different number of reports uploaded between BASE (92b24d3) and HEAD (d979391). Click for more details.

HEAD has 18 uploads less than BASE
Flag BASE (92b24d3) HEAD (d979391)
19 1
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #297       +/-   ##
===========================================
- Coverage   94.03%   17.35%   -76.69%     
===========================================
  Files          15      189      +174     
  Lines         486     7423     +6937     
  Branches      181     2884     +2703     
===========================================
+ Hits          457     1288      +831     
- Misses          0     6043     +6043     
- Partials       29       92       +63     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Comment on lines 115 to 116
| MPI | 2 | 0.02709 | 26.75 | 1337% |
| MPI | 4 | 0.01520 | 47.67 | 1191% |
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

исправлено, локальная сборка проходит все тесты, здесь падает при сборке работа agafonov_i_sentence_count

int local_size = static_cast<int>(local.size());
std::vector<double> merged(local_size + recv.size());

std::ranges::merge(local, recv, merged.begin());
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You were suppose to implement Batcher merge (according to the task description)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

исправлено, локальная сборка проходит все тесты, здесь падает при сборке работа agafonov_i_sentence_count

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Добрый день. Коммит, который был залит до дедлайна, в моем локальном репозитории успешно собрался и прошел все проверки (тесты и clang-tidy) также до дедлайна, но здесь эта сборка была отменена, так как из-за работ в очереди она не завершилась в срок. Значит ли это, что моя работа не будет принята?
@aobolensk @allnes

@Ksunyy Ksunyy requested a review from aobolensk January 4, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants