Software Support For Improving Locality in Advanced Scientific Codes

View/Open

Date

Author

Metadata

Abstract

Scientists today rely on powerful computers to perform simulations
critical for research and development. Modern microprocessors
provide high performance by exploiting data locality with
carefully designed multi-level caches. Programs can achieve
good performance only if they possess data locality,
keeping most data in cache and avoiding accesses to memory.
Compiler transformations can improve locality
and achieve large performance improvements, particularly
for linear algebra codes. However, as
scientific computations increase in complexity, they employ
advanced features such as 3D arrays, sparse meshes, and
pointer-based data structures that make it difficult to
utilize caches well.
This proposal aims to develop and evaluate software support for
improving locality for advanced scientific applications for both
sequential and parallel machines. The basic premise is that both
compile-time analyses and sophisticated run-time systems are necessary.
Run-time systems are needed because many programs are not
analyzable statically. Compiler support is crucial both for inserting interfaces to the run-time system and
for directly applying program transformations where possible.
Cooperation between the compiler and run-time will be critical
for advanced scientific codes.
(Also cross-referenced as UMIACS-TR-2000-56)