Compiling Scientific Code Using Partial Evaluation

  • Authors:
  • Andrew Berlin;Daniel Weise

  • Affiliations:
  • Massachusetts Institute of Technology, Cambridge;Stanford Univ., Stanford, CA

  • Venue:
  • Computer
  • Year:
  • 1990

Quantified Score

Hi-index 4.10

Visualization

Abstract

The partial evaluation approach, which transforms a high-level program into a low-level program that is specialized for a particular application, exposing the parallelism inherent in the underlying numerical computation, is discussed. A prototype compiler that uses partial evaluation is described. Experiments with the compiler have shown that for an important class of numerical programs, partial evaluation can provide marked performance improvements: speedups over conventionally compiled code that range from seven times faster to 91 times faster have been measured. By coupling partial evaluation with parallel scheduling techniques, the low-level parallelism inherent in a computation can be exploited on heavily pipelined or parallel architectures. The approach has been demonstrated by applying a parallel scheduler to a partially evaluated program that simulates the motion of a nine-body solar system.