A Formal Semantics of the MULTI-ML Language

In the context of high performance computing, it is important to avoid indeterminism and dead-locks. Multi-ML is a functional parallel programming language "à la ML", designed to program hierarchical architectures in a structured way. It is based of the Multi-BSP bridging model. To ensure that a program "cannot go wrong", we first need to define how a program "goes". To do so, we propose a formal operational semantics of the Multi-ML language to ensure the properties of the Multi-BSP model. We first describe a core-language and then introduce the big step's semantics evaluation rules. Then, we propose a set of evaluation rules that describe the behaviour of the Multi-ML language. The memory model is also precisely defined, as the Multi-BSP model deals with multiple level of nested memories.

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

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

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

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

[5]  Franck Cappello,et al.  MPI versus MPI+OpenMP on the IBM SP for the NAS Benchmarks , 2000, ACM/IEEE SC 2000 Conference (SC'00).

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

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

[8]  Rita Loogen,et al.  Comparing Parallel Functional Languages: Programming and Performance , 2003, High. Order Symb. Comput..

[9]  Daniel Etiemble,et al.  A framework for an automatic hybrid MPI+OpenMP code generation , 2011, SpringSim.

[10]  Hervé Grall,et al.  Coinductive big-step operational semantics , 2009, Inf. Comput..

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

[12]  Frédéric Loulergue,et al.  Bulk synchronous parallel ML with exceptions , 2006, Future Gener. Comput. Syst..

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