Abstract
The Scheme language can be converted into a parallel processing language by adding two new data types (placeholders andweak pairs), two processor synchronization primitives, and a task distribution mechanism. The mechanisms that support task creation, scheduling, and task synchronization are built using these extensions and features already present in the sequential language. Implementing the core of the parallel processing component in Scheme itself provides testbed for a variety of experiments and extensions.
MultiScheme, the system resulting from these extensions, supports Halstead's future construct as the simple model for parallelism. By revealing the underlying placeholders on top of which this construct is built, Multischeme supports a variety of additional parallel programming techniques. It supports speculative computation through a simple procedural interface and the automatic garbage collection of tasks. The qlet and qlambda constructs of the QLisp language are also easily implemented in MultiScheme, as are the more familiar fork and join constructs of imperative programming.
Article PDF
Similar content being viewed by others
Avoid common mistakes on your manuscript.
References
James Miller,MultiScheme: A Parallel Processing System Based on MIT Scheme. PhD thesis, Massachusetts Institute of Technology (August 1987). Available as MIT LCS/TR/402.
R. Halstead, Multilisp: A language for concurrent symbolic computation. InACM Trans. on Prog. Languages and Systems, p. 501–538 (October 1985).
Sharon L. Gray,Using Futures to Exploit Parallelism in Lisp, Master's thesis, Massachusetts Institute of Technology (1986).
A. Wang,Exploiting Parallelism in Lisp Programs with Side Effects, Bachelor's thesis, Massachusetts Institute of Technology (May 1986).
John McCarthy, A basis for a mathematical theory of computation. In P. Braffort and D. Hirschberg, (ed.),Computer Programming and Formal Systems, North-Holand (1963).
R. P. Gabriel and J. McCarthy, Queue-based multi-processing lisp. InACM Symp. on Lisp and Functional Programming, p. 25–44, Austin, Texas (August 1984).
M. Katz,ParaTran: A Transparent, Transaction Based Runtime Mechanism for Parallel Execution of Scheme, Master's thesis, Massachusetts Institute of Technology (May 1986).
Tom Knight, An architecture for mostly functional languages. InSymposium on LISP and Functional Programming, ACM, p. 105–112 (1986).
H. Baker and C. Hewitt,The Incremental Garbage Collection of Processes, AI Memo 454, Massuchetts Institute of Technology, Artificial Intelligence Laboratory (December 1977).
MIT Scheme Reference, Scheme Release 7, Massachusetts Institute of Technology, Cambridge, Massachusetts (1988).
Jonathan Rees and William Clinger (eds.). Revised3 report on the algorithmic language scheme.ACM Sigplan Notices,21(12) 37–79. Also available as MIT AI Memo 848a (December 1989).
James Miller, Garbage collection in multischeme. (in preparation)
Stewart Michael Clamen,Debugging in a Parallel Lisp Environment, Bachelor's thesis, Massachusetts Institute of Technology (1986).
Author information
Authors and Affiliations
Additional information
This research was supported in part by the Defense Advanced Research Projects Agency and was monitored by the Office of Naval Research under contract numbers N00014-83-K-0125, N00014-84-K0099, N00014-86-K-0180, and MDA903-84-C-0033. Additional funds and resources were provided by BBN Advanced Computers Inc., and the Hewlett-Packard Corporation. The work was performed as part of the author's dissertation research at the Massachusetts Institute of Technology.
Rights and permissions
About this article
Cite this article
Miller, J.S. Implementing a Scheme-based parallel processing system. Int J Parallel Prog 17, 367–402 (1988). https://doi.org/10.1007/BF01383881
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01383881