Skip to content

Conversation

@crn4tt
Copy link
Contributor

@crn4tt crn4tt commented Dec 31, 2025

Описание

  • Задача: Сортировка Бэтчера
  • Вариант: 21
  • Технология: SEQ-MPI
  • Описание
    Алгоритм сортировки массива чисел с плавающей точкой методом Бэтчера. Логика работы: сначала выполняется локальная поразрядная сортировка (radix sort) на каждом процессе, затем отсортированные части объединяются с помощью сети слияния Бэтчера. Поразрядная сортировка использует преобразование чисел с плавающей точкой в сортируемые целочисленные ключи через инвертирование битов: для положительных чисел инвертируется знаковый бит, для отрицательных - все биты. Сортировка выполняется по младшим разрядам (LSD) за 8 проходов по 8 бит. Распараллеливание: данные распределяются между процессами с помощью MPI_Scatterv. Каждый процесс сортирует свою локальную часть с помощью radix sort. Затем применяется сеть слияния Бэтчера: процессы попарно обмениваются данными и выполняют слияние, сохраняя нижнюю или верхнюю половину результата в зависимости от ранга. Сеть слияния использует odd-even transposition sort с достаточным числом фаз для обеспечения сходимости. Результаты собираются на нулевом процессе через MPI_Gatherv.

Чек-лист

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

@codecov-commenter
Copy link

codecov-commenter commented Dec 31, 2025

Codecov Report

❌ Patch coverage is 82.06522% with 33 lines in your changes missing coverage. Please review.
✅ Project coverage is 16.85%. Comparing base (92b24d3) to head (eab5650).
⚠️ Report is 90 commits behind head on master.

Files with missing lines Patch % Lines
...s/egashin_k_radix_batcher_sort/mpi/src/ops_mpi.cpp 80.43% 22 Missing and 5 partials ⚠️
...s/egashin_k_radix_batcher_sort/seq/src/ops_seq.cpp 86.95% 5 Missing and 1 partial ⚠️

❌ Your patch status has failed because the patch coverage (82.06%) 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 (eab5650). Click for more details.

HEAD has 18 uploads less than BASE
Flag BASE (92b24d3) HEAD (eab5650)
19 1
Additional details and impacted files
@@             Coverage Diff             @@
##           master     #258       +/-   ##
===========================================
- Coverage   94.03%   16.85%   -77.18%     
===========================================
  Files          15      189      +174     
  Lines         486     7380     +6894     
  Branches      181     2878     +2697     
===========================================
+ Hits          457     1244      +787     
- Misses          0     6055     +6055     
- Partials       29       81       +52     

☔ 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.

Copy link
Member

@aobolensk aobolensk left a comment

Choose a reason for hiding this comment

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

Please, increase code coverage

Comment on lines 125 to 126
| mpi | 2 | 0.0902 |
| mpi | 4 | 0.3291 |
Copy link
Member

Choose a reason for hiding this comment

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

просьба проверить на 1 процессе mpi и 8 процессах mpi и на данных 1000001 количества элементов

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.

4 participants