MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Array Padding in the Functional Language SAC

Download:
Download as a PDF | Download as a PS
by Clemens Grelck
http://www.informatik.uni-kiel.de/~sacbase/papers/array-padding-lasvegas-00.ps.gz
Add To MetaCart

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