“The C++17 Parallel Algorithms Library and Beyond"
summary
C++17’s parallel algorithms library (committee draft) adds execution policies and concrete overloads so you can write std::par_unseq or std::par versions of algorithms like sort, plus new unordered ops: reduce, transform_reduce, inclusive/exclusive_scan and fused forms (transform + reduce). Examples shown: vector norm and dot product with transform_reduce, parallel word count (binary transform over offset ranges), and sparse histogram (parallel sort + transform_reduce + reduce_by_key). Implementations exist in HPX, Thrust, Boost.Compute; element-access functions must not throw (otherwise terminate on exception). Executors and async algorithms are planned.
AI-written summary · about
chapters (25)
- 0:00Introduction
- 2:40The End of CPU Core Growth
- 4:23Standard Algorithms
- 5:50Level of Parallelism
- 7:54The Parallel Algorithms Library
- 8:54Execution Policies
- 10:37Standed Par
- 12:14Overloads
- 13:11Parallel Sort
- 13:58Unordered Algorithms
- 14:33Reduce
- 16:18Math Review
- 16:50Generalized NonCommunity of Things
- 18:42Inline Reduce
- 20:40Inclusive Scan
- 22:52Transform Reduce
- 34:38Requirements on Iterator Types
- 36:38Parallel Word Count
- 41:01Sparse Histogram
- 41:57Histogram Function
- 44:07Reduce by Key
- 46:45Exception Handling
- 49:25Performance Opportunities
- 50:25Parallel STLs
- 51:25Executor Z
related talks
57mC++17 Parallel Algorithms
43mParallel Algorithms: Work Smarter, Not Harder
56mParallelizing the C++ Standard Template Library
57mC++ Standard Parallelism
01h 00mC++ Standard Parallelism
01h 05m“Concurrency, Parallelism and Coroutines”
01h 10mC++17 ParallelSTL: A Standardization Experience Report for CPU and GPU on SYCL
58mC++ Standard Parallelism
