This research aims at developing new theories and techniques to better understand and manage shared memory cache in multi-core architectures. The core concept is program footprint, which is the amount of memory access in a period of execution. Complete measurement requires counting data access in all execution windows, which is too costly. This research develops computational methods to first make all-window analysis feasible through a set of new profiling algorithms and then make this analysis cost-effective by reducing the cost through statistical inference, sampling, and parallel profiling and effectively obtaining this information in real time as a program executes. Footprint information is essential in analyzing cache sharing between programs and program tasks. It enables the second part of the project, a set of tools that predict the performance of parallel workloads without parallel testing. In addition, the footprint information enables a fundamentally different approach to common techniques. In the third part, the project develops a new cache-hint insertion tool to approximate optimal caching and a memory-performance tuning tool to be used by software developer.
As multi-core processors become commonplace and cloud computing is gaining acceptance, more applications are run in a shared environment. The outcome of this research will fundamentally alter the way programmers understand and improve memory performance on multi-core systems. Software developers and hardware engineers will have a new tool set to tackle the complex problem of managing on-chip memory for not just sequential but also parallel code and for not just achieving good performance but also for ensuring stable performance in a dynamic environment. The broader impacts of this research will include deeper understanding and more precise characterization of locality in computational processes, which has implications in other computing-related disciplines, and memory efficient software and hardware design, which saves energy and cost and has broad economical and social benefits.