Леонова Анна. Технология SEQ-MPI. Нахождение наиболее отличающихся по значению соседних элементов вектора. Вариант 8.#78
Conversation
…rom-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEAD
…sks/leonova_a_most_diff_neigh_vec_elems/git add ./tasks/leonova_a_most_diff_neigh_vec_elems/!
…rom-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEADpre-commit run --from-ref master --to-ref HEAD
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #78 +/- ##
==========================================
+ Coverage 94.03% 94.26% +0.23%
==========================================
Files 15 17 +2
Lines 486 593 +107
Branches 181 213 +32
==========================================
+ Hits 457 559 +102
- Partials 29 34 +5 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| Учебное пособие "MPI для начинающих". https://parallel.uran.ru/node/182 | ||
| Вспомогательные советы. http://stackoverflow.com/ | ||
|
|
||
| ## Приложение |
There was a problem hiding this comment.
Please, remove the appendix here. It does not really make sense here because the code is shipped together with the report
There was a problem hiding this comment.
Сделано
Однако на парах оговаривалось отдельно, что стоит вставить в приложение код RunImpl() из ops_mpi.cpp для удобства проверки.
|
|
||
| 1. n = 10 000 000 | ||
|
|
||
| |Режим |Процессы |Время, с |Ускорение |Эффективность| |
There was a problem hiding this comment.
Are you sure "Ускорение" is the correct word here? It is > 1 if the time is smaller
There was a problem hiding this comment.
Да - термин "ускорение" использован верно. Ускорение в контексте параллельных вычислений подразумевает отношение времени исполнения последовательной версии к параллельной. Это стандартное определение. Большее значение ускорения означает сокращение времени исполнения программы в параллельной реализации. В примере отчета используется такой же термин - "speedup", подразумевающийся именно в контексте параллельных вычислений.
… значению соседних элементов вектора. Вариант 8. (learning-process#78) <!-- Требования к названию pull request: "<Фамилия> <Имя>. Технология <TECHNOLOGY_NAME:SEQ|OMP|TBB|STL|MPI>. <Полное название задачи>. Вариант <Номер>" --> ## Описание <!-- Пожалуйста, предоставьте подробное описание вашей реализации, включая: - основные детали решения (описание выбранного алгоритма) - применение технологии параллелизма (если применимо) --> - **Задача**: Нахождение наиболее отличающихся по значению соседних элементов вектора - **Вариант**: 8 - **Технология**: SEQ, MPI - **Описание** Реализован алгоритм поиска пары соседних элементов вектора с максимальной разностью значений в последовательной и параллельной формах. Разработаны две версии: SEQ и MPI, включая валидацию входных данных, обработку особых случаев (вектор из одного элемента) и поддержку отрицательных чисел. В MPI-версии применена схема распределения данных по процессам с перекрывающимися блоками для проверки всех соседних пар без дополнительного обмена граничными элементами. Так же учтен случай нехватки данных на все процессы (процессов больше, чем необходимо). Алгоритм корректно обрабатывает все тестовые случаи и результат выполнения совпадает с последовательной реализацией. --- ## Чек-лист <!-- Пожалуйста, убедитесь, что следующие пункты выполнены **до** отправки pull request'а и запроса его ревью: --> - [x] **Статус CI**: Все CI-задачи (сборка, тесты, генерация отчёта) успешно проходят на моей ветке в моем форке - [x] **Директория и именование задачи**: Я создал директорию с именем `<фамилия>_<первая_буква_имени>_<короткое_название_задачи>` - [x] **Полное описание задачи**: Я предоставил полное описание задачи в теле pull request - [x] **clang-format**: Мои изменения успешно проходят `clang-format` локально в моем форке (нет ошибок форматирования) - [x] **clang-tidy**: Мои изменения успешно проходят `clang-tidy` локально в моем форке (нет предупреждений/ошибок) - [x] **Функциональные тесты**: Все функциональные тесты успешно проходят локально на моей машине - [x] **Тесты производительности**: Все тесты производительности успешно проходят локально на моей машине - [x] **Ветка**: Я работаю в ветке, названной точно так же, как директория моей задачи (например, `nesterov_a_vector_sum`), а не в `master` - [x] **Правдивое содержание**: Я подтверждаю, что все сведения, указанные в этом pull request, являются точными и достоверными <!-- ПРИМЕЧАНИЕ: Ложные сведения в этом чек-листе могут привести к отклонению PR и получению нулевого балла за соответствующую задачу. -->
Описание
Реализован алгоритм поиска пары соседних элементов вектора с максимальной разностью значений в последовательной и параллельной формах. Разработаны две версии: SEQ и MPI, включая валидацию входных данных, обработку особых случаев (вектор из одного элемента) и поддержку отрицательных чисел.
В MPI-версии применена схема распределения данных по процессам с перекрывающимися блоками для проверки всех соседних пар без дополнительного обмена граничными элементами. Так же учтен случай нехватки данных на все процессы (процессов больше, чем необходимо). Алгоритм корректно обрабатывает все тестовые случаи и результат выполнения совпадает с последовательной реализацией.
Чек-лист
<фамилия>_<первая_буква_имени>_<короткое_название_задачи>clang-formatлокально в моем форке (нет ошибок форматирования)clang-tidyлокально в моем форке (нет предупреждений/ошибок)nesterov_a_vector_sum), а не вmaster