Correctness of a Distributed-Memory Model for Scheme

We propose a high-level approach to program distributed applications; it is based on the annotation future by which the programmer specifies which expressions may be evaluated remotely in parallel. We present the CEKDS-Machine, an abstract machine with a distributed memory, able to evaluate Scheme-like future-based programs. In this paper, we focus on the issue of task migration and prove that task migration is transparent to the user, i.e. task migration does not change the observable behaviour of programs.

[1]  Luc Moreau The PCKS-Machine: An Abstract Machine for Sound Evaluation of Parallel Functional Programs with First-Class Continuations , 1994, ESOP.

[2]  David De Roure,et al.  Design of a Concurrent and Distributed Language , 1992, Parallel Symbolic Computing.

[3]  Robert H. Halstead,et al.  New Ideas in Parallel Lisp: Language Design, Implementation, and Programming Tools , 1989, Workshop on Parallel Lisp.

[4]  Jack Dongarra,et al.  Pvm 3 user's guide and reference manual , 1993 .

[5]  Ian T. Foster,et al.  Productive Parallel Programming: The PCN Approach , 1995, Sci. Program..

[6]  Pete Tinker,et al.  Parallel execution of sequential scheme with ParaTran , 1988, LISP and Functional Programming.

[7]  Message P Forum,et al.  MPI: A Message-Passing Interface Standard , 1994 .

[8]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[9]  Matthias Felleisen,et al.  Control operators, the SECD-machine, and the λ-calculus , 1987, Formal Description of Programming Concepts.

[10]  Christian Queinnec,et al.  Sharing Mutable Objects and Controlling Groups of Tasks in a Concurrent and Distributed Language , 1994, Theory and Practice of Parallel Programming.

[11]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[12]  Luc Moreau The semantics of Scheme with future , 1996, ICFP '96.

[13]  Daniel Weise,et al.  Continuing Into the Future: On the Interaction of Futures and First-Class Continuations , 1989, Workshop on Parallel Lisp.

[14]  Christian Queinnec Locality, causality and continuations , 1994, LFP '94.

[15]  Matthias Felleisen,et al.  The semantics of future and its use in program optimization , 1995, POPL '95.

[16]  Matthias Felleisen,et al.  A Reduction Semantics for Imperative Higher-Order Languages , 1987, PARLE.

[17]  K. Mani Chandy,et al.  CC++: A Declarative Concurrent Object Oriented Programming Notation , 1993 .

[18]  Bradley C. Kuszmaul,et al.  Cilk: an efficient multithreaded runtime system , 1995, PPOPP '95.

[19]  Christian Queinnec DMEROON, Overview of a Distributed Class-Based Causally-Coherent Data Model , 1995, PSLS.

[20]  Julian Padget,et al.  Controlling (virtual) multicomputers , 1994, Proceedings of the First International Conference on Massively Parallel Computing Systems (MPCS) The Challenges of General-Purpose and Special-Purpose Computing.

[21]  José M. Piquer Indirect Mark and Sweep: A Distributed GC , 1995, IWMM.

[22]  Robert H. Halstead,et al.  Lazy task creation: a technique for increasing the granularity of parallel programs , 1990, LISP and Functional Programming.

[23]  Daniel Ribbens,et al.  The Semantics of pcall and fork , 1995 .

[24]  Slocum Miller James,et al.  Multischeme : a parallel processing system based on MIT scheme , 1987 .

[25]  Christian Queinnec,et al.  Garbage collecting the world , 1992, POPL '92.

[26]  Marc Feeley,et al.  An efficient and general implementation of futures on large scale shared-memory multiprocessors , 1993 .

[27]  Takayasu ITO,et al.  A Parallel Lisp Language PaiLisp and Its Kernel Specification , 1989, Workshop on Parallel Lisp.