Stories from a parallel universe
summary
Concrete claims and code-level guidance: C++17 parallel algorithms are usable by adding an execution_policy parameter, with four policies (seq, par, unseq, par_unseq) and real trade-offs for atomics, synchronization and vectorization. Examples compare accumulate vs reduce and partial_sum vs inclusive/exclusive scans, show floating-point non‑associativity causing different results, and demonstrate that transform + reduce fix and view/zip tricks remove extra synchronization. Slides and example code accompany the talk and performance requires measurement per workload.
AI-written summary · about
chapters (11)
- 0:00Introduction
- 1:26Parallel algorithms in stdlib
- 3:39Sequential vs parallel animals
- 7:34Accumulate vs reduce
- 13:39Inner product & transform reduce
- 16:29Partial sum & scan
- 24:44Execution policies
- 31:01Policy choice examples
- 36:56Unsequenced differences
- 37:59Key takeaways
- 39:44Q&A
related talks
59mThreads and Locks must Go
01h 07mWriting Data Parallel Algorithms on GPUs
01h 02mOverview of Parallel Programming in C++
01h 03mThe Landscape of Parallelism
01h 03mUnlocking the value of C++20
01h 16mPaying for Lunch: C++ in the ManyCore Age
59mCombining C++17 Features
59mParallel Programming in Rust: Techniques for Blazing Speed
