LISP and Symbolic Computation

, Volume 7, Issue 1, pp 111–133 | Cite as

Continuation-based control in the implementation of parallel logic programs

  • John S. Conery
Article
  • 14 Downloads

Abstract

Continuations are used to define the flow of messages between low level tasks in a parallel logic programming language. A combination of compiler and runtime operations reduces message traffic by up to 50% when success continuations are passed as parameters in messages that start new processes. Continuations are also the key to fast task switching, a critical operation in this fine grain parallel system. Data from sample programs shows the effectiveness of continuations in reducing message traffic and the speed with which task switches are performed on a typical host architecture.

Keywords

continuation logic programming implementation parallel message passing 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Agha, G. and Hewitt, C. Actors: A conceptual framework for concurrent object-oriented programming. In Shriver, B. and Wegner, P., editors,Research Directions in Object-Oriented Computing, MIT Press, Cmabridge (1987) 49–74.Google Scholar
  2. 2.
    Ali, Khayri A. M. and Karlsson, Roland. The Muse Or-Parallel Prolog model and its performance. InProceedings of the 1990 North American Conference on Logic Programming (1990) 757–776.Google Scholar
  3. 3.
    Clinger, W. and Rees, J.The Revised 4 Report on the Algorithmic Language Scheme. Tech. Rep. CIS-91-25, University of Oregon (February 1992). See alsoIEEE Standard 1178–1990.Google Scholar
  4. 4.
    Conery, J. S.Parallel Execution of Logic Programs. Kluwer Academic Publishers, Boston, MA (1987).Google Scholar
  5. 5.
    Conery, J. S. The OPAL machine. In Kacksuk, P. and Wise, M., editors,Implementations of Distributed Prolog, John Wiley and Sons, Ltd., London (1992) 159–185.Google Scholar
  6. 6.
    Draves, R. P., Bershad, B. N., Rashid, R. F., and Dean, R. W. Using continuations to implement thread management and communication in operating systems. InProceedings of the 13th ACM Symposium on Operating Systems Principles (1991) 122–136.Google Scholar
  7. 7.
    Hausman, B.Pruning and Speculative Work in OR-Parallel Prolog. PhD thesis, Royal Institute of Technology, Stockholm, Sweden (1990). Report TRITA-CS-9002.Google Scholar
  8. 8.
    Kalé, L. V. and Ramkumar, B. The Reduce-OR process model for parallel logic programming on non-shared memory machines. In Kacksuk, P. and Wise, M., editors,Implementations of Distributed Prolog, John Wiley and Sons, Ltd., London (1992) 187–212.Google Scholar
  9. 9.
    Kogge, P. M.The Architecture of Symbolic Computers. McGraw-Hill (1991).Google Scholar
  10. 10.
    Lusk, E. L.et al. The Aurora OR-parallel Prolog system. InProceedings of the International Conference on Fifth Generation Computer Systems (1988) 819–830.Google Scholar
  11. 11.
    Meyer, D. M. and Conery, J. S. Architected failure handling for AND-parallel logic programs. InProceedings of the Seventh International Conference on Logic Programming (1990) 633–653.Google Scholar
  12. 12.
    Sundararajan, R. and Conery, J. S. An abstract interpretation scheme for groundness, fairness, and sharing analysis of logic programs. InProceedings of the 12th Conference on Foundations of Software Technology and Theoretical Computer Science (1992).Google Scholar
  13. 13.
    Warren, D. H. D.An Abstract Prolog Instruction Set. Tech. Note 309, SRI International (October 1983).Google Scholar

Copyright information

© Kluwer Academic Publishers 1994

Authors and Affiliations

  • John S. Conery
    • 1
  1. 1.Department of Computer and Information ScienceUniversity of OregonUSA

Personalised recommendations