Abstract
Multilisp is a parallel programming language derived from the Scheme dialect of Lisp by addition of thefuture construct. It has been implemented on Concert, a 32-processor shared-memory multiprocessor. A statistics-gathering feature of Concert Multilisp producesparallelism profiles showing the number of processors busy with computing or overhead, as a function of time. Experience gained using parallelism profiles and other measurement tools on several application programs has revealed three basic ways in whichfuture generates concurrency. These ways are illustrated on two example programs: the Lisp mapping functionmapcar and the partitioning routine from Quicksort. Experience with Multilisp programming exposes issues relating to side effects, error and exception handling, low-level operations for explicit manipulation of futures and tasks, and speculative computing, which are also discussed. The basic outlines of Multilisp are now fairly clear and have stood the test of being used for several applications, but further language design work is especially needed in the areas of speculative computing and exception handling.
Similar content being viewed by others
References
H. Abelson, and G. Sussman,Structure and Interpretation of Computer Programs, M.I.T. Press, Cambridge, Mass., (1984).
J. Rees, and W. Clinger, (eds.), “Revised3 Report on the Algorithmic Language Scheme,”ACM SIGPLAN Notices 21(12): 37–79, (December 1986).
T. Anderson,The Design of a Multiprocessor Development System, M.I.T. Laboratory for Computer Science Technical Report TR-279, Cambridge, Mass., (September 1982).
R. Halstead, T. Anderson, R. Osborne, and T. Sterling, Concert: Design of a Multiprocessor Development System,13th Annual Symp. on Computer Architecture, Tokyo, pp. 40–48 June 1986.
R. Halstead, Multilisp: A Language for Concurrent Symbolic Computation,ACM Trans. on Prog. Languages and Systems 7(4):501–538, (October 1985).
R. Osborne,Modeling the Performance of the Concert Multiprocessor, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (June 1986).
R. Halstead, Concurrent Lisp Machines, to appear inSupercomputers and AI Machines, K. Hwang and D. DeGroot, (eds.), McGraw-Hill, New York, (1988).
R. Halstead, Parallel Symbolic Computing,IEEE Computer 19(8): 35–43 August 1986.
R. Halstead, Parallel Computing Using Multilisp, to appear inParallel Computation and Computers for Artificial Intelligence, J. Kowalik, (ed.), Kluwer Academic Publishers, (1987).
E. Bradley,Logic Simulation on a Multiprocessor, Technical Report TR-380, M.I.T. Laboratory for Computer Science, Cambridge, Mass., (November 1986).
M. Ma,Efficient Message-Based System for Concurrent Simulation, Ph.D. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (in preparation).
W. Lau,Lexical Analysis of Noisy Phonetic Transcriptions, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (February 1986).
H. J. Baek,Parallel Retrieval Algorithms for Semantic Nets, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (June 1986).
S. Solomon,A Query Language on a Parallel Machine Operating System, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass. (May 1985).
R. Gabriel,Performance and Evaluation of Lisp Systems, M.I.T. Press, Cambridge, Mass., (1985).
E. Krall and P. McGehearty, A Case Study of Parallel Execution of a Rule-Based Expert System,Int'l. J. of Parallel Programming 15(1): 5–32 (February 1986).
G. Steele, S. Fahlman, R. Gabriel, D. Moon, and D. Weinreb,Common Lisp Reference Manual, Digital Press, Burlington, Mass., (1984).
S. Gray,Using Futures to Exploit Parallelism in Lisp, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass. (January 1986).
G. L. Steele and W. D. Hillis, Connection Machine Lisp: Fine-Grained Parallel Symbolic Processing,1986 ACM Conf. on Lisp and Functional Programming, Cambridge, Mass., pp. 279–297 (August 1986).
Arvind and D. Culler, “Dataflow Architectures,”,Annual Reviews in Computer Science, Annual Reviews, Inc., Palo Alto, Ca., pp. 225–253 (1986).
Arvind, R. S. Nikhil, and K. K. Pingali, “I-Structures: Data Structures for Parallel Computing,”Proc. Workshop on Graph Reduction, Los Alamos, N.M. (September 1986); also Computation Structures Group Memo 269, M.I.T. Laboratory for Computer Science, Cambridge, Mass., (February 1987).
R. Halstead, Architecture of a Myriaprocessor,IEEE COMPCON Spring 81, San Francisco, pp. 299–302 (February 1981).
Arvind and K. Gostelow, The U-Interpreter,IEEE Computer 15(2): 42–49 (February 1982).
A. Davis and R. Keller, Data Flow Program Graphs,IEEE Computer 15(2):26–41 (February 1982).
J. B. Dennis, Data Flow Supercomputers,IEEE Computer 13(11):48–56 (November 1980).
A. Wang,Exploiting Parallelism in Lisp Programs with Side Effects, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (May 1986).
R. Halstead, Architecture of a Myriaprocessor, inAdvanced Computer Concepts, (ed.) J. Solinsky, La Jolla Institute, La Jolla, California, (1981).
J. B. Goodenough, Exception Handling: Issues and a Proposed Notation,Comm. ACM 18(12): 683–696 (December 1975).
J. D. Ichbiah,et al., Preliminary ADA Reference Manual,SIGPLAN Notices 14(6) Part A, (June 1979).
B. H. Liskov and A. Snyder, Exception Handling in CLU,IEEE Trans. Softw. Eng. SE-5:6: 546–558 (November 1979).
Symbolics Corp.,Symbolics Common Lisp: Language Concepts, Symbolics Corp., Cambridge, Mass., (August 1986).
R. Halstead and J. Loaiza, “Exception Handling in Multilisp,”1985 Int'l. Conf. on Parallel Processing, St. Charles, Ill., pp. 822–830 (August 1985).
C. Wetherell, Error Data Values in the Data-Flow Language VAL,ACM Trans. on Prog. Languages and Systems 4(2): 226–238 (April 1983).
J. Miller, MultiScheme: A Parallel Processing System Based on MIT Scheme, Ph.D. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., (September 1987).
E. Shapiro, Concurrent Prolog: A Progress Report,IEEE Computer 19(8): 44–58 (August 1986).
F. W. Burton, Controlling Speculative Computation in a Parallel Functional Programming Language, Dept. of E.E. and Computer Sci., U. of Colorado, Denver, Co. (August 1984).
R. P. Gabriel and J. McCarthy, Queue-based Multi-processing Lisp,1984 ACM Symp. on Lisp and Functional Programming, Austin, Tex., pp. 25–44 (August 1984).
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 and N00014-84-K-0099.
Rights and permissions
About this article
Cite this article
Halstead, R.H. An assessment of multilisp: Lessons from experience. Int J Parallel Prog 15, 459–501 (1986). https://doi.org/10.1007/BF01407410
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01407410