~/talk

Algorithmic and microarchitecture optimizations of C++ applications

Talkat C++ on Sea 2020 · 2020-07-15..07-17· [c-and-cpp]
links:none on file
slides:none on file

A small in‑memory employee DB holding 50 million records starts at baseline 3.9 QPS; changing the filter to return indices and reserving result space removes redundant copies and raises throughput to 9.3 QPS. Converting std::string to fixed char[32], turning array‑of‑structs into structs‑of‑arrays and adding pragmas for vectorization moves it to 24 QPS (Intel compiler 19.0; vitamin profiler and info advisor report vectorization). Parallelizing with Threading Building Blocks yields 130 QPS, exceeding the 30 QPS target while microarchitecture CPI inefficiencies remain.

AI-written summary · about

  1. 0:00Start
  2. 1:22Optimization criteria and stopping condition
  3. 2:07Optimization Process
  4. 3:02Build a solid baseline
  5. 7:06Sample application data flow
  6. 7:28Sample workload
  7. 9:23Algorithmic optimization
  8. 11:05Design optimization
  9. 17:17Vectorization boundaries
  10. 18:07Vectorization report
  11. 23:52Performance gain
  12. 24:14Parallel execution speedup
  13. 24:55Threading Building Blocks
  14. 26:25Bold attempt to parallelize baseline
  15. 32:09Microarchitecture efficiency
  16. 33:34Dig deeper?
  17. 35:23Summary
~/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.