skip to main content
article
Open access

MULTILISP: a language for concurrent symbolic computation

Published: 01 October 1985 Publication History

Abstract

Multilisp is a version of the Lisp dialect Scheme extended with constructs for parallel execution. Like Scheme, Multilisp is oriented toward symbolic computation. Unlike some parallel programming languages, Multilisp incorporates constructs for causing side effects and for explicitly introducing parallelism. The potential complexity of dealing with side effects in a parallel context is mitigated by the nature of the parallelism constructs and by support for abstract data types: a recommended Multilisp programming style is presented which, if followed, should lead to highly parallel, easily understandable programs.
Multilisp is being implemented on the 32-processor Concert multiprocessor; however, it is ultimately intended for use on larger multiprocessors. The current implementation, called Concert Multilisp, is complete enough to run the Multilisp compiler itself and has been run on Concert prototypes including up to eight processors. Concert Multilisp uses novel techniques for task scheduling and garbage collection. The task scheduler helps control excessive resource utilization by means of an unfair scheduling policy; the garbage collector uses a multiprocessor algorithm based on the incremental garbage collector of Baker.

References

[1]
ACKERMAN, W., AND DENNIS, J. VAL--A Value-Oriented Algorithmic Language. LCS Tech. Rep. TR-218. Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, Mass., 1979.
[2]
ANDERSON, T. The Design of a Multiprocessor Development System. Tech. Rep. TR-279, Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, Mass., Sept. 1982.
[3]
ARVIND, GOSTELOW, $. G., AND PLOUrFE, W. An Asynchronous Programming Langauge and Computing Machine. Rep. TR114a, University of California, Irvine, 1978.
[4]
BACKUS, J. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Commun. ACM 21, 8 (Aug. 1978).
[5]
BAKER, H. Actor Systems for Real-Time Computation. Tech. Rep. TR-197, Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, Mass., Mar. 1978.
[6]
BAKER, H., AND HEWITT, C. The Incremental Garbage Collection of Processes. Artificial Intelligence Laboratory Memo 454, Massachusetts Institute of Technology, Cambridge, Mass., Dec. 1977.
[7]
BBN. Development of a Voice Funnel System: Quarterly Technical Report. BBN Reports 4845 (Jan. 1982) and 5284 (Apr. 1983). Bolt, Beranek, and Newman, Cambridge, Mass.
[8]
BOUKNIGHT, W. J., ET AL. The Illiac IV system. Proc. IEEE 60, 4 (Apr. 1972), 369-388.
[9]
BROOKS, F. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, Reading, Mass., 1975.
[10]
COHEN, S., ROSNER, R., ANO ZIDON, A. Paralisp Simulator (reference manual). Hebrew University Computer Science Dep. Res. Rep. 83-2, Jerusalem, Israel, Jan. 1983.
[11]
CORRELL, S. 8-1 uniprocessor architecture. S-1 Project 1979 Annual Report. Lawrence Livermore National Lab., Livermore, Calif., 1979.
[12]
DEMINET, J. Experience with multiprocessor algorithms. IEEE Trans. Comput. C-31, 4 (Apr. 1982), 278-288.
[13]
DIJKSTRA, E.W. The structure of the "THE" multiprogramming system. Commun. ACM 11, 5 (May 1968).
[14]
DIJKSTRA, E. W., ET AL. On-the-fly garbage collection: An exercise in cooperation. In Language Hierarchies and Interfaces (Lecture Notes in Computer Science 46). Springer Verlag, New York, 1976.
[15]
FODERARO, J. K., SKLOWER, K., AND LAYER, K. The Franz Lisp Manual. University of California UNIX distribution, 1983.
[16]
FRIEDMAN, D., AND WISE, D. Aspects of applicative programming for parallel processing. IEEE Trans. Comput. C-27, 4 (Apr. 1978), 289-296.
[17]
FRIEDMAN, D., AND WLSE, D. CONS should not evaluate its arguments. In S. Michaelson and R. Milner (Eds.), Automata, Languages and Programming, Edinburgh University Press, Edinburgh, 1976, pp. 257-284.
[18]
GABRIEL, R. P., AND MCCARTHY, J. Queue-based multiprocessing Lisp. Presented at the ACM Syrnp. Lisp and Functional Programming (Austin, Tex., Aug. 1984).
[19]
GOLDBERG, A., AND ROBSON, D. SmaUtalk-80: The Language and Its Implementation. Addison- Wesley, Reading, Mass., 1983.
[20]
GOTTLIEB, A., ET AL. The NYU ultracomputer--Designing an MIMD shared memory parallel computer. IEEE Trans. Comput. C-32, 2 (Feb. 1983), 175-189.
[21]
GOTTLIEB, A., LUBACHEVSKY, B., AND RUDOLPH, L. Basic techniques for the efficient coordination of very large numbers of cooperating sequential processors. ACM Trans. Program. Lang. Syst. 5, 2 (Apr. 1983), 164-189.
[22]
GURD, J., KIRKHAM, C., AND WATSON, I. The Manchester prototype datafiow computer. Commun. ACM 28, I (Jan. 1985), 34-52.
[23]
HALSTEAD, R. Architecture of a myriaprocessor. In IEEE COMPCON Spring 81 (San Francisco, Feb. 1981), 299-302.
[24]
HALSTEAD, R. Architecture of a myriaprocessor. In J. Solinsky (Ed.), Advanced Computer Concepts. La JoIla Institute, La Jolla, Calif., 1981.
[25]
HALSTEAD, R. Implementation of Multilisp: Lisp on a multiprocessor. In Proc. ACM Symp. Lisp and Functional Programming (Austin, Tex., Aug. 1984), 9-17.
[26]
HALSTEAD, R. Reference Tree Networks: Virtual Machine and Implementation. M.I.T. Laboratory for Computer Science Tech. Rep. TR-222, Cambridge, Mass., July 1979.
[27]
HALSTEAD, R., AND LOAIZA, J. Exception handling in Multilisp. Presented at the 1985 Int. Conf. Parallel Processing (St. Charles, Ill., Aug. 1985).
[28]
HAYNES, C., FRIEDMAN, D., AND WAND, M. Continuations and coroutines. In Proc. ACM Syrup. on Lisp and Functional Programming (Austin, Tex., Aug. 1984), 293-298.
[29]
HENDERSON, P., AND MORRIS, J.H. A lazy evaluator. Proc. 3rd ACM Symposium on Principles of Programming Languages (1976), 95-103.
[30]
HEWITT, C. Viewing control structures as patterns of passing messages. Working Paper 92, Artificial Intelligence Laboratory, M.I.T., Cambridge, Mass., Apr. 1976.
[31]
HOARE, C. A.R. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978).
[32]
HOARE, C. A.R. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct. 1974), 549-557.
[33]
ICHBIAH, J. D., ET AL. Preliminary ADA reference manual. SIGPLAN Not. 14, 6, Part A (June 1979).
[34]
IEEE Task P796/D2. Proposed microcomputer system 796 bus standard. IEEE Comput. 13, 10 (Oct. 1980), 89-105.
[35]
KELLSR, R. Redifiow multiprocessing. IEEE COMPCON Spring 84 (San Francisco, Feb. 1984).
[36]
KELLER, R., AND LIN, F. Simulated performance of a reduction-based multiprocessor. IEEE Comput. 17, 7 (July 1984), 70-82.
[37]
KERN1OHAN, B., AND RITCHIE, D. The C Programming Langauge. Prentice-Hall, Englewood Cliffs, N.J., 1978.
[38]
KNUEVEN, P., HIBBARD, P., AND LEVERETT, B. A language system for a multiprocessor environment. In Proc. 4th Int. Conf. Design and Implementation of Algorithmic Languages (Courant Institute of Mathematical Studies, New York, June 1976), 264-274.
[39]
KUCK, D., MURAOKA, Y., AND CHEN, S.-C. On the number of operations simultaneously executable in Fortran-like programs and their resulting speedup. }EEE Trans. Comput. C-21, 12 (Dec. 1972), 1293-1310.
[40]
LAMPSON, B., AND SPROULL, R. An open operating system for a single-user machine. In Proc. 7th Syrup. Operating Systems Principles (Asilomar, Calif., Dec. 1979), 98-105.
[41]
MARTI, J., AND FITCH, J. The Bath concurrent Lisp machine. EUROCAM '83(Lecture Notes in Computer Science). Springer Verlag, New York, 1983.
[42]
MCCARTHY, J., ET AL. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1965.
[43]
MCGRAW, J., ET AL. SISAL--Streams and Iteration in a Single-Assignment Language. Language Reference Manual (version 1.0), Lawrence Livermore National Lab., Livermore, Calif., July 1983.
[44]
MOLLER-NIELSEN, P., AND STAUNSTRUP, J. Experiments with a Multiprocessor. Tech. Rep. PB-185, Aarhus University Computer Science Dep., Aarhus, Denmark, Nov. 1984.
[45]
RETTBERG, R., ET AL. Development of a Voice Funnel System: Design Report. BBN Rep. 4088, Bolt, Beranek, and Newman, Cambridge, Mass., Aug. 1979.
[46]
RUSSELL, R.M. The CRAY-1 computer system. Commun. ACM 21, i (Jan. 1978), 63-72.
[47]
SCHWARTZ, J. Ultracomputers. ACM Trans. Program. Lang. Syst. 2, 4 (October. 1980), 484-521.
[48]
SEITZ, C.L. The cosmic cube. Commun. ACM 28, i (Jan. 1985), 22-33.
[49]
S~APIRO, E.Y. A Subset of Concurrent Prolog and Its Interpreter. Institute for New Generation Computer Technology Tech. Rep. TR-003, Jan. 1983.
[50]
SMITH, B. J. A pipelined, shared resource MIMD computer. In Proc. Int. Conf. Parallel Processing, 1978.
[51]
STEELE, G. L. Rabbit: A Compiler for Scheme. Tech. Rep. AI-TR-474, Artificial Intelligence Lab., M.I.T., Cambridge, Mass., May 1978.
[52]
SUGIMOTO, S., ET AL. A multimicroprocessor system for concurrent Lisp. In Proc. 1983 Int. Conf. Parallel Processing (June 1983).
[53]
TURNER, D. A new implementation technique for applicative languages. Softw. Pract. Exper. 9, 1 (Jan. 1979), 31-49.
[54]
WEINREB, D., AND MOON, D. Lisp Machine Manual. Symbolics Corp., Cambridge, Mass., 1984.
[55]
WENG, K. Stream-Oriented Computation in Recursive Data Flow Schemas. Tech. Memo TM-68, M.I.T. Laboratory for Computer Science, Cambridge, Mass., Oct. 1975.

