Proceedings ArticleDOI
Strategies for cache and local memory management by global program transformation
Dennis Gannon,William Jalby,Kyle A. Gallivan +2 more
- Vol. 5, Iss: 5, pp 229-254
TLDR
A method for using data dependence analysis to estimate cache and local memory demand in highly iterative scientific codes in the form of a family of “reference” windows for each variable that reflects the current set of elements that should be kept in cache.Abstract:
In this paper we describe a method for using data dependence analysis to estimate cache and local memory demand in highly iterative scientific codes. The estimates take the form of a family of “reference” windows for each variable that reflects the current set of elements that should be kept in cache. It is shown that, in important special cases, we can estimate the size of the window and predict a lower bound on the number of cache hits. If the machine has local memory or cache that can be managed by the compiler, these estimates can be used to guide the management of this resource. It is also shown that these estimates can be used to guide program transformations in an attempt to optimize cache performance.read more
Citations
More filters
Journal ArticleDOI
Compiler transformations for high-performance computing
TL;DR: This survey is a comprehensive overview of the important high-level program restructuring techniques for imperative languages, such as C and Fortran, and describes the purpose of each transformation, how to determine if it is legal, and an example of its application.
Journal ArticleDOI
Improving data locality with loop transformations
TL;DR: This article presents compiler optimizations to improve data locality based on a simple yet accurate cost model and finds performance improvements were difficult to achieve, but improved several programs.
Proceedings ArticleDOI
Cache-conscious structure layout
TL;DR: It is demonstrated that careful data organization and layout provides an essential mechanism to improve the cache locality of pointer-manipulating programs and consequently, their performance.
Proceedings ArticleDOI
Compiler optimizations for improving data locality
TL;DR: This paper presents compiler optimizations to improve data locality based on a simple yet accurate cost model and demonstrates that these program transformations are useful for optimizing many programs.
Journal ArticleDOI
Improving register allocation for subscripted variables
TL;DR: This paper presents a source-to-source transformation, called scalar replacement, that finds opportunities for reuse of subscripted variables and replaces the references involved by references to temporary scalar variables to increase the likelihood that these elements will be assigned to registers by the coloring-based register allocators found in most compilers.
References
More filters
Journal ArticleDOI
The program dependence graph and its use in optimization
TL;DR: An intermediate program representation, called the program dependence graph (PDG), that makes explicit both the data and control dependences for each operation in a program, allowing transformations to be triggered by one another and applied only to affected dependences.
Journal ArticleDOI
Automatic translation of FORTRAN programs to vector form
Randy Allen,Ken Kennedy +1 more
TL;DR: The theoretical background is developed here for employing data dependence to convert FORTRAN programs to parallel form and transformations that use dependence to uncover additional parallelism are discussed.
Journal ArticleDOI
Advanced compiler optimizations for supercomputers
David Padua,Michael Wolfe +1 more
TL;DR: Compilers for vector or multiprocessor computers must have certain optimization features to successfully generate parallel code to be able to operate on parallel systems.
Proceedings ArticleDOI
Optimizing supercompilers for supercomputers
TL;DR: This work will focus a great deal on the importance of compilers in supercomputing, and compare and contrast the advantages and impacts of compiler solutions to the "Performance + Portability + Productivity" problem with language and runtime solutions.
Proceedings ArticleDOI
Dependence graphs and compiler optimizations
TL;DR: This paper defines such graphs and discusses two kinds of transformations, simple rewriting transformations that remove dependence arcs and abstraction transformations that deal more globally with a dependence graph.