Exact Analysis of the Cache Behavior of Nested Loops

Description

In class, we presented several models for predicting cache performance. These models were ad-hoc, in the sense that they required certain methods of reasoning about asymptotic functions that is not easily automated.

Sid Chatterjee, et al., have a paper in PLDI'01 that shows how cache misses can be counted exactly, using Presburger arithmetic to model cache behavior. Presberger arithmetic is a subset of the first order logic with equality or inequality constraints on integer variables. The Omega library can be used to manipulate and simplify Presberger formula.

There are two issue left open by this paper. First, the authors validate their approach using cache simulation and not experimentation on real hardware. Second, the authors demonstrate their work as a standalone piece, and not part of a transforming compiler.

Project Goals

There are two goals,

What You Need To Do

References