FX-87 Performance Measurements: Dataflow Implementation
Abstract
This report documents a series of experiments performed to explore the thesis that the FX-87 effect system permits a compiler to schedule imperative programs (i.e., programs that may contain side-effects) for execution on a parallel computer. We analyze how much the FX-87 static effect system can improve the execution times of five benchmark programs on a parallel graph interpreter. Three of our benchmark programs do not use side-effects (factorial, fibonacci, and polynomial division) and thus did not have any effect induced constraints. Their FX-87 performance was comparable to their performance in a purely functional language. Two of our benchmark programs use side-effects (DNA sequence matching and Scheme interpretation) and our compiler was able to use effect information to reduce their execution times by factors of 1.7 to 5.4 when compared with sequential execution times. These results support our thesis that a static effect system is a powerful tool for compilation to multiprocessor computers. However, the graph interpreter we used was based on unrealistic assumptions, and thus our results may not accurately reflect the performance of a practical FX-87 implementation. The results also suggest that conventional loop analysis would complement the FX-87 effect system. Keywords: Concurrent programming, Programming languages, Compilers, Parallelism, FX-87 language, Functional programs, Scheme interpreter, Dataflow graphs.
Document Details
- Document Type
- Technical Report
- Publication Date
- Nov 01, 1988
- Accession Number
- ADA203150
Entities
People
- David K. Gifford
- R. T. Hammel
Organizations
- Massachusetts Institute of Technology