TUNE: System Support for Memory-Friendly Programming

Siddhartha Chatterjee
University of North Carolina, Chapel Hill


The pervasive use of multi-level memory hierarchies in microprocessor-based machines makes the performance of an application primarily determined by, and extremely sensitive to, its memory hierarchy mapping. Good performance therefore requires "memory-friendly programming": careful layout of data structures, and restructuring of code and/or data use patterns to improve locality. The lack of automatic tools for enhancing locality currently forces many application programmers to manually restructure their codes. Unfortunately, the sophisticated algorithms seen in modern scientific computing require equally sophisticated restructuring techniques, beyond the loop tiling transformations that some research compilers can perform automatically for dense iterative affine loop codes. Such restructuring techniques require expertise in computer architecture, burden the application programmer with tedious machine-specific details unrelated to program correctness, and reduce the readability, maintainability, and portability of the restructured code. The goal of the TUNE project is to improve our understanding of locality for a wide class of "hierarchical" problems and to develop a toolkit to aid the programmer in developing memory-friendly programs for such problems. Our ultimate goal is to demonstrate that the TUNE toolkit can be used to improve the performance of a naive implementation of an application to a level comparable to that of an implementation with extensive manual restructuring, but at a small fraction of effort on the part of the programmer.

A comprehensive solution to the problem of improving locality in hierarchical codes requires interactions among several sub-disciplines of computer science: scientific computing, numerical analysis, programming languages, compilers, performance modeling, and computer architecture. This project therefore targets all aspects of the locality problem: developing the relevant mathematical techniques for representing and manipulating locality; characterizations of the relationship between program transformations and numerical accuracy; implementing interactive and automatic locality management tools; and proposing and evaluating innovative memory architectures for future-generation systems.

The talk discussed these various aspects of the TUNE project.


Further info and related paper(s):