Abstract
A Lisp-based approach is attractive for parallel computing since Lisp languages and systems assume significant clerical burdens, such as storage management. Parallel Lisps thus enable programmers to focus on the new problems introduced by using concurrency. Parallel Lisps now exist that can execute realistic applications with “industrial-strength” performance, but there are applications whose requirements they do not handle elegantly. Recent work has contributed new, elegant ideas in the areas of speculative computation, continuations, exception handling, aggregate data structures, and scheduling. Using these ideas, it should be possible to build “second generation” parallel Lisp systems that are as powerful and elegantly structured as sequential Lisp systems.
This paper surveys these recent ideas and explores how they could fit together in the parallel Lisp systems of the future, examining issues at three levels: language design, implementation techniques, and programming tools. The discussion is based on the Multilisp programming language, which is Scheme (a Lisp dialect) extended with the future construct. The paper outlines three criteria for judging Scheme extensions for parallel computing: compatibility with sequential Scheme, invariance of the result when future is introduced into side-effect-free Scheme programs, and modularity. Proposed language mechanisms, such as support for first-class continuations, are evaluated against these criteria.
In the area of implementation techniques, results of experiments with lazy task creation, unfair scheduling, and parallel garbage collection are surveyed; some areas that need more investigation, such as scheduler implementation for speculative computing, and interaction between user-level and operating-system schedulers, are identified. Finally, past work in tools to help with the development of Multilisp programs is surveyed, and needs for additional tools are discussed.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
10. References
Abelson, H., and G. Sussman, Structure and Interpretation of Computer Programs, M.I.T. Press, Cambridge, Mass., 1984.
Agarwal, A., R. Simoni, J. Hennessy, and M. Horowitz, “An Evaluation of Directory Schemes for Cache Coherence,” 15th Annual Int'l. Symp. on Computer Architecture, Honolulu, June 1988, pp. 280–289.
Allen, D., S. Steinberg, and L. Stabile, “Recent developments in Butterfly Lisp,” AAAI 87, July 1987, Seattle, pp. 2–6.
Anderson, T., The Design of a Multiprocessor Development System, M.I.T. Laboratory for Computer Science Technical Report TR-279, Cambridge, Mass., Sept. 1982.
Appel, A., J. Ellis, and K. Li, “Real-time Concurrent Collection on Stock Multiprocessors,” ACM SIGPLAN '88 Conf. on Programming Language Design and Implementation, Atlanta, June 1988, pp. 11–20.
Arvind, K. Gostelow, and W. Plouffe, An Asynchronous Programming Language and Computing Machine, U.C. Irvine Report TR114a, 1978.
Arvind, R. Nikhil, and K. Pingali, Id Nouveau: Language and Operational Semantics, CSG Memo, Computation Structures Group, M.I.T. Laboratory for Computer Science, Sept. 1987.
Baek, H.J., Parallel Retrieval Algorithms for Semantic Nets, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., June 1986.
Bagnall, L., ParVis: A Program Visualization Tool for Multilisp, S.M. thesis, MIT E.E.C.S. Dept., Cambridge, Mass., Feb. 1989.
Baker, H., Actor Systems for Real-Time Computation, M.I.T. Laboratory for Computer Science Technical Report TR-197, Cambridge, Mass., March 1978.
Baker, H., and C. Hewitt, “The Incremental Garbage Collection of Processes,” M.I.T. Artificial Intelligence Laboratory Memo 454, Cambridge, Mass., Dec. 1977.
Bartlett, J., SCHEME→C: A Portable Scheme-to-C Compiler, WRL Research Report 89/1, DEC Western Research Laboratory, Palo Alto, Ca., Jan. 1989.
Bradley, E., Logic Simulation on a Multiprocessor, Technical Report TR-380, M.I.T. Laboratory for Computer Science, Cambridge, Mass., November 1986.
Bradley, E., and R. Halstead, “Simulating Logic Circuits: A Multiprocessor Application,” Int'l. J. of Parallel Programming 16:4, August 1987, pp. 305–338.
Chambers, D., and D. Ungar, “Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object-Oriented Programming Language,” ACM SIGPLAN '89 Conf. on Programming Language Design and Implementation, Portland, Oregon, June 1989, pp. 146–160.
Clinger, W., A. Hartheimer, and E. Ost, “Implementation Strategies for Continuations,” 1988 ACM Symp. on Lisp and Functional Programming, Snowbird, Utah, July 1988, pp. 124–131.
Courtemanche, A., MultiTrash, a Parallel Garbage Collector for MultiScheme, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., Jan. 1986.
Crowther, W., et al., “Performance Measurements on a 128-Node Butterfly Parallel Processor,” 1985 Int'l. Conf. on Parallel Processing, St. Charles, Ill., Aug. 1985, pp. 531–540.
Dennis, J.B., “Data Flow Supercomputers,” IEEE Computer 13:11, Nov. 1980, pp. 48–56.
Dijkstra, E., et al., “On-the-fly Garbage Collection: An Exercise in Co-operation,” Language Hierarchies and Interfaces (Lecture Notes in Computer Science 46), Springer-Verlag, 1976.
Encore Computer Corp., Multimax Technical Summary, Encore Computer Corp., Marlborough, Mass., Rev. E, Jan. 1989.
Felleisen, M., D. Friedman, B. Duba, and J. Merrill, Beyond Continuations, Indiana University Computer Science Dept. Tech. Report 216, Bloomington, In., 1987.
Felleisen, M., “The Theory and Practice of First-Class Prompts,” 15th Annual ACM Symp. on Principles of Programming Languages, San Diego, Ca., Jan. 1988, pp. 180–190.
Forgy, C.L., “Rete: A Fast Algorithm for the Many Pattern / Many Object Match Problem,” Artificial Intelligence J. 19, Sept. 1982, pp. 17–37.
Friedman, D., and D. Wise, “Aspects of Applicative Programming for Parallel Processing,” IEEE Trans. Comp. C-27:4, April 1978, pp. 289–296.
Gabriel, R., Performance and Evaluation of Lisp Systems, M.I.T. Press, Cambridge, Mass., 1985.
Gabriel, R., and J. McCarthy, “Qlisp,” in J. Kowalik, ed., Parallel Computation and Computers for Artificial Intelligence, Kluwer Academic Publishers, 1988, pp. 63–89.
Goldman, R., and R. Gabriel, “Qlisp: Experience and New Directions,” ACM/SIGPLAN PPEALS 1988—Parallel Programming: Experience with Applications, Languages, and Systems, New Haven, Conn., July 1988, pp. 111–123.
Goldman, R., and R. Gabriel, “Preliminary Results with the Initial Implementation of Qlisp,” 1988 ACM Symp. on Lisp and Functional Programming, Snowbird, Utah, July 1988, pp. 143–152.
Goldman, R., R. Gabriel, and C. Sexton, “Qlisp: Parallel Processing in Lisp,” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Goodenough, J., “Exception Handling: Issues and a Proposed Notation,” Comm. ACM 18:12, Dec. 1975, pp. 683–696.
Gray, S., Using Futures to Exploit Parallelism in Lisp, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., Jan. 1986.
Gurd, J., C. Kirkham, and I. Watson, “The Manchester Prototype Dataflow Computer,” Comm. ACM 28:1, January 1985, pp. 34–52.
Halstead, R., “Multilisp: A Language for Concurrent Symbolic Computation,” ACM Trans. on Prog. Languages and Systems, October 1985, pp. 501–538.
Halstead, R., and J. Loaiza, “Exception Handling in Multilisp,” 1985 Int'l. Conf. on Parallel Processing, St. Charles, Ill., Aug. 1985, pp. 822–830.
Halstead, R., T. Anderson, R. Osborne, and T. Sterling, “Concert: Design of a Multiprocessor Development System,” 13th Annual Int'l. Symp. on Computer Architecture, Tokyo, June 1986, pp. 40–48.
Halstead, R., “Parallel Symbolic Computing,” IEEE Computer 19:8, August 1986, pp. 35–43.
Halstead, R., “An Assessment of Multilisp: Lessons from Experience,” Int'l. J. of Parallel Programming 15:6, Dec. 1986, pp. 459–501.
Halstead, R., “Overview of Concert Multilisp: A Multiprocessor Symbolic Computing System,” ACM Computer Architecture News 15:1, March 1987, pp. 5–14.
Halstead, R., “Parallel Symbolic Computing Using Multilisp,” in J. Kowalik, ed., Parallel Computation and Computers for Artificial Intelligence, Kluwer Academic Publishers, 1988, pp. 21–49.
Halstead, R., “Design Requirements for Concurrent Lisp Machines,” in K. Hwang and D. DeGroot, eds., Parallel Processing for Supercomputers and Artificial Intelligence, McGraw Hill, New York, 1989, pp. 69–105.
Harrison, W.L., “The Interprocedural Analysis and Automatic Parallelization of Scheme Programs,” Lisp and Symbolic Computation 2:3/4, 1989, pp. 179–396.
Henderson, P., and J.H. Morris, “A Lazy Evaluator,” Proc. 3rd ACM Symp. on Principles of Prog. Languages, 1976, pp. 95–103.
Hieb, R., and R.K. Dybvig, “Continuations and Concurrency,” 1990 ACM Conf. on the Principles and Practice of Parallel Programming (PPoPP), Seattle, March 1990.
Hillis, W.D., and G.L. Steele, “Data Parallel Algorithms,” Comm. ACM 29:12, Dec. 1986, pp. 1170–1183.
Hoare, C.A.R., “Monitors: An Operating System Structuring Concept,” Comm. ACM 17:10, October 1974, pp. 549–557.
Ichbiah, J.D., et al., “Preliminary ADA Reference Manual,” SIGPLAN Notices 14:6, Part A, June 1979.
Ito, T., and M. Matsui, “A Parallel Lisp Language PaiLisp and its Kernel Specification,” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Katz, M., ParaTran: A Transparent, Transaction Based Runtime Mechanism for Parallel Execution of Scheme, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., May 1986.
Katz, M., ParaTran: A Transparent, Transaction Based Runtime Mechanism for Parallel Execution of Scheme, Technical Report TR-454, M.I.T. Laboratory for Computer Science, Cambridge, Mass., July 1989.
Katz, M., and D. Weise, “Continuing Into the Future: On the Interaction of Futures and First-Class Continuations,” 1990 ACM Conf. on Lisp and Functional Programming, Nice, France, June 1990.
Katz, M., and D. Weise, “Continuing Into the Future: On the Interaction of Futures and First-Class Continuations (A Capsule Summary),” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Keller, R., and F. Lin, “Simulated Performance of a Reduction-Based Multiprocessor,” IEEE Computer 17:7, July 1984, pp. 70–82.
Kessler, R., and M. Swanson, “Concurrent Scheme,” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Knight, T., “An Architecture for Mostly Functional Languages,” ACM Symposium on Lisp and Functional Programming, Boston, Mass., Aug. 1986, pp. 105–112.
Knueven, P., P. Hibbard, and B. Leverett, “A Language System for a Multiprocessor Environment,” Fourth International Conf. on the Design and Implementation of Algorithmic Languages, Courant Institute of Mathematical Studies, New York, June 1976, pp. 264–274.
Kornfeld, W., and C. Hewitt, “The Scientific Community Metaphor,” IEEE Trans. on Systems, Man, and Cybernetics, January 1981.
Krall, E., and P. McGehearty, “A Case Study of Parallel Execution of a Rule-Based Expert System,” Int'l. J. of Parallel Programming 15:1, Feb. 1986, pp. 5–32.
Kranz, D., R. Kelsey, J. Rees, P. Hudak, J. Philbin, and N. Adams, “Orbit: An Optimizing Compiler for Scheme,” Proc. SIGPLAN '86 Symp. on Compiler Construction, June 1986, pp. 219–233.
Kranz, D., ORBIT: An Optimizing Compiler for Scheme, Yale University Technical Report YALEU/DCS/RR-632, February 1988.
Kranz, D., R. Halstead, and E. Mohr, “Mul-T: A High-Performance Parallel Lisp,” ACM SIGPLAN '89 Conf. on Programming Language Design and Implementation, Portland, Oregon, June 1989, pp. 81–90.
Kranz, D., R. Halstead, and E. Mohr, “Mul-T: A High-Performance Parallel Lisp (Extended Abstract),” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Larus, J., and P. Hilfinger, “Restructuring Lisp Programs for Concurrent Execution,” ACM/SIGPLAN PPEALS 1988—Parallel Programming: Experience with Applications, Languages, and Systems, New Haven, Conn., July 1988, pp. 100–110.
Lau, W., Lexical Analysis of Noisy Phonetic Transcriptions, S.M. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., Feb. 1986.
LeBlanc, T., and J. Mellor-Crummey, “Debugging Parallel Programs with Instant Replay,” IEEE Trans. Comp. C-36:4, April 1987, pp. 471–482.
Liskov, B.H., and A. Snyder, “Exception Handling in CLU,” IEEE Trans. Softw. Eng. SE-5:6, Nov. 1979, pp. 546–558.
Lucassen, J., and D. Gifford, “Polymorphic Effect Systems,” 15th Annual ACM Conf. on Principles of Programming Languages, Jan. 1988, pp. 47–57.
Ma, M., Efficient Message-Based System for Concurrent Simulation, Ph.D. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., January 1989.
Marti, J., and J. Fitch, “The Bath Concurrent Lisp Machine,” Proc. EURO-CAL '83 (Lecture Notes in Computer Science 162), Springer-Verlag, March 1983, pp. 78–90.
McCarthy, J, et al., LISP 1.5 Programmer's Manual, M.I.T. Press, Cambridge, Mass., 1962.
McGraw, J., et al., SISAL — Streams and Iteration it a Single-assignment Language, Language Reference Manual (version 1.0), Lawrence Livermore National Laboratory, Livermore, Calif., July 1983.
Meyer, A., and J. Riecke, “Continuations May Be Unreasonable: Preliminary Report,” 1988 ACM Symp. on Lisp and Functional Programming, Snowbird, Utah, July 1988, pp. 63–71.
Miller, J., MultiScheme: A Parallel Processing System Based on MIT Scheme, Technical Report TR-402, M.I.T. Laboratory for Computer Science, Cambridge, Mass., Sept. 1987.
Miller, J., “Implementing a Scheme-Based Parallel Processing System,” Int'l. J. of Parallel Programming 17:5, Oct. 1988, pp. 367–402.
Miller, J., and B. Epstein, “Garbage Collection in MultiScheme,” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Mohr, E., D. Kranz, and R. Halstead, “Lazy Task Creation: A Technique for Increasing the Granularity of Parallel Programs,” 1990 ACM Conf. on Lisp and Functional Programming, Nice, France, June 1990.
Moon, D., “Garbage Collection in a Large Lisp System,” 1984 ACM Symp. on Lisp and Functional Programming, Austin, Tex., Aug. 1984, pp. 235–246.
Nuth, P., Communication Patterns in a Symbolic Multiprocessor, Technical Report TR-395, M.I.T. Laboratory for Computer Science, Cambridge, Mass., June 1987.
Osborne, R., Speculative Computation in Multilisp, Technical Report TR-464, MIT Laboratory for Computer Science, Cambridge, Mass., Dec. 1989.
Osborne, R., “Speculative Computation in Multilisp,” Proc. U.S./Japan Workshop on Parallel Lisp (Lecture Notes in Computer Science), Springer-Verlag, 1990.
Rees, J., N. Adams, and J. Meehan, The T Manual, fourth edition, Yale University Computer Science Department, January 1984.
Rees, J., and W. Clinger, eds., “Revised3 Report on the Algorithmic Language Scheme,” ACM SIGPLAN Notices 21:12, Dec. 1986, pp. 37–79.
Sitaram, D., and M. Felleisen, “Control Delimiters and their Hierarchies,” Lisp and Symbolic Computation 3, 1990, pp. 67–99.
Solomon, S., A Query Language on a Parallel Machine Operating System, S.B. thesis, M.I.T. E.E.C.S. Dept., Cambridge, Mass., May 1985.
Steele, G.L., Common Lisp: The Language, Digital Press, Burlington, Mass., 1984.
Steele, G.L., and W.D. Hillis, “Connection Machine Lisp: Fine-Grained Parallel Symbolic Processing,” 1986 ACM Conf. on Lisp and Functional Programming, Cambridge, Mass., Aug. 1986, pp. 279–297.
Stoy, J., Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, M.I.T. Press, Cambridge, Mass., 1977.
Sugimoto, S., et al., “A Multi-Microprocessor System for Concurrent Lisp,” Proc. 1983 International Conf. on Parallel Processing, June 1983.
Swanson, M., R. Kessler, and G. Lindstrom, “An Implementation of Portable Standard Lisp on the BBN Butterfly,” 1988 ACM Symp. on Lisp and Functional Programming, Snowbird, Utah, July 1988, pp. 132–142.
Symbolics Corp., Symbolics Common Lisp: Language Concepts, Symbolics Corp., Cambridge, Mass., August 1986.
Turner, D., “A New Implementation Technique for Applicative Languages,” Software — Practice and Experience 9:1, Jan. 1979, pp. 31–49.
Wetherell, C., “Error Data Values in the Data-Flow Language VAL.” ACM Trans. on Prog. Languages and Systems 4:2, April 1982, pp. 226–238.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1990 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Halstead, R.H. (1990). New ideas in parallel lisp: Language design, implementation, and programming tools. In: Ito, T., Halstead, R.H. (eds) Parallel Lisp: Languages and Systems. PSC 1989. Lecture Notes in Computer Science, vol 441. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0024149
Download citation
DOI: https://doi.org/10.1007/BFb0024149
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-52782-4
Online ISBN: 978-3-540-47143-1
eBook Packages: Springer Book Archive