Skip to content

Hw3#3

Open
g4rry1 wants to merge 15 commits into
mainfrom
hw3
Open

Hw3#3
g4rry1 wants to merge 15 commits into
mainfrom
hw3

Conversation

@g4rry1
Copy link
Copy Markdown
Collaborator

@g4rry1 g4rry1 commented May 21, 2026

Summary

Implements the third task: a streaming pipeline for batch processing of 8-bit grayscale BMP images.

What is included

  • Thread-safe bounded queue between pipeline stages with configurable capacity
  • Pipeline implementation using pthreads: reader → N workers → writer
  • CLI options for pipeline execution:
    • --pipeline[=N] — enable pipeline mode with N worker threads
    • --indir=path — input directory (all .bmp files)
    • --outdir=path — output directory
    • --queue-size=N — bounded queue capacity between stages
    • --parallel=type / --threads=N — optional parallel convolution inside each worker
  • Pipeline unit tests (single worker, multiple workers, queue-size=1, parallel convolution inside workers)
  • Binary integration tests for all execution modes (sequential, parallel, pipeline) running end-to-end through the built binary
  • CI extended with: ASan + UBSan job, ThreadSanitizer job, clang-tidy step
  • Benchmark script extended with pipeline measurements, results, heatmaps, and analysis
  • Updated README with pipeline usage, options, and benchmark results

How to test

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build --target check --parallel

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