Skip to content

Feat/image pipepline#3

Open
vlapugb wants to merge 7 commits into
mainfrom
feat/image_pipepline
Open

Feat/image pipepline#3
vlapugb wants to merge 7 commits into
mainfrom
feat/image_pipepline

Conversation

@vlapugb
Copy link
Copy Markdown
Collaborator

@vlapugb vlapugb commented Apr 30, 2026

Описание:

Реализована потоковая (pipeline) обработка набора изображений с разделением на чтение, вычисление и запись через тредпул с тремя очередями.

Что добавлено:

  • Тредпул (src/runtime/thread_pool.c/h) — динамический пул pthread-потоков с тремя ролевыми очередями: reader, computer, writer. Поддерживает ограничения на число одновременно активных workers каждого типа и балансировку между очередями. Workers универсальны — один поток может выполнять задачи любого типа.
  • Очередь задач (src/runtime/task_queue.c/h) — ограниченная очередь на кольцевом буфере для передачи задач между стадиями пайплайна. Сама по себе очередь не потокобезопасная, но лежит в основе thread_pool, и доступ к очереди происходит под thread_pool_mutex.
  • Пайплайн-раннер (src/pipeline/image_pipeline_runner.c/h) — оркестрирует конвейер: reader'ы загружают изображения → computer'ы (2 worker'а по 7 OpenMP-потоков каждый) применяют фильтры → writer'ы сохраняют результат
  • Режим -p pipeline в CLI — запуск пайплайна для пакетной обработки.
  • Документация (docs/task3/README.md, docs/task3/pipeline_queue_benchmark.png) — таблица и график результатов бенчмарка с анализом влияния размера очереди обработчиков изображения (computers queue).

Тесты:

  • thread_pool_test.c — проверяет, что тредпул выполняет все поставленные задачи (32 задачи, 2 worker'а, все 3 типа задач).

@vlapugb vlapugb force-pushed the feat/image_pipepline branch from 5535b2b to d7c83a6 Compare April 30, 2026 23:37
@vlapugb
Copy link
Copy Markdown
Collaborator Author

vlapugb commented Apr 30, 2026

@vkutuev @Almazis PR готов к ревью.

@vlapugb vlapugb force-pushed the feat/image_pipepline branch from b470413 to 0a088fd Compare May 15, 2026 23:12
@vlapugb vlapugb force-pushed the feat/image_pipepline branch from 0a088fd to db42451 Compare May 15, 2026 23:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant