Applicability of the Polytope Model to Functional Programs

New areas of applications make the world of supercomputing more important than ever before. The programming of parallel machines remains di cult, even though new languages are being developed every year. They often follow the imperative paradigm, enriched with low-level parallel directives. To improve on this situation, we propose the use of functional languages, known for their ease of programming due to their high level of abstraction, and employ a speci c parallelization method based on the polytope model, which has been successful for imperative scienti c programs. We describe the prerequisites for adapting the polytope model to Haskell, a non-strict functional language. Di erent evaluation strategies are being considered and the question of how indexed data structures are to be dealt with in a functional language is examined. Finally, a parallelization of the LU decomposition algorithm exempli es the method.

[1]  TimePaul FeautrierLaboratoire Masi Some Eecient Solutions to the Aane Scheduling Problem Part I One-dimensional Time , 1993 .

[2]  Kenneth R. Traub Implementation of non-strict functional programming languages , 1991, Research monographs in parallel and distributed computing.

[3]  Hans-Wolfgang Loidl,et al.  Algorithm + strategy = parallelism , 1998, Journal of Functional Programming.

[4]  F. Warren Burton,et al.  A New Method for Functional Arrays , 1997, J. Funct. Program..

[5]  Sergei Gorlatch,et al.  Parallelizing functional programs by generalization , 1999 .

[6]  Martin Griebl,et al.  The loop parallelizer LooPo , 1996 .

[7]  Chris Reade,et al.  Elements of functional programming , 1989, International computer science series.

[8]  Marko C. J. D. van Eekelen,et al.  CLEAN: A language for functional graph writing , 1987, FPCA.

[9]  Paul Steckler,et al.  The Functional Imperative: Shape! , 1998, ESOP.

[10]  Curtis F. Gerald,et al.  APPLIED NUMERICAL ANALYSIS , 1972, The Mathematical Gazette.

[11]  Paul Feautrier Toward Automatic Distribution , 1994, Parallel Process. Lett..

[12]  John McCarthy,et al.  LISP 1.5 Programmer's Manual , 1962 .

[13]  Christian Lengauer,et al.  Loop Parallelization in the Polytope Model , 1993, CONCUR.

[14]  Yves Robert,et al.  Mapping affine loop nests: new results , 1995, HPCN Europe.

[15]  Philip Wadler Monads for Functional Programming , 1995, Advanced Functional Programming.

[16]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[17]  John T. O'Donnell Data Parallel Implementation of Extensible Sparse Functional Arrays , 1993, PARLE.

[18]  John Feo,et al.  SISAL reference manual. Language version 2.0 , 1990 .

[19]  P. Feautrier Some Eecient Solutions to the Aane Scheduling Problem Part I One-dimensional Time , 1996 .

[20]  Doran Wilde,et al.  The ALPHA language , 1994 .

[21]  Guy E. Blelloch,et al.  Implementation of a portable nested data-parallel language , 1993, PPOPP '93.