Skip to content

Савва Дария. Технология SEQ|MPI. Минимальное значение элементов вектора. Вариант 4#34

Merged
aobolensk merged 8 commits intolearning-process:masterfrom
DariyaSavva:savva_d_min_element_vector
Jan 3, 2026
Merged

Савва Дария. Технология SEQ|MPI. Минимальное значение элементов вектора. Вариант 4#34
aobolensk merged 8 commits intolearning-process:masterfrom
DariyaSavva:savva_d_min_element_vector

Conversation

@DariyaSavva
Copy link
Copy Markdown
Contributor

Описание

  • Задача: Минимальное значение элементов вектора
  • Вариант: 4
  • Технология: SEQ, MPI
  • Описание реализации и отчёта:
  • Последовательная версия: выполняется последовательный обход всех элементов вектора, на каждом шаге значение текущего элемента сравнивается с элементом, который на данный момент является минимальным.
  • Параллельная реализация: для каждого процесса выполняется определение диапазона элементов вектора, обрабатываемых им, затем происходит локальное вычисление минимума также как в последовательной версии, затем данные передаются нулевому процессу, вычисляется глобальный минимум, и рассылается всем остальным с помощью MPI-функции MPI_Allreduce.

Чек-лист

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

@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Nov 16, 2025

Codecov Report

❌ Patch coverage is 86.66667% with 8 lines in your changes missing coverage. Please review.
✅ Project coverage is 15.78%. Comparing base (92b24d3) to head (377460a).
⚠️ Report is 90 commits behind head on master.

Files with missing lines Patch % Lines
tasks/savva_d_min_elem_vec/mpi/src/ops_mpi.cpp 84.09% 3 Missing and 4 partials ⚠️
tasks/savva_d_min_elem_vec/seq/src/ops_seq.cpp 93.75% 0 Missing and 1 partial ⚠️

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

HEAD has 18 uploads less than BASE
Flag BASE (92b24d3) HEAD (377460a)
19 1
Additional details and impacted files
@@             Coverage Diff             @@
##           master      #34       +/-   ##
===========================================
- Coverage   94.03%   15.78%   -78.26%     
===========================================
  Files          15      189      +174     
  Lines         486     7256     +6770     
  Branches      181     2804     +2623     
===========================================
+ Hits          457     1145      +688     
- Misses          0     6031     +6031     
- Partials       29       80       +51     

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

return true;
}

bool SavvaDMinElemVecMPI::RunImpl() {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There is no data scatter from rank 0 to other ranks

Comment thread tasks/savva_d_min_elem_vec/report.md Outdated
Comment on lines +53 to +58
| SEQ | 2 | 9.15 | 1.00 | |
| MPI | 2 | 9.1 | 1.01 | 25,2 |
| SEQ | 8 | 24.65 | 1.00 | |
| MPI | 8 | 24.9 | 0.99 | 12,3 |
| SEQ | 4 | 12.4 | 1.00 | |
| MPI | 4 | 12.5 | 0.99 | 24,7 |
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

What does "number of processes" mean in the context of sequential execution?

}
}

// случайная генерация в SetUp будет блокироваться, так как производительность зависит от сгенерированных данных
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

???

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Этот комментарий я написала для себя как напоминание. В самом же файле main.cpp случайная генерация не используется: есть циклы, добавляющие в вектор элементы, не содержащиеся в файле data.txt, но они полностью определяются данными этого файла, то есть они одни и те же при каждом запуске.

Comment thread tasks/savva_d_min_elem_vec/report.md Outdated
- Возврат итогового значения каждым процессом.
### Ключевые функции:
- `MPI_Comm_rank`, `MPI_Comm_size` — определяют номер процесса и общее количество процессов;
- `MPI_Allreduce` — выполняет суммирование результатов всех процессов.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Are you sure there is a summation?

Comment thread tasks/savva_d_min_elem_vec/report.md Outdated


## Описание программной реализации параллельного алгоритма
Реализация выполнена на языке **C++17** с использованием **библиотеки MPI**.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

C++17?

Comment thread tasks/savva_d_min_elem_vec/mpi/src/ops_mpi.cpp
@github-actions
Copy link
Copy Markdown
Contributor

This pull request is stale for 2 weeks and is going to be closed in a week

@github-actions github-actions Bot added the stale label Dec 10, 2025
@aobolensk aobolensk removed the stale label Dec 10, 2025
Comment on lines +34 to +35
int *counts = new int[size];
int *displacements = new int[size];
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Please, resolve memory leaks (there are definitely no delete stmts for these allocations)

@github-actions
Copy link
Copy Markdown
Contributor

This pull request is stale for 2 weeks and is going to be closed in a week

@github-actions github-actions Bot added the stale label Dec 25, 2025
@aobolensk aobolensk merged commit ba0dce0 into learning-process:master Jan 3, 2026
41 checks passed
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