Why Data Access Patterns Have Always Mattered - Jason Turner - NDC TechTown 2023

Learn why cache access patterns have always mattered in computer programming, and how ignoring their effects can lead to slow performance. Discover the importance of cache-friendly programming and how to optimize your code for better performance.

Key takeaways
  • Cache access patterns have always mattered in computer programming, but many programmers have forgotten this importance.
  • Cache plays a crucial role in modern CPUs, and ignoring its effects can result in slow performance.
  • The importance of cache access patterns was recognized as far back as the 1980s and 1990s, but many programmers seem to have forgotten this.
  • Jason Turner argues that the problem started around 2005, when programmers started relying too heavily on cache and lost touch with the importance of cache-friendly programming.
  • The talk highlights several points about cache access patterns:
    • Don’t store data unnecessarily. Keep data compact and access memory in a predictable manner.
    • Access data linearly and avoid random access.
    • Consider interleaving data to reduce seeks on disk.
    • Design fast, efficient cache-friendly code.
    • Warm up the cache when accessing data.
  • The importance of cache associativity is also discussed.
  • Many programmers are not aware of the impact of cache access patterns on performance.
  • The talk encourages programmers to reconsider their approach to cache and memory access.