MaRS, a Combinator Graph Reduction Multiprocessor

The MaRS machine is an experimental modular distributed control multiprocessor, for parallel graph reduction, using a combinator machine language, and dedicated to the parallel execution of purely functional languages. A basic programming language for the machine, named MaRS Lisp, has been defined, the main features of which are : call-by-need (default), higher order functions, implicit curryfication of functions. It includes a simple mechanism to express parallelism, similar to the future construction of Multilisp [15]. A prototype of MaRS is currently being designed in VLSI 1.5-micron CMOS technology with two levels of metal, by means of a CAD system. The prototype is scheduled to be completed by 1989. The machine uses specific types of processor for Reduction, Memory and Communication. The Communication processor is the basic element of an Omega switching interconnection network. In addition to its routing function, the communication network is able to balance the activities in the machine, thanks to charge information processed by each Communication processor and propagated along the network, in the opposite direction of messages. This charge information also serves to modify dynamically the execution model, so as to resume execution in a sequential manner when the parallelism is high enough to keep each reduction processor fully busy; and vice versa, so as to allow creation of new parallel processes when the machine is not saturated. The machine architecture and its functional organization are described, as well as the execution model. Some expected performances are given, obtained by mean of fine-grained simulations.

[1]  Robert M. Keller,et al.  Simulated Performance of a Reduction-Based Multiprocessor , 1984, Computer.

[2]  Simon L. Peyton Jones,et al.  GRIP - A high-performance architecture for parallel graph reduction , 1987, FPCA.

[3]  Paul Hudak,et al.  Distributed execution of functional programs using serial combinators , 1985, IEEE Transactions on Computers.

[4]  S. Kamal Abdali,et al.  An abstraction algorithm for combinatory logic , 1976, Journal of Symbolic Logic.

[5]  Michel Lemaître,et al.  A Set of Combinators for Abstraction in Linear Space , 1987, Inf. Process. Lett..

[6]  Geoffrey L. Burn,et al.  Overview of a Parallel Reduction Machine Project , 1987, PARLE.

[7]  Richard P. Gabriel,et al.  Performance and evaluation of Lisp systems , 1985 .

[8]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[9]  Mark Scheevel NORMA: a graph reduction processor , 1986, LFP '86.

[10]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[11]  Guy Durrieu,et al.  Toward the design of a parallel graph reduction machine: The MaRS project , 1986, Graph Reduction.

[12]  Benjamin Goldberg Buckwheat: graph reduction on a shared-memory multiprocessor , 1988, LFP '88.

[13]  Paul Hudak,et al.  Alfalfa: Distributed graph reduction on a hypercube multiprocessor , 1986, Graph Reduction.

[14]  Paul Watson,et al.  Evaluating functional programs on the FLAGSHIP machine , 1987, FPCA.

[15]  John Darlington,et al.  ALICE a multi-processor reduction machine for the parallel evaluation CF applicative languages , 1981, FPCA '81.

[16]  Paul Hudak,et al.  Graphinators and the duality of SIMD and MIMD , 1988, LFP '88.

[17]  Guy Durrieu,et al.  Mechanisms for efficient multiprocessor combinator reduction , 1986, LFP '86.

[18]  W. Daniel Hillis,et al.  The connection machine , 1985 .

[19]  Robert H. Halstead An assessment of multilisp: Lessons from experience , 2005, International Journal of Parallel Programming.