An ML Implementation of the MULTI-BSP Model

We have designed a parallel language called MULTI- ML for programming MULTI-BSP algorithms in ML. The MULTI- BSP model provides a tree-based view of nested components of hierarchical architectures. The structure and abstraction brought by MULTI-BSP allows for portable parallel programs with scalable performance predictions, without dealing with low-level details of architecture. The MULTI-ML language is essentially based on the concept of multi-functions which are recursive functions used to execute perform recursions on the nested sub¬components through the MULTI-BSP (hierarchical) architecture. In this paper we design a generic compilation scheme of the MULTI-ML language dedicated to parallel machines performing data exchanges using synchronous requests, derived from any ML compilation. This ensures that the implementation follows the semantics, allowing greater confidence in the safety of execution.

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

[2]  Simon Peyton Jones,et al.  The Implementation of Functional Programming Languages (Prentice-hall International Series in Computer Science) , 1987 .

[3]  Marco Pedicini,et al.  Sequential and Parallel Abstract Machines for Optimal Reduction , 2014 .

[4]  Michel Steuwer,et al.  LIFT: A functional data-parallel IR for high-performance GPU code generation , 2017, 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO).

[5]  Suresh Jagannathan,et al.  MultiMLton: A multicore-aware runtime for standard ML , 2014, J. Funct. Program..

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

[7]  Yves Bertot,et al.  Interactive Theorem Proving and Program Development: Coq'Art The Calculus of Inductive Constructions , 2010 .

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

[9]  Manuel M. T. Chakravarty,et al.  Nepal - Nested Data Parallelism in Haskell , 2001, Euro-Par.

[10]  Frédéric Gava,et al.  Multi-ML: Programming Multi-BSP Algorithms in ML , 2017, International Journal of Parallel Programming.

[11]  Martin Alt,et al.  Using algorithmic skeletons for efficient grid computing with predictable performance , 2007 .

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

[13]  Frédéric Gava,et al.  A Formal Semantics of the MULTI-ML Language , 2018, 2018 17th International Symposium on Parallel and Distributed Computing (ISPDC).

[14]  Xavier Leroy,et al.  The ZINC experiment : an economical implementation of the ML language , 1990 .

[15]  Leslie G. Valiant A Bridging Model for Multi-core Computing , 2008, ESA.

[16]  Frédéric Loulergue,et al.  Bulk Synchronous Parallel ML: Modular Implementation and Performance Prediction , 2005, International Conference on Computational Science.

[17]  Victor Allombert,et al.  PhD Abstracts , 2017, Journal of Functional Programming.

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

[19]  Christoph W. Kessler,et al.  NestStep: Nested Parallelism and Virtual Shared Memory for the BSP Model , 2000, The Journal of Supercomputing.

[20]  Murray Cole,et al.  Bringing skeletons out of the closet: a pragmatic manifesto for skeletal parallel programming , 2004, Parallel Comput..

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

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