• DocumentCode
    1122469
  • 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
  • Volume
    15
  • Issue
    11
  • fYear
    2004
  • Firstpage
    996
  • Lastpage
    1011
  • 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;
  • fLanguage
    English
  • Journal_Title
    Parallel and Distributed Systems, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    1045-9219
  • Type

    jour

  • DOI
    10.1109/TPDS.2004.70
  • Filename
    1339250