Parallelizing the C++ Standard Template Library
summary
Implementation of C++ parallel STL proposals N4409 and N4406 is shown inside the HPX runtime, adding parallel execution policies (seq, par, par_vec, task), executor traits and launch/fork semantics, plus three partitioners (for_each, reduce/transform_reduce, scan) to build algorithms like copy_if and transform_reduce. Benchmarks on a 16-core node report near 15x speedup with larger grain sizes and task overlap. Examples include executor-configured distribution to remote localities and an OpenCL backend using the same for_each building block.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 1:18Background Information
- 2:00Focus Points
- 4:53Status Proposal 4505
- 9:14Parallel Execution Policies
- 12:11Parallel Algorithms Need Executors
- 14:18Executor Traits
- 20:25Executors
- 27:51Execution Concepts
- 28:47Partitioners
- 31:15Partitioner
- 32:48Reduce
- 39:14Parallel Algorithms
- 43:09Scaling
- 45:17HPX
- 46:11Future Work
- 48:58Inner Product
- 52:01Sort
related talks
01h 02m“Parallelism in Modern C++"
57m“The C++17 Parallel Algorithms Library and Beyond"
43mParallel Algorithms: Work Smarter, Not Harder
01h 00mC++ Standard Parallelism
01h 02mInside Visual C++' Parallel Algorithms
01h 02mAsynchronous Programming in Modern C++
39mThe best multicore-parallelization refactoring you've never heard of
01h 05mFusing Efficient Parallel For Loops with a Composable Task Scheduler
