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.
- 2 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. Google Scholar
- 3 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. Google Scholar
- 4 ARVIND, GOSTELOW, $. G., AND PLOUrFE, W. An Asynchronous Programming Langauge and Computing Machine. Rep. TR114a, University of California, Irvine, 1978.Google Scholar
- 5 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). Google Scholar
- 6 BAKER, H. Actor Systems for Real-Time Computation. Tech. Rep. TR-197, Massachusetts Institute of Technology, Laboratory for Computer Science, Cambridge, Mass., Mar. 1978. Google Scholar
- 7 BAKER, H., AND HEWITT, C. The Incremental Garbage Collection of Processes. Artificial Intelligence Laboratory Memo 454, Massachusetts Institute of Technology, Cambridge, Mass., Dec. 1977. Google Scholar
- 8 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.Google Scholar
- 9 BOUKNIGHT, W. J., ET AL. The Illiac IV system. Proc. IEEE 60, 4 (Apr. 1972), 369-388.Google Scholar
- 10 BROOKS, F. The Mythical Man-Month: Essays on Software Engineering. Addison-Wesley, Reading, Mass., 1975. Google Scholar
- 11 COHEN, S., ROSNER, R., ANO ZIDON, A. Paralisp Simulator (reference manual). Hebrew University Computer Science Dep. Res. Rep. 83-2, Jerusalem, Israel, Jan. 1983.Google Scholar
- 12 CORRELL, S. 8-1 uniprocessor architecture. S-1 Project 1979 Annual Report. Lawrence Livermore National Lab., Livermore, Calif., 1979.Google Scholar
- 13 DEMINET, J. Experience with multiprocessor algorithms. IEEE Trans. Comput. C-31, 4 (Apr. 1982), 278-288.Google Scholar
- 14 DIJKSTRA, E.W. The structure of the "THE" multiprogramming system. Commun. ACM 11, 5 (May 1968). Google Scholar
- 15 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. Google Scholar
- 16 FODERARO, J. K., SKLOWER, K., AND LAYER, K. The Franz Lisp Manual. University of California UNIX distribution, 1983.Google Scholar
- 17 FRIEDMAN, D., AND WISE, D. Aspects of applicative programming for parallel processing. IEEE Trans. Comput. C-27, 4 (Apr. 1978), 289-296.Google Scholar
- 18 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.Google Scholar
- 19 GABRIEL, R. P., AND MCCARTHY, J. Queue-based multiprocessing Lisp. Presented at the ACM Syrnp. Lisp and Functional Programming (Austin, Tex., Aug. 1984). Google Scholar
- 20 GOLDBERG, A., AND ROBSON, D. SmaUtalk-80: The Language and Its Implementation. Addison- Wesley, Reading, Mass., 1983. Google Scholar
- 21 GOTTLIEB, A., ET AL. The NYU ultracomputer--Designing an MIMD shared memory parallel computer. IEEE Trans. Comput. C-32, 2 (Feb. 1983), 175-189.Google Scholar
- 22 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. Google Scholar
- 23 GURD, J., KIRKHAM, C., AND WATSON, I. The Manchester prototype datafiow computer. Commun. ACM 28, I (Jan. 1985), 34-52. Google Scholar
- 24 HALSTEAD, R. Architecture of a myriaprocessor. In IEEE COMPCON Spring 81 (San Francisco, Feb. 1981), 299-302.Google Scholar
- 25 HALSTEAD, R. Architecture of a myriaprocessor. In J. Solinsky (Ed.), Advanced Computer Concepts. La JoIla Institute, La Jolla, Calif., 1981.Google Scholar
- 26 HALSTEAD, R. Implementation of Multilisp: Lisp on a multiprocessor. In Proc. ACM Symp. Lisp and Functional Programming (Austin, Tex., Aug. 1984), 9-17. Google Scholar
- 27 HALSTEAD, R. Reference Tree Networks: Virtual Machine and Implementation. M.I.T. Laboratory for Computer Science Tech. Rep. TR-222, Cambridge, Mass., July 1979.Google Scholar
- 28 HALSTEAD, R., AND LOAIZA, J. Exception handling in Multilisp. Presented at the 1985 Int. Conf. Parallel Processing (St. Charles, Ill., Aug. 1985).Google Scholar
- 29 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. Google Scholar
- 30 HENDERSON, P., AND MORRIS, J.H. A lazy evaluator. Proc. 3rd ACM Symposium on Principles of Programming Languages (1976), 95-103. Google Scholar
- 31 HEWITT, C. Viewing control structures as patterns of passing messages. Working Paper 92, Artificial Intelligence Laboratory, M.I.T., Cambridge, Mass., Apr. 1976.Google Scholar
- 32 HOARE, C. A.R. Communicating sequential processes. Commun. ACM 21, 8 (Aug. 1978). Google Scholar
- 33 HOARE, C. A.R. Monitors: An operating system structuring concept. Commun. ACM 17, 10 (Oct. 1974), 549-557. Google Scholar
- 34 ICHBIAH, J. D., ET AL. Preliminary ADA reference manual. SIGPLAN Not. 14, 6, Part A (June 1979). Google Scholar
- 35 IEEE Task P796/D2. Proposed microcomputer system 796 bus standard. IEEE Comput. 13, 10 (Oct. 1980), 89-105.Google Scholar
- 36 KELLSR, R. Redifiow multiprocessing. IEEE COMPCON Spring 84 (San Francisco, Feb. 1984).Google Scholar
- 37 KELLER, R., AND LIN, F. Simulated performance of a reduction-based multiprocessor. IEEE Comput. 17, 7 (July 1984), 70-82.Google Scholar
- 38 KERN1OHAN, B., AND RITCHIE, D. The C Programming Langauge. Prentice-Hall, Englewood Cliffs, N.J., 1978.Google Scholar
- 39 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.Google Scholar
- 40 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.Google Scholar
- 41 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. Google Scholar
- 42 MARTI, J., AND FITCH, J. The Bath concurrent Lisp machine. EUROCAM '83(Lecture Notes in Computer Science). Springer Verlag, New York, 1983. Google Scholar
- 43 MCCARTHY, J., ET AL. LISP 1.5 Programmer's Manual. M.I.T. Press, Cambridge, Mass., 1965. Google Scholar
- 44 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.Google Scholar
- 45 MOLLER-NIELSEN, P., AND STAUNSTRUP, J. Experiments with a Multiprocessor. Tech. Rep. PB-185, Aarhus University Computer Science Dep., Aarhus, Denmark, Nov. 1984.Google Scholar
- 46 RETTBERG, R., ET AL. Development of a Voice Funnel System: Design Report. BBN Rep. 4088, Bolt, Beranek, and Newman, Cambridge, Mass., Aug. 1979.Google Scholar
- 47 RUSSELL, R.M. The CRAY-1 computer system. Commun. ACM 21, i (Jan. 1978), 63-72. Google Scholar
- 48 SCHWARTZ, J. Ultracomputers. ACM Trans. Program. Lang. Syst. 2, 4 (October. 1980), 484-521. Google Scholar
- 49 SEITZ, C.L. The cosmic cube. Commun. ACM 28, i (Jan. 1985), 22-33. Google Scholar
- 50 S~APIRO, E.Y. A Subset of Concurrent Prolog and Its Interpreter. Institute for New Generation Computer Technology Tech. Rep. TR-003, Jan. 1983.Google Scholar
- 51 SMITH, B. J. A pipelined, shared resource MIMD computer. In Proc. Int. Conf. Parallel Processing, 1978.Google Scholar
- 52 STEELE, G. L. Rabbit: A Compiler for Scheme. Tech. Rep. AI-TR-474, Artificial Intelligence Lab., M.I.T., Cambridge, Mass., May 1978. Google Scholar
- 53 SUGIMOTO, S., ET AL. A multimicroprocessor system for concurrent Lisp. In Proc. 1983 Int. Conf. Parallel Processing (June 1983).Google Scholar
- 54 TURNER, D. A new implementation technique for applicative languages. Softw. Pract. Exper. 9, 1 (Jan. 1979), 31-49.Google Scholar
- 55 WEINREB, D., AND MOON, D. Lisp Machine Manual. Symbolics Corp., Cambridge, Mass., 1984. Google Scholar
- 56 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.Google Scholar
Index Terms
- MULTILISP: a language for concurrent symbolic computation
Recommendations
Implementation of multilisp: Lisp on a multiprocessor
LFP '84: Proceedings of the 1984 ACM Symposium on LISP and functional programmingMultilisp is an extension of Lisp (more specifically, of the Lisp dialect Scheme [15]) with additional operators and additional semantics to deal with parallel execution. It is being implemented on the 32-processor Concert multiprocessor. The current ...
Overview of concert multilisp: a multiprocessor symbolic computing system
Multilisp is a parallel programming language derived from the Scheme dialect of Lisp by addition of the future construct. Multilisp has been implemented on Concert, a shared-memory muitiprocessor that uses a novel RingBus interconnection. Concert ...
Comments