View Related Documents

Abstract

We propose an approach to the static parallelization of functional programs. In past work, implicit parallelism in functional programs has mostly been dynamic, i.e., implemented by parallel graph reduction. In a special application domain, scientific computing, a static parallelization method has been successful, which is based on a mathematical execution model, the polytope model. Since scientific computations are usually phrased imperatively, the study of the polytope model has focused on imperative programs. We show that the polytope model also applies to functional programs.
We describe the prerequisites for adapting the polytope model to Haskell, a non-strict functional language. Automatically generated parallel code in a subset of Haskell consists of instructions for an abstract parallel machine (APM). In future work, APM code can be translated further to native code for a parallel machine.
We demonstrate a parallelization in the polytope model on a functional program for LU decomposition.

Fulltext Preview

Image of the first page of the fulltext document