~/talk

“Nano-coroutines to the Rescue! (Using Coroutines TS, of Course)”

Talkat CppCon 2018 · 2018-09-23..09-28· [concurrency, c-and-cpp]
links:none on file
slides:none on file

Shows that using nano-coroutines built on Coroutines TS (MSVC and Clang implementations) turns random-memory join lookups into an interleaved prefetch pipeline: replace the memory read with an awaitable prefetch (using prefetch NTA), run many coroutines under a small throttler and symmetric coroutine-to-coroutine transfer, and recycle coroutine frames with a custom allocator. Microbenchmarks go from ~26 ns per lookup (naive) to ~10 ns handcrafted and about 3.5× speedup with coroutines using ~20 streams; profiling uses perf-stat.

AI-written summary · about

  1. 0:00Introduction and coroutines overview
  2. 7:24C++ coroutines design principles
  3. 8:33Why databases care about coroutines
  4. 15:20Instruction stream interleaving concept
  5. 17:59State machine transformation details
  6. 22:45Coroutines for memory latency
  7. 28:58Implementing prefetch awaitable
  8. 33:44Symmetric coroutine-to-coroutine transfer
  9. 35:08Throttler implementation
  10. 38:21Performance results and analysis
  11. 43:25Nano-coroutines benefits
  12. 43:48Coroutines TS current status
  13. 45:11Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.