On the Stability of Temporal Data Reference Profiles

  • Trishul Chilimbi

International Conference on Parallel Architectures and Compilation Techniques (PACT) |

Published by IEEE

Growing computer system complexity has made program optimization based solely on static analyses increasingly difficult. Consequently, many code optimizations incorporate information from program execution profiles. Most memory system optimizations go further and rely primarily on profiles. This reliance on profiles makes off-line optimization effectiveness dependent on profile stability across multiple program runs. While code profiles such as basic block, edge, and branch profiles, have been shown to satisfy this requirement, the stability of data reference profiles, especially temporal data reference profiles that are necessary for cache level optimizations, has neither been studied nor established. This paper shows that temporal data reference profiles expressed in terms of hot data streams, which are data reference sequences that frequently repeat, are quite stable; an encouraging result for memory optimization research. Most hot data streams belong to one of two categories—those that appear in multiple runs with their data elements referenced in the same order, and those with the same set of elements referenced in a different order—and this category membership is extremely stable. In addition, the fraction of hot data streams that belong to the first category is quite large.