Algorithmic and microarchitecture optimizations of C++ applications
summary
Shows a real optimization path on a 50 million–row in‑memory C++ database, starting at 3.9 QPS and reaching 130 QPS after steps: algorithmic/design fixes raise QPS to 9.3, replacing copies and returning indices; removing vector-of-structs and std::string, adding fixed char arrays and separate field vectors plus pragmas yields 24 QPS via vectorization; enabling parallelism with Threading Building Blocks and measuring with intel advisor and itt api yields 33× speedup on Intel Xeon Gold 6152 compiled with Intel Compiler 19.0.
AI-written summary · about
chapters (9)
- 0:00Introduction and methodology
- 2:32Defining the workload
- 5:49Application overview
- 9:08Algorithmic and design tuning
- 13:00Implementing design changes
- 15:45Vectorization and pragmas
- 21:46Parallelization strategies
- 24:15Microarchitecture analysis
- 28:30Conclusion and Q&A
related talks
49mAlgorithmic and microarchitecture optimizations of C++ applications
49mAn Engineering Approach to Optimising C++
01h 04mDesign for Performance
44mC++ Performance and Optimisation
05mMaximising Throughput & Minimising Latency in High-Performance C++ Code
01h 30mTuning C++: Benchmarks, and CPUs, and Compilers! Oh My!
01h 00mMoving Faster: Everyday efficiency in modern C++
57mThis Videogame Programmer Used the STL and You Will Never Guess What Happened Next
