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.