Title :
Quasidynamic layout optimizations for improving data locality
Author :
Kadayif, Ismail ; Kandemir, Mahmut
Author_Institution :
Dept. of Comput. Sci. & Eng., Pennsylvania State Univ., University Park, PA, USA
Abstract :
Compiler-directed locality optimization techniques are effective in reducing the number of cycles spent in off-chip memory accesses. Recently, methods have been developed that transform memory layouts of data structures at compile-time to improve spatial locality of nested loops beyond current control-centric (loop nest-based) optimizations. Most of these data-centric transformations use a single static (program-wide) memory layout for each array. A disadvantage of these static layout-based locality enhancement strategies is that they might fail to optimize codes that manipulate arrays, which demand different layouts in different parts of the code. We introduce a new approach, which extends current static layout optimization techniques by associating different memory layouts with the same array in different parts of the code. We call this strategy "quasidynamic layout optimization." In this strategy, the compiler determines memory layouts (for different parts of the code) at compile time, but layout conversions occur at runtime. We show that the possibility of dynamically changing memory layouts during the course of execution adds a new dimension to the data locality optimization problem. Our strategy employs a static layout optimizer module as a building block and, by repeatedly invoking it for different parts of the code, it checks whether runtime layout modifications bring additional benefits beyond static optimization. Our experiments indicate significant improvements in execution time over static layout-based locality enhancing techniques.
Keywords :
cache storage; data structures; optimising compilers; program control structures; program diagnostics; array-intensive computation; code optimization; compiler-directed locality optimization; control-centric optimization; data locality optimization problem; data structures; data-centric transformations; dynamic optimization; loop nest-based optimization; nested loops; off-chip memory access; quasidynamic layout optimizations; spatial data locality improvement; static layout optimizer; static layout-based locality enhancement strategy; static program-wide memory layout; Aerospace industry; Computer architecture; Data structures; Dynamic compiler; Matrices; Multidimensional systems; Optimization methods; Optimizing compilers; Runtime; 65; Optimizing compilers; array-intensive computations.; data locality; dynamic optimization;
Journal_Title :
Parallel and Distributed Systems, IEEE Transactions on
DOI :
10.1109/TPDS.2004.70