In a quest for general-purpose tools, the compiler community has explored the use of program transformations like tiling (preceded by linear loop transformations) to optimize programs for memory hierarchies. However, performance improvements from tiling may be quite limited even for relatively simple codes like Cholesky factorization.
We have developed a new approach to program transformation called "data-centric program restructuring", one application of which is the optimization of programs for memory hierarchies. In this talk, we will discuss this technology and present performance numbers obtained on SGI's Octane workstations which show the performance advantages of data-centric restructuring over tiling. A practical consequence of this work is that our data-centric approach to optimizing programs for memory hierarchies is being incorporated into SGI's compiler product line.