Митяева Дарья. Технология SEQ-MPI. Нахождение минимальных значений по строкам матрицы. Вариант 17#75
Conversation
Codecov Report❌ Patch coverage is ❌ Your patch status has failed because the patch coverage (85.71%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## master #75 +/- ##
==========================================
- Coverage 94.03% 92.55% -1.48%
==========================================
Files 15 17 +2
Lines 486 591 +105
Branches 181 234 +53
==========================================
+ Hits 457 547 +90
- Misses 0 7 +7
- Partials 29 37 +8 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| } catch (...) { | ||
| return false; |
There was a problem hiding this comment.
Is this try-catch really needed?
There was a problem hiding this comment.
Exception handling with try-catch blocks is necessary in both implementations primarily for protection against standard library exceptions. The std::vector::operator[] can throw std::out_of_range if accessed with an invalid index, which could occur if there are calculation errors in determining row and column offsets. Additionally, memory allocation operations like reserve() and push_back() can throw std::bad_alloc when system memory is exhausted, particularly when processing large matrices.
There was a problem hiding this comment.
std::vector::operator[] can throw std::out_of_range if accessed with an invalid index
This is incorrect. You might be confusing it with std::vector::at.
See the details for the reference:
- https://en.cppreference.com/w/cpp/container/vector/operator_at.html
- https://en.cppreference.com/w/cpp/container/vector/at.html
As for reserve and push_back, but these cases are unlikely in our scenarios. Anyways, I'm ok with the current approach
| } catch (...) { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
Same question regarding try-catch here
… строкам матрицы. Вариант 17 (learning-process#75) Задача реализует нахождение минимальных значений по строкам матрицы с использованием параллельных вычислений MPI. Алгоритм распределяет строки матрицы между процессами, каждый процесс находит минимумы для своих строк, затем процесс 0 собирает результаты и рассылает итоговый вектор всем процессам. Входные данные представляют собой вектор формата [количество_строк, количество_столбцов, элементы_матрицы], выходные данные - вектор [количество_строк, минимальные_значения_по_строкам]. Реализация включает SEQ и MPI версии, прошедшие функциональное тестирование и тестирование производительности.
Задача реализует нахождение минимальных значений по строкам матрицы с использованием параллельных вычислений MPI. Алгоритм распределяет строки матрицы между процессами, каждый процесс находит минимумы для своих строк, затем процесс 0 собирает результаты и рассылает итоговый вектор всем процессам. Входные данные представляют собой вектор формата [количество_строк, количество_столбцов, элементы_матрицы], выходные данные - вектор [количество_строк, минимальные_значения_по_строкам]. Реализация включает SEQ и MPI версии, прошедшие функциональное тестирование и тестирование производительности.