@InProceedings{kandemir:locality,
  author = {M. Kandemir and A. Choudhary and J. Ramanujam and M. Kandaswamy},
  title = {A Unified Compiler Algorithm for Optimizing Locality, Parallelism,
  and Communication in Out-of-Core Computations},
  booktitle = {Proceedings of the Fifth Workshop on Input/Output in Parallel
  and Distributed Systems},
  year = {1997},
  month = {November},
  pages = {79--92},
  publisher = {ACM Press},
  address = {San Jose, CA},
  URL = {http://doi.acm.org/10.1145/266220.266228},
  keywords = {compiler, out of core, parallel I/O, pario-bib},
  abstract = {This paper presents compiler algorithms to optimize out-of-core
  programs. These algorithms consider loop and data layout transformations in a
  unified framework. The performance of an out-of-core loop nest containing
  many references can be improved by a combination of restructuring the loops
  and file layouts. This approach considers array references one-by-one and
  attempts to optimize each reference for parallelism and locality. When there
  are references for which parallelism optimizations do not work, communication
  is vectorized so that data transfer can be performed before the innermost
  tiling loop. Preliminary results from hand-compiles on IBM SP-2 and Intel
  Paragon show that this approach reduces the execution time, improves the
  bandwidth speedup and overall speedup. In addition, we extend the base
  algorithm to work with file layout constraints and show how it can be used
  for optimizing programs consisting of multiple loop nests.}
}

