Parallelizing the Standard Algorithms Library
summary
The talk presents a concrete proposal: parallel overloads for the C++ standard algorithms, implemented via execution policy objects (examples: seq, par, par_vec) and shipped by projects like Thrust and MS/Intel prototypes targeting C++17. A marching‑cubes pipeline is parallelized with sort → unique → lower_bound (built from transform), producing a welded mesh. Runtime dynamic policy selection, vendor hooks, and aggregated exception_list semantics appear. Benchmark: 300M Monte Carlo samples run ~5s on one i7, ~5× with CPU parallelism, ~20× on GPU.
AI-written summary · about
chapters (15)
- 0:00Start
- 2:36Roadmap
- 5:17Simple parallelism for everyone
- 11:18Motivating Example: Weld Vertices
- 13:49Don't make me choosel
- 17:52Execution Policies
- 19:25Sequential Execution
- 21:10Parallelizable Execution
- 27:37Parallel Algorithms
- 27:55New Algorithms
- 28:41Parallel Exceptions
- 29:39Example: Estimating Pi
- 31:37Performance Portability
- 33:53Scheduling?
- 35:44Summary
related talks
37mC++ for multi-accelerator, multi-vendor systems
01h 32mHeterogeneous Programming in C++ today
56m“Towards Heterogeneous Programming in C++"
01h 07mHeterogeneous Modern C++ with SYCL
48mBridging the Gap: Writing Portable C++ Programs for CPU and GPU
25mExploit Parallelism for AI Workloads with WASM and OpenMP
01h 01mTake Advantage of All the MIPS - SYCL & C++
36mCUDA Kernels with C++
