• DocumentCode
    3239792
  • Title

    Better Tiling and Array Contraction for Compiling Scientific Programs

  • Author

    Pike, Geoff ; Hilfinger, Paul N.

  • Author_Institution
    University of California at Berkeley
  • fYear
    2002
  • fDate
    16-22 Nov. 2002
  • Firstpage
    32
  • Lastpage
    32
  • Abstract
    Scientific programs often include multiple loops over the same data; interleaving parts of different loops may greatly improve performance. We exploit this in a compiler for Titanium, a dialect of Java. Our compiler combines reordering optimizations such as loop fusion and tiling with storage optimizations such as array contraction (eliminating or reducing the size of temporary arrays). The programmers we have in mind are willing to spend some time tuning their code and their compiler parameters. Given that, and the difficulty in statically selecting parameters such as tile sizes, it makes sense to provide automatic parameter searching alongside the compiler. Our strategy is to optimize aggressively but to expose the compiler’s decisions to external control. We double or triple the performance of Gauss-Seidel relaxation and multi-grid (versus an optimizing compiler without tiling and array contraction), and we argue that ours is the best compiler for that kind of program.
  • Keywords
    Computer science; Contracts; Gaussian processes; Java; Kernel; Optimizing compilers; Program processors; Programming profession; Tiles; Titanium;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Supercomputing, ACM/IEEE 2002 Conference
  • ISSN
    1063-9535
  • Print_ISBN
    0-7695-1524-X
  • Type

    conf

  • DOI
    10.1109/SC.2002.10040
  • Filename
    1592868