Parallel Algorithms Ranges and oneDPL
summary
Three proposals (P2300, P2500, P3179) add concrete machinery: senders/receivers with factory/adapter/consumer APIs, policy-aware scheduler binds "where" and "how", and parallel range algorithms that preserve serial semantics while requiring random‑access for parallel policies. Examples show piping a multi‑stage pipeline that moves between a CPU threadpool and CUDA streams, fusion of multiple range ops to cut overhead, and execute_on transitions host↔device. Practical backends include oneDPL and Thrust examples running on GPUs and accelerators and the patterns demonstrate working offload and synchronization.
AI-written summary · about
chapters (10)
- 0:00Parallel algorithms and oneDPL
- 1:47C++ parallelism history
- 6:27Motivation behind P2300
- 18:30Senders and receivers in P2300
- 25:36P2500 policy-aware schedulers
- 33:24P2500 design and integration
- 38:43P3179 parallel range algorithms
- 46:47Thrust and oneDPL use cases
- 52:12Challenges and future directions
- 53:36Q&A
related talks
52mC++ Standard Parallelism
01h 07mGeneric Parallel Programming
10mGraph Based Pipeline Parallelism
16mRevisiting Pipeline Parallelism for LLM Serving
22mCustom Pipeline Parallelism for Frontier-Scale Model Serving
10mPyTorch Distributed Data Parallel (DDP)
09mHyperParallel: A SuperPoD-Aware Distributed Acceleration Library
44mFuture: Friendly Parallel and Distributed Processing in R
