Designing a Unified Interface for Execution
summary
A unified C++ execution proposal defines concrete components (instruction stream, lightweight agents, executor, execution resource/context) and four distinct callables — execute/bulk_execute/two-way/bulk-two-way — plus three policy axes: cardinality, directionality and blocking guarantees. It specifies customization points (require/prefer/query), a polymorphic executor for runtime choice, and adapters to make one-way into two-way executors; shows how std::async can be implemented atop these primitives; and lists pending work on execution contexts, futures/continuations and exception back-channels.
AI-written summary · about
chapters (8)
- 0:00Introduction
- 2:51Executors proposal overview
- 7:53Defining execution topology
- 11:49Executor properties and semantics
- 24:54Customizing executors
- 36:41Executor implementation examples
- 41:39Future work in executors
- 53:48Summary and Q&A
related talks
01h 01mExecutors for C++ - A Long Story ...
01h 11mAsynchronous C++
01h 32mConcurrency, Parallelism and Coroutines
42mThe C++ Execution Model
56m“The C++ Execution Model”
50mExtending std::execution Further - Higher-Order Senders and the Shape of Asynchronous Programs
59mAn Introduction to Multithreading in C++20
01h 00mC++ Standard Parallelism
