Bulk synchronous parallel ML (BSML) is an extension of ML for programming direct-mode parallel to bulk synchronous parallel (BSP) algorithms as functional programs. A BSP algorithm is said to be in direct mode when its physical process structure is made explicit. Such algorithms offer predictable and scalable performances, and BSML expresses them with a small set of primitives taken from the confluent BSA (body surface area) calculus: a constructor of parallel vectors, asynchronous parallel function application, synchronous global communications, and a synchronous global conditional. A BSP program is executed as a sequence of super-steps, each one divided into (at most) three successive and logically disjoint phases. The chapter discusses a bulk synchronous parallel zinc abstract machine (BSP ZAM), which is an extension of the zinc abstract machine used in the Objective Caml implementation. This BSP ZAM implementation will be the basis of a parallel programming environment developed from the Caml-light language and environment
['Frédéric Loulergue']
A Calculus of Functional BSP Programs with Explicit Substitutions.