A Parallel Categorical Abstract Machine for Bulk Synchronous Parallel ML

We have designed a functional data-parallel language called BSML for programming bulk-synchronous parallel (BSP) algorithms in so-called direct mode. In a directmode BSP algorithm, the physical structure of processes is made explicit. The execution time can then be estimated and dead-locks and indeterminism are avoided. The BSMLlib library has been implemented for the Objective Caml language. But there is currently no full implementation of such a language and an abstract machine is needed to have a certified implementation. Our approach is based on a byte-code compilation to a parallel abstract machine performing exchange of data and synchronous requests derived from the abstract machine of the Caml language.

[1]  Pierre-Louis Curien,et al.  The Categorical Abstract Machine , 1987, Sci. Comput. Program..

[2]  de Ng Dick Bruijn Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[3]  Frédéric Gava,et al.  Formal Proofs of Functional BSP Programs , 2003, Parallel Process. Lett..

[4]  Thérèse Hardin,et al.  Functional runtime systems within the lambda-sigma calculus , 1998, Journal of Functional Programming.

[5]  Frédéric Loulergue,et al.  A calculus of functional BSP programs , 2000, Sci. Comput. Program..

[6]  Frédéric Loulergue,et al.  Semantics of a Functional Bulk Synchronous Parallel Language with Imperative Features , 2003 .

[7]  Frédéric Loulergue Distributed Evaluation of Functional BSP Programs , 2001, Parallel Process. Lett..

[8]  de Ng Dick Bruijn,et al.  Lambda calculus notation with nameless dummies, a tool for automatic formula manipulation, with application to the Church-Rosser theorem , 1972 .

[9]  Andrew W. Appel,et al.  Compiling with Continuations , 1991 .

[10]  Frédéric Loulergue Implementation of a Functional Bulk Synchronous Parallel Programming Library , 2002, IASTED PDCS.

[11]  Leslie G. Valiant,et al.  Direct Bulk-Synchronous Parallel Algorithms , 1994, J. Parallel Distributed Comput..

[12]  Leslie G. Valiant,et al.  A bridging model for parallel computation , 1990, CACM.

[13]  Simon L. Peyton Jones,et al.  The Implementation of Functional Programming Languages , 1987 .

[14]  Frédéric Loulergue A Calculus of Functional BSP Programs with Explicit Substitutions , 2003, PARCO.

[15]  Amy P. Felty,et al.  The Coq proof assistant user's guide : version 5.6 , 1990 .

[16]  William F. McColl,et al.  Scalability, portability and predictability: The BSP approach to parallel programming , 1996, Future Gener. Comput. Syst..

[17]  Gaétan Hains,et al.  The Data-Parallel Categorical Abstract Machine , 1993, PARLE.

[18]  David B. Skillicorn,et al.  Questions and Answers about BSP , 1997, Sci. Program..

[19]  Pierre-Louis Curien,et al.  Categorical Combinators , 1986, Inf. Control..

[20]  Luca Cardelli,et al.  Compiling a functional language , 1984, LFP '84.

[21]  Gérard Huet,et al.  The CAML primer , 1990 .

[22]  Ascánder Suárez,et al.  Implementing functional languages in the Categorical Abstract Machine , 1986, LFP '86.

[23]  Gaetan Hains,et al.  An SPMD environment machine for functional BSP programs , 2001 .

[24]  Frédéric Loulergue,et al.  A Polymorphic Type System for Bulk Synchronous Parallel ML , 2003, PaCT.

[25]  Samuel Boutin,et al.  Proving Correctness of the Translation from Mini-ML to the CAM with the Coq Proof Development System , 1995 .

[26]  Joëlle Despeyroux,et al.  Proof of Translation in Natural Semantics , 1986, LICS.

[27]  Emmanuel Chailloux,et al.  Caml Flight: a Portable SPMD Extension of ML for Distributed Memory Multiprocessors , 1995 .

[28]  Jack Dongarra,et al.  MPI: The Complete Reference , 1996 .

[29]  Robin Milner,et al.  Definition of standard ML , 1990 .

[30]  Pierre-Louis Curien Categorical Combinators, Sequential Algorithms, and Functional Programming , 1993, Progress in Theoretical Computer Science.

[31]  P. J. Landin The Mechanical Evaluation of Expressions , 1964, Comput. J..

[32]  Dominique Clément,et al.  A simple applicative language: mini-ML , 1986, LFP '86.

[33]  Gilles Kahn,et al.  Natural Semantics , 1987, STACS.