Enhancing Spatial Locality via Data Layout Optimizations

This paper aims to improve locality of references by suitably choosing array layouts. We use a new definition of spatial reuse vectors that takes into account memory layout of arrays. This capability creates two opportunities. First, it allows us to develop an array restructuring framework based on a combination of hyperplane theory and reuse vec- tors. Second, it allows us to observe the effect of different array layout optimizations on spatial reuse vectors. Since the iteration space based lo- cality optimizations also change the spatial reuse vectors, our approach allows us to compare the iteration-space based and data-space based approaches in terms of their effects on spatial reuse vectors. We illus- trate the effectiveness of our technique using an example from the BLAS library on the SGI Origin distributed shared-memory machine.

[1]  Wei Li,et al.  Compiling for NUMA Parallel Machines , 1993 .

[2]  Wei Li,et al.  Unifying data and control transformations for distributed shared-memory machines , 1995, PLDI '95.

[3]  Michael F. P. O'Boyle,et al.  Non-singular data transformations: definition, validity and applications , 1997, ICS '97.

[4]  Anoop Gupta,et al.  The DASH prototype: implementation and performance , 1992, ISCA '92.

[5]  Mahmut T. Kandemir,et al.  Compiler algorithms for optimizing locality and parallelism on shared and distributed memory machines , 1997, Proceedings 1997 International Conference on Parallel Architectures and Compilation Techniques.

[6]  Monica S. Lam,et al.  Data and computation transformations for multiprocessors , 1995, PPOPP '95.

[7]  J. Ramanujam,et al.  Compile-Time Techniques for Data Distribution in Distributed Memory Machines , 1991, IEEE Trans. Parallel Distributed Syst..

[8]  Jack J. Dongarra,et al.  A set of level 3 basic linear algebra subprograms , 1990, TOMS.

[9]  Chau-Wen Tseng,et al.  Improving data locality with loop transformations , 1996, TOPL.

[10]  M. Kandemir,et al.  Optimizing Spatial Locality in Loop Nests using Linear Algebra , 1998 .

[11]  John Zahorjan,et al.  Optimizing Data Locality by Array Restructuring , 1995 .

[12]  Chau-Wen Tseng,et al.  Compiler optimizations for improving data locality , 1994, ASPLOS VI.

[13]  Mahmut T. Kandemir,et al.  A compiler algorithm for optimizing locality in loop nests , 1997, ICS '97.

[14]  Susan J. Eggers,et al.  Eliminating False Sharing , 1991, ICPP.

[15]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[16]  Wei Li,et al.  Compiler cache optimizations for banded matrix problems , 1995, ICS '95.

[17]  Monica S. Lam,et al.  A data locality optimizing algorithm , 1991, PLDI '91.

[18]  Mahmut Kandemir,et al.  A Data Layout Optimization Technique Based on Hyperplanes , 1997 .

[19]  Mahmut T. Kandemir,et al.  A hyperplane based approach for optimizing spatial locality in loop nests , 1998, ICS '98.

[20]  Henry G. Dietz,et al.  Reduction of Cache Coherence Overhead by Compiler Data Layout and Loop Transformation , 1991, LCPC.

[21]  Susan J. Eggers,et al.  Reducing false sharing on shared memory multiprocessors through compile time data transformations , 1995, PPOPP '95.