CppCon 2017: Matt Kulukundis “Designing a Fast, Efficient, Cache-friendly Hash Table, Step by Step”

http://CppCon.org — Presentation Slides, PDFs, Source Code and other presenter materials are available at: https://github.com/CppCon/CppCon2017 — Hash tables consume a large volume of both compute resources and memory across Google's production system. The design for hash tables in C++ traces its origins to the SGI STL implementation from 20 years ago. Over these years, computer architecture and performance has changed dramatically and we need to evolve this fundamental data structure to follow those changes. This talk describes the process of design and optimization that starts with std::unordered_map and ends with a new design we call "SwissTable", a 2-level N-way associative hash table. Our implementation of this new design gets 2-3x better performance with significant memory reductions (compared to unordered_map) and is being broadly deployed across Google. — Matt Kulukundis: Google, Senior Software Engineer Matt is a senior software engineer on the C++ libraries team at Google. Prior to Google he has worked on compilers, machine learning, and underwater robotics. In his free time, he scuba dives in warm places. — Videos Filmed & Edited by Bash Films: http://www.BashFilms.com Work at Hudson River Trading (HRT): https://tinyurl.com/safxfctf --- Videos Filmed & Edited by Bash Films: http://www.BashFilms.com

CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
▶︎

CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”

CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”
▶︎

CppCon 2017: Fedor Pikus “Read, Copy, Update, then what? RCU for non-kernel programmers”

C++Now 2018: You Can Do Better than std::unordered_map: New Improvements to Hash Table Performance
▶︎

C++Now 2018: You Can Do Better than std::unordered_map: New Improvements to Hash Table Performance

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)
▶︎

Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)

CppCon 2017: Chandler Carruth “Going Nowhere Faster”
▶︎

CppCon 2017: Chandler Carruth “Going Nowhere Faster”

Advanced Topics in Programming Languages: A Lock-Free Hash Table
▶︎

Advanced Topics in Programming Languages: A Lock-Free Hash Table

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”
▶︎

CppCon 2017: Carl Cook “When a Microsecond Is an Eternity: High Performance Trading Systems in C++”

Swiss Maps in Go - Bryan Boreham
▶︎

Swiss Maps in Go - Bryan Boreham

CppCon 2017: Pablo Halpern “Allocators: The Good Parts”
▶︎

CppCon 2017: Pablo Halpern “Allocators: The Good Parts”

Keynote: Benchmarking - It's About Time - Matt Godbolt - C++Now 2026
▶︎

Keynote: Benchmarking - It's About Time - Matt Godbolt - C++Now 2026

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced.  What do they really do?”
▶︎

CppCon 2017: Fedor Pikus “C++ atomics, from basic to advanced. What do they really do?”

Why Netflix is betting on systems thinkers—not specialists—in the AI era | Elizabeth Stone (CPTO)
▶︎

Why Netflix is betting on systems thinkers—not specialists—in the AI era | Elizabeth Stone (CPTO)

CppCon 2014: Mike Acton "Data-Oriented Design and C++"
▶︎

CppCon 2014: Mike Acton "Data-Oriented Design and C++"

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care
▶︎

code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care

CppCon 2017: Klaus Iglberger “Free Your Functions!”
▶︎

CppCon 2017: Klaus Iglberger “Free Your Functions!”

JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Course | Intellipaat
▶︎

JavaScript Tutorial For Beginners | JavaScript Training | JavaScript Course | Intellipaat

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026
▶︎

Keynote: After the AI Hype – What’s Real, and What’s Next - Richard Campbell - 2026

Is Fine-Tuning Still Needed? LLMs, RAG, & LoRA
▶︎

Is Fine-Tuning Still Needed? LLMs, RAG, & LoRA

CppCon 2018: Fedor Pikus “Design for Performance”
▶︎

CppCon 2018: Fedor Pikus “Design for Performance”

Real-Time WebSockets Course | Build a Live Sports Dashboard with Node.js & PostgreSQL
▶︎

Real-Time WebSockets Course | Build a Live Sports Dashboard with Node.js & PostgreSQL