HPX - A C++ Library for Parallelism and Concurrency
summary
HPX is a C++ standards library that implements lightweight tasks, a work-stealing scheduler, futures, and sender/receiver plumbing (p2300) to orchestrate parallel and distributed execution. The runtime defaults to 4× number of cores default chunk count and finds best throughput near 2–4× cores often optimal for CPU loops; explicit vectorization via simd gives ~5× on 1D scale lifts memory-bound linear-algebra. The implementation uses user-level cooperative threads 2–3 orders of magnitude faster for context switches and supports asynchronous, lazy, and executor-driven execution.
AI-written summary · about
chapters (28)
- 0:00Start
- 6:12Introduction into Hpx What It Is
- 8:25Hpx Is a Distributed Runtime System
- 8:50The Parallel Algorithms
- 10:15Parallel Algorithms
- 11:23Parallel Loops
- 12:37Execution Policies
- 14:46Explicit Vectorization
- 18:42Parallelization
- 20:23Background
- 22:25Four Horsemen of the Apocalypse
- 23:08Overheads
- 23:26Waiting for Contention Resolution
- 23:56Thought Experiment
- 30:09Executors
- 34:08Examples
- 34:59Asynchronous Execution
- 35:41Sender Receiver
- 38:23Schedulers
- 39:02Async Execute and Bulk Async Execute
- 39:38Async Execute
- 40:22Sender Receiver Mechanics
- 41:04Bulk Async Execute
- 46:02The Explicit Vectorization and the Simdi Execution Policy
- 46:18Vectorization
- 50:13Linear Algebra
- 51:59Hpx Parallel Loops
- 58:44New Apis for Parallel Algorithms
related talks
59mC++ on its way to exascale and beyond
01h 06mAsynchronous Computation in C++
48mHaxl A Big Hammer for Concurrency
01h 03mThe Landscape of Parallelism
05mFast Parallel Programming using Modern C++
01h 07mAnother fundamental shift in Parallelism Paradigm?
01h 02mOverview of Parallel Programming in C++
01h 06mTrue parallelism, with no concept of threads
