skip to main content
Optimizing programs by data and control transformations
Publisher:
  • University of Rochester
  • Dept. of Computer Science Rochester, NY
  • United States
Order Number:UMI Order No. GAX98-08872
Bibliometrics
Skip Abstract Section
Abstract

This dissertation presents new techniques designed to speed up the execution of computer programs by improving their memory locality. Locality is an important property for today's machines, because it hides the relatively high latency of computer memories.

Our techniques change the layout of multidimensional arrays by applying data transformations. We unify data transformations with code transformations which change the order of execution of loop nests. We solve related problems which would have been obstacles to the practical use of our techniques: we show how to detect and reduce array overlapping and how to recover structure from linearized arrays. Our optimizations reduce the execution times of sequential, scientific benchmarks by up to 50% over what is possible with previous techniques. Parallel programs are improved by as much as a factor of four.

In addition to implementing our techniques in a standard, off-line, compiler, we adapt our optimizations to Just-In-Time (JIT) compilation. The JIT translation becomes very important with the increasing popularity of mobile technologies such as Java. We argue that new, faster algorithms are needed in that context. We propose a collection of fast, approximate compiler techniques for data transformations and show that they are effective for Java programs.

Contributors
  • Microsoft Corporation

Index Terms

  1. Optimizing programs by data and control transformations

    Recommendations