Our goal is to develop lightweight tools that allow programmers to better understand the cache performance of their applications. Tasks include designing profilers, performance engineering existing ones, and exploring different metrics for cache interactions.

Understanding cache performance is a fundamental part of a performance engineer's toolkit. Previous work includes measurements of cache hits at different levels (e.g. Cachegrind) as well as more detailed measurements about memory location accesses during program execution. In this project, we aim to understand currently available tools for simulating cache performance both in serial and in parallel. Furthermore, we design and engineer profilers for various cache performance measurements (e.g. reuse distance).