Abstract:
Abstract Sac is a functional array processing language that tries to combine generic, high-level program specications with ecient runtime behavior. Being particularly designed for numerical applications, runtime performance critically depends on the eective utilization of the memory hierarchy. For many programs, however, it can be observed that the achieved performance signicantly changes with small variations in the problem size. Array padding is a well-known optimization technique that adjusts the data layout of arrays in order to make better usage of caches. The paper presents an algorithm that derives a customized data layout from an array access pattern and a cache specication. Cache phenomena such as spatial and temporal reuse are taken into account as well as dierent cache architectures. The eectiveness is demonstrated by investigations on the runtime performance of the PDE1 benchmark on a shared memory multiprocessor.
Citations
|
3148
|
Computer architecture: a quantitative approach
– Hennessy, Patterson
- 1990
|
|
455
|
Design and evaluation of a compiler algorithm for prefetching
– Mowry, Lam, et al.
- 1992
|
|
253
|
Improving data locality with loop transformations
– McKinley, Carr, et al.
- 1996
|
|
168
|
Tile size selection using cache organization and data layout
– Coleman, McKinley
- 1995
|
|
152
|
Unifying data and control transformations for distributed shared memory machines
– Cierniak, Li
- 1995
|
|
54
|
SISAL: Streams and Iteration in a Single Assignment Language: reference manual version 1.2
– McGraw, Skedzielewski, et al.
- 1985
|
|
47
|
Fusion of loops for parallelism and locality
– Manjikian, Abdelrahman
- 1995
|
|
37
|
A general framework for iteration-reordering loop transformations
– Sarkar, Thekkath
- 1992
|
|
11
|
Data Transformations for Eliminating Con Misses
– Rivera, Tseng
- 1998
|
|
6
|
Shared Memory Multiprocessor Support for SAC
– Grelck
- 1999
|
|
3
|
On de application-speci high-level array operations by means of shapeinvariant programming facilities
– Scholz
- 1998
|
|
2
|
Compiler Transformations for High-Performance Computing
– Sharp
- 1994
|