Пихотский Роман. Технология ALL. Линейная фильтрация изображений (вертикальное разбиение). Ядро Гаусса 3x3. Вариант 25#1391
Open
RomanPikhotskiy wants to merge 6 commits into
Conversation
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (0.00%) 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 #1391 +/- ##
==========================================
- Coverage 83.04% 82.74% -0.31%
==========================================
Files 901 933 +32
Lines 53044 55699 +2655
Branches 22119 23148 +1029
==========================================
+ Hits 44050 46086 +2036
- Misses 6237 6791 +554
- Partials 2757 2822 +65 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Описание
Задача: Линейная фильтрация изображений (вертикальное разбиение). Ядро Гаусса 3x3
Вариант: 25
Технология: MPI + TBB
Описание вашей реализации и отчёта.
Реализована гибридная параллельная версия линейной фильтрации изображения в оттенках серого с использованием ядра Гаусса 3x3. Для каждого пикселя вычисляется взвешенная сумма соседних элементов согласно ядру фильтра, после чего результат нормализуется делением на 16.
На уровне MPI изображение разбивается на вертикальные полосы, которые распределяются между процессами с максимально равномерным распределением столбцов. Для корректной обработки границ между соседними процессами организован обмен граничными столбцами с помощью
MPI_Sendrecv. Если процесс находится на границе изображения, недостающие значения формируются по правилу зеркального отражения.Внутри каждого MPI-процесса обработка дополнительно распараллеливается средствами Intel TBB. Вычисления выполняются с использованием
tbb::parallel_forиtbb::blocked_range2d, что позволяет эффективно распределять нагрузку между потоками. Потоки независимо считывают входные данные и записывают результаты в разные области выходного массива, благодаря чему отсутствует необходимость в синхронизации.После завершения локальных вычислений главный процесс собирает обработанные части изображения от остальных процессов и формирует итоговое отфильтрованное изображение.
Чек-лист
<фамилия>_<первая_буква_имени>_<короткое_название_задачи>clang-formatлокально в моем форке (нет ошибок форматирования)clang-tidyлокально в моем форке (нет предупреждений/ошибок)(например,
nesterov_a_vector_sum), а не вmasterдостоверными