What do you mean by "Cache Friendly"?

Björn Fahller

online
90 minute session
intermediate
advanced
14:30-16:00, Friday, 15th July 2022

Data structures, and sometimes the algorithms that operate on them, can be described as "cache friendly" or "cache hostile", but what is meant by that, and does it really matter?

Cache memory in modern CPUs can be a hundred times faster than main memory, but caches are very small and have some interesting properties, that some times can be counter-intuitive. Getting good performance requires thinking about how your data structures are laid out in memory, and how they are accessed.

This presentation will explain why some constructions are problematic and show better alternatives. I will show tools for analyzing cache efficiency, and things to think about when making changes to gain performance. You will develop an intuition for writing fast software by default, and learn techniques to improve it.

performance
optimization
CPU cache

Björn Fahller

Björn works for Net Insight, where he wears many hats, including mentor trainer, troubleshooter, networking protocol designer, software architect, and programmer, and he is continuously pushing the codebase to increasingly modern C++. Programming has been his full-time profession since graduating from University in 1994, mostly writing embedded software for networking equipment. Björn first experienced programming when home computers became popular in the early 80s, and it quickly became a permanent interest of his.

Occasionally Björn has been seen tinkering with unorthodox software constructs, pondering "what can be done with this?" He lives in Stockholm.