Cited By

View all
  • (2024)Disentanglement with Futures, State, and InteractionProceedings of the ACM on Programming Languages10.1145/36328958:POPL(1569-1599)Online publication date: 5-Jan-2024
  • (2024)Language-Agnostic Static Deadlock Detection for FuturesProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638487(68-79)Online publication date: 2-Mar-2024
  • (2024)Futures for Dynamic Dependencies – Parallelizing the -LU FactorizationAsynchronous Many-Task Systems and Applications10.1007/978-3-031-61763-8_2(9-21)Online publication date: 14-Feb-2024
  • Show More Cited By

Recommendations

Reviews

Brent T. Hailpern

MULTILISP is a dialect of LISP (actually a version of the SCHEME dialect) with added constructs for parallel execution. MULTILISP has been implemented on the 32-processor Concert multiprocessor. It is destined for implementation on larger multiprocessors. The principal language extension provided by MULTILISP is “future ( x).” Upon executing “future ( x),” an immediate “undetermined” value is returned. The computation of “ x” occurs in parallel and the result replaces “undetermined” when complete. Of course, any use of the result would block the parent process until the computation is finished. The paper goes into great detail discussing the motivating issues in parallel language design. The author includes an excellent set of references on competing work. The author discusses the issues of lazy evaluation, resource allocation, and implementation. The implementation issues include intermediate instruction-set architecture (MCODE), synchronization, implementation of futures, task management, heap management, and garbage collection. The author also presents performance analysis based on the number of processors and the granularity of the parallelism in the algorithm (number of futures). The paper is well written, with extensive footnotes and references. A background in LISP fundamentals and the issues involved in distributed processing will be helpful, but is not necessary.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 7, Issue 4
Oct. 1985
185 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/4472
  • Editor:
  • Susan L. Graham
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 1985
Published in TOPLAS Volume 7, Issue 4

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)220
  • Downloads (Last 6 weeks)23
