Commit a2d617e
authored
Смышляев Александр. Технология SEQ-MPI. Линейная фильтрация изображений (блочное разбиение). Ядро Гаусса 3x3. Вариант 28. (#156)
## Описание
- **Задача**: Линейная фильтрация изображений (блочное разбиение). Ядро
Гаусса 3x3.
- **Вариант**: 28
- **Технология**: SEQ, MPI
- **Описание**
**SEQ:** Последовательный алгоритм реализует классическую операцию
свертки, проходя по каждому пикселю изображения. Для каждого пикселя
вычисляется взвешенная сумма значений его самого и восьми соседей,
используя ядро Гаусса 3x3. Обработка граничных пикселей выполняется с
помощью дублирования крайних значений.
**MPI:** Параллельный алгоритм разбивает изображение на двумерную сетку
блоков и распределяет эти блоки между процессами. Для корректной
обработки пикселей на границах каждый блок данных дополняется рамкой
толщиной в 1 пиксель, содержащей данные из соседних блоков. Корневой
процесс подготавливает и рассылает эти расширенные блоки с помощью
`MPI_Scatterv`. После этого каждый процесс независимо применяет фильтр
Гаусса к своему блоку данных. Вычисленные локальные блоки
результирующего изображения собираются на корневом процессе с помощью
`MPI_Gatherv`, и итоговый результат рассылается всем участникам.
---
## Чек-лист
- [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, являются точными и достоверными1 parent c5091fe commit a2d617e
11 files changed
Lines changed: 769 additions & 0 deletions
File tree
- tasks/smyshlaev_a_gauss_filt
- common/include
- mpi
- include
- src
- seq
- include
- src
- tests
- functional
- performance
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
0 commit comments