Parallel Design Patterns and Stream Parallelism
summary
Library GrPPI exposes reusable parallel patterns and delivers composable streaming pipelines (generator, transformers, nested pipelines) with operators like farm and windowed reductions, and allows ordered vs unordered processing. It runs over sequential, OpenMP, IntelTBB, ISO C++ threads and fastflow backends, plans Thrust/SYCL and MPI, and keeps integration with modern C++ APIs. Examples show big cuts in hand-written coordination code and under 4% runtime penalty versus manual pipelines; source available at the GitHub repo.
AI-written summary · about
chapters (31)
- 0:00Intro
- 2:12Sequential Programming versus Parallel Programming
- 3:35Software design
- 4:22Adding two vectors
- 9:24Example: Transforming a sequence
- 13:06Execution model properties
- 14:05A classification
- 14:42Patterns on data sets
- 15:44Single sequences mapping
- 16:26Multiple sequences mapping
- 17:17Heterogeneous mapping
- 18:01Homogeneous reductions
- 20:53Cannonical map reduce
- 22:11Stencil pattern
- 22:37Single sequence stencil
- 24:01Divide conquer pattern
- 24:36A patterned merge sort
- 28:10Standalone pipeline
- 28:56Generators
- 31:58Nested pipelines
- 35:53Nested pipelings
- 37:57Piecewise pipelines
- 40:00Farm pattern
- 42:38Ordering
- 42:56Queueing properties
- 43:44Filter pattern
- 45:15Stream reduction pattern
- 46:21Windowed reductions
- 55:16Performance: frames per second
- 56:29Brain MRI (Magnetic Resonance Imaging)
- 58:12MRI Evaluation