Reflects downloads up to 09 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Disentanglement with Futures, State, and InteractionProceedings of the ACM on Programming Languages10.1145/36328958:POPL(1569-1599)Online publication date: 5-Jan-2024
  • (2024)Language-Agnostic Static Deadlock Detection for FuturesProceedings of the 29th ACM SIGPLAN Annual Symposium on Principles and Practice of Parallel Programming10.1145/3627535.3638487(68-79)Online publication date: 2-Mar-2024
  • (2024)Futures for Dynamic Dependencies – Parallelizing the -LU FactorizationAsynchronous Many-Task Systems and Applications10.1007/978-3-031-61763-8_2(9-21)Online publication date: 14-Feb-2024
  • (2024)Active Objects Based on Algebraic EffectsActive Object Languages: Current Research Trends10.1007/978-3-031-51060-1_1(3-36)Online publication date: 29-Jan-2024
  • (2023)COWS for High Performance: Cost Aware Work Stealing for Irregular Parallel LoopACM Transactions on Architecture and Code Optimization10.1145/363333121:1(1-26)Online publication date: 18-Nov-2023
  • (2023)Asynchronous Modal FRPProceedings of the ACM on Programming Languages10.1145/36078477:ICFP(476-510)Online publication date: 31-Aug-2023
  • (2023)Responsive Parallelism with SynchronizationProceedings of the ACM on Programming Languages10.1145/35912497:PLDI(712-735)Online publication date: 6-Jun-2023
  • (2023)Efficient Variant Calling on Human Genome Sequences Using a GPU-Enabled Commodity ClusterProceedings of the 32nd ACM International Conference on Information and Knowledge Management10.1145/3583780.3615268(3843-3848)Online publication date: 21-Oct-2023
  • (2023)A Survey on Parallelism and DeterminismACM Computing Surveys10.1145/356452955:10(1-28)Online publication date: 2-Feb-2023
  • (2023)An Efficient Scheduler for Task-Parallel Interactive ApplicationsProceedings of the 35th ACM Symposium on Parallelism in Algorithms and Architectures10.1145/3558481.3591092(27-38)Online publication date: 17-Jun-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media