Speculative computation in multilisp

  • Randy B. Osborne
Part I Parallel Lisp Languages and Programming Models
Part of the Lecture Notes in Computer Science book series (LNCS, volume 441)


We demonstrate by experiments that performing computations in parallel before their results are known to be required can yield performance improvements over conventional approaches to parallel computing. We call such eager computation of expressions speculative computation, as opposed to conventional mandatory computation that is used in almost all contemporary parallel programming languages and systems. The two major requirements for speculative computation are: 1) a means to control computation to favor the most promising computations and 2) a means to abort computation and reclaim computation resources.

We discuss these requirements in the parallel symbolic language Multilisp and present a sponsor model for speculative computation in Multilisp which handles control and reclamation of computation in a single, elegant framework. We describe an implementation of this sponsor model and present performance results for several applications of speculative computation. The results demonstrate that our support for speculative computation adds expressive and computational power to Multilisp, with observed performance improvement as great as 26 times over conventional approaches to parallel computation.


Execution Time Travel Salesman Problem Priority Queue Speculative Computation Garbage Collection 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

11 References

  1. [AS84]
    H. Abelson and G. Sussman. Structure and Interpretation of Computer Programs. M.I.T. Press, Cambridge, MA., 1984.Google Scholar
  2. [Bag89]
    L. Bagnall. ParVis: A program visualization tool for Multilisp. Master's Thesis, Electrical Engineering and Computer Science, M.I.T., January 1989.Google Scholar
  3. [BH78]
    H. Baker and C. Hewitt. The incremental garbage collection of processes. A.I. Lab Memo 454, M.I.T., March 1978.Google Scholar
  4. [Bur85]
    F. W. Burton. Speculative computation, parallelism, and functional programming. IEEE Trans. on Computers, pages 1190–1193, December 1985.Google Scholar
  5. [BZ89]
    R. Bubenik and W. Zwaenepoel. An operational semantics for optimistic computations. Technical Report TR89-85, Department of Computer Science, Rice University, February 1989.Google Scholar
  6. [CG87]
    K. Clark and S. Gregory. Parlog: Parallel programming in logic. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 3. M.I.T. Press, 1987.Google Scholar
  7. [CSM88]
    T. Chikayama, H. Sato, and T. Miyazaki. Overview of the parallel inference machine operating system (PIMOS). In Int'l. Conf. on Fifth Generation Computer Systems, pages 230–251, 1988.Google Scholar
  8. [Eps89]
    B. Epstein. Support for speculative computation in MultiScheme. Bachelor's Thesis, Brandeis University, May 1989.Google Scholar
  9. [Gab85]
    R. Gabriel. Performance Evaluation of Lisp Systems. M.I.T. Press, 1985.Google Scholar
  10. [GG89]
    R. Goldman and R. Gabriel. Qlisp: Parallel processing in Lisp. IEEE Software, pages 51–59, July 1989.Google Scholar
  11. [GP81]
    D. Grit and R. Page. Deleting irrelevant tasks in an expression-oriented multi-processor system. ACM Trans. on Prog. Languages and Systems, pages 49–59, October 1981.Google Scholar
  12. [Hal85]
    R. Halstead. Multilisp: A language for concurrent symbolic computation. ACM Trans. on Prog. Languages and Systems, pages 501–538, October 1985.Google Scholar
  13. [Hal86a]
    R. Halstead. An assessment of Multilisp: Lessons from experience. International Journal of Parallel Programming, December 1986.Google Scholar
  14. [Hal86b]
    R. Halstead. Parallel symbolic computing. IEEE Computer, pages 35–43, August 1986.Google Scholar
  15. [HAOS86]
    R. Halstead, T. Anderson, R. Osborne, and T. Sterling. Concert: Design of a multiprocessor development system. In 13th Annual Symp. on Computer Architecture, pages 40–48, June 1986.Google Scholar
  16. [HK82]
    P. Hudak and R. Keller. Garbage collection and task deletion in Distributed Applicative Processing Systems. In Proceedings 1982 ACM Conf. on Lisp and Functional Prog., pages 168–178, 1982.Google Scholar
  17. [KH81]
    W. Kornfeld and C. Hewitt. The scientific community metaphor. IEEE Trans. on Systems, Man, and Cybernetics, pages 24–33, January 1981.Google Scholar
  18. [KHM89]
    D. Kranz, R. Halstead, and E. Mohr. Mul-T: A high-performance parallel Lisp. In SigPlan Conf. on Prog. Language Design and Implementation, pages 81–90, 1989.Google Scholar
  19. [KM86]
    E. Krall and P. McGehearty. A case study of parallel execution of a rule-based expert system. Int'l. Journal of Parallel Programming, pages 5–32, January 1986.Google Scholar
  20. [LH83]
    H. Lieberman and C. Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, pages 419–429, June 1983.Google Scholar
  21. [Lus88]
    E. Lusk et al. The Aurora Or-parallel Prolog system. In Proc. of Int'l. Conf. on Fifth Generation Computer Systems, pages 819–830, 1988.Google Scholar
  22. [Mil87]
    J. Miller. MultiScheme: A parallel processing system based on MIT Scheme. Technical Report TR-402, Laboratory for Computer Science, M.I.T., September 1987.Google Scholar
  23. [Nik88]
    R. Nikhil. Id (version 88.0) reference manual. Computation Structures Group Memo 284, Laboratory for Computer Science, M.I.T., March 1988.Google Scholar
  24. [Nil80]
    N. Nilsson. Principles of Artificial Intelligence. Morgan Kaufmann, 1980.Google Scholar
  25. [Osb89]
    R. Osborne. Speculative computation in Multilisp. Technical Report TR-464, Laboratory for Computer Science, M.I.T., November 1989.Google Scholar
  26. [PD89]
    A. Partridge and A. Dekker. Speculative parallelism in a distributed graph reduction machine. In Bruce Shriver, editor, Proceedings of 22nd Annual Hawaii Int'l Conf. on System Sciences, Volume 2, pages 771–779, 1989.Google Scholar
  27. [Sha87]
    E. Shapiro. Concurrent Prolog: A progress report. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 5. M.I.T. Press, 1987.Google Scholar
  28. [Sol89]
    R. Soley. On the efficient exploitation of speculation under dataflow paradigms of control. Technical Report TR-443, Laboratory for Computer Science, M.I.T., 1989.Google Scholar
  29. [Ued87]
    K. Ueda. Guarded Horn clauses. In E. Shapiro, editor, Concurrent Prolog: Collected Papers, Volume 1, Chapter 4. M.I.T. Press, 1987.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1990

Authors and Affiliations

  • Randy B. Osborne
    • 1
    • 2
  1. 1.Digital Equipment CorporationCambridge Research LabUK
  2. 2.Cambridge

Personalised recommendations