Keynote: Multidimensional Parallel Standard C++
summary
Argues that Standard C++ exposes parallelism but lacks disjointness and true multidimensional support, and proposes three concrete fixes: exploit multidimensional spatial locality for optimal synchronization and memory movement, add language/library ways to declare non‑overlapping partitions, and hide/localize layouts with many compile‑time parameters (so JIT or autotuning helps). Cites mdspan (C++23), submdspan and std::linalg (C++26), copy/fill for mdspan in review, shows memcopy optimization with restrict, and points to Coutile’s tile IR and working Python/Julia/Rust prototypes.
AI-written summary · about
chapters (16)
- 0:00Multidimensional C++ parallelism intro
- 1:02Parallelism vs concurrency
- 2:28C++ standard parallelism today
- 7:09Arrays enabling parallelism
- 19:55Disjoint writes permission
- 29:24Memory locality in parallelism
- 36:43Hardware-memory coupling
- 44:54Implicit vs explicit models
- 49:16Why multidimensional algorithms
- 54:37C++ multidimensional support
- 1:01:23Challenges with array views
- 1:05:00Problems with array containers
- 1:10:16Multidimensional for-each proposal
- 1:15:31Multidimensional bulk algorithms
- 1:22:11Open questions and future
- 1:23:37Summary
related talks
01h 00mC++ Standard Parallelism
59mAn Introduction to Multithreading in C++20
01h 05mThink Parallel
59m“Is Parallel Programming still hard? PART 1 of 2”
57m“The C++17 Parallel Algorithms Library and Beyond"
56mParallelizing the C++ Standard Template Library
47mConcurrent Programming in C++
01h 18m“Work Stealing"
