Title :
Compiling scientific code using partial evaluation
Author :
Berlin, Andrew ; Weise, Daniel
Author_Institution :
MIT, Cambridge, MA, USA
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.<>
Keywords :
natural sciences computing; parallel architectures; parallel programming; program compilers; scheduling; high-level program; low-level parallelism; low-level program; nine-body solar system; numerical programs; parallel architectures; parallel scheduler; parallel scheduling techniques; partial evaluation approach; partially evaluated program; performance improvements; pipelined; prototype compiler; scientific code; underlying numerical computation; Concurrent computing; Data structures; Parallel architectures; Parallel processing; Processor scheduling; Program processors; Programming profession; Prototypes; Runtime; Velocity measurement;