Advertisement

Parallelism via speculation in pure Prolog

  • Benjamin Yu
Computer Architecture, Concurrency, Parallelism, Communication And Networking
Part of the Lecture Notes in Computer Science book series (LNCS, volume 468)

Abstract

A parallel execution model of Prolog programs based on speculative computation is presented. The model relies on three simple rules: unfolding, unrecursing and partial unrecursing. Speculative computation results by “guessing” to certain depth N where clauses should be unfolded. We show how this framework can be implemented efficiently by proposing an extension to the WAM architecture.

Keywords

Logic Program Logic Programming Speculative Computation Parallel Execution Variable Binding 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Biswas, P. and Su, S.C. and Yun, D.Y.Y.; A Scalable Abstract Machine Model to Support Limited-OR (LOR)/Restricted-AND Parallelism (RAP) in Logic Programs; Proceeding of the 5th International Conference on Logic Programming; 1988.Google Scholar
  2. [2]
    Ciepielewski, A. and Haridi, S.; A Formal Model For Or-Parallel Execution of Logic Programs; IFIP 83.Google Scholar
  3. [3]
    Clark, K.L. and Gregory, S.; PARLOG: Parallel programming in logic; ACM Trans. Prog. Lang. Syst. 8,1; Jan 1986.Google Scholar
  4. [4]
    Clocksin, W.F. and Alshawi, H.; A Method for Efficiently Executing Horn Clause Programs Using Multiple Processors; Technical Report, Computer Laboratory; University of Cambridge; 1986.Google Scholar
  5. [5]
    Conery, J; The AND/OR Process Model for Parallel Interpretation of Logic Programs; PhD thesis; University of California, Irvine; 1983. Revised version appears in: Parallel Execution Of Logic Programs; Kluwer Academic Publishers; Boston; 1987Google Scholar
  6. [6]
    Conery, J.; Binding Environments for Parallel Logic Programs in Non-Shared Memory Multiprocessors; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.Google Scholar
  7. [7]
    Degroot, D.; Restricted And-Parallelism; Proceeding of the International Conference on Fifth Generation Computer Systems; 1984.Google Scholar
  8. [8]
    Dietrich, Suzanne Wagner; Extension Tables: Memo Relations in Logic Programming; IEEE Symposium on Logic Programming, 1987.Google Scholar
  9. [9]
    Halstead, R.; Parallel Symbolic Computing; IEEE Computer 19:8; August 1986.Google Scholar
  10. [10]
    Hausman, B. and Ciepielewski, A. and Haridi, S.; OR-parallel Prolog Made Efficient on Shared Memory Multiprocessors; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.Google Scholar
  11. [11]
    Hermenegildo, M. and Nasr, R; Efficient Management of Backtracking in AND-Parallelism; Proceedings of the Third International Conference on Logic Programming; London, England; 1986.Google Scholar
  12. [12]
    Janakiram, V., Agrawal, D., and Mehrotra, R.; A Randomized Parallel Backtracking Algorithm; IEEE Transaction on Computers; Vol 37, No 12; December 1988.Google Scholar
  13. [13]
    Jefferson D. Virtual Time; TOPLAS; July 1985.Google Scholar
  14. [14]
    Kalé, L.V.; ‘Completeness’ and ‘Full Parallelism’ of Parallel Logic Programming Schemes; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.Google Scholar
  15. [15]
    Kalé, L.; The Reduce-Or Process Model for Parallel Evaluation of Logic Programs; Proceeding of the 4th International Conference on Logic Programming; 1987.Google Scholar
  16. [16]
    Kowalski, Robert; Logic For Problem Solving; North-Holland, New York; 1979.Google Scholar
  17. [17]
    Kranz, David and Halstead, Robert and Mohr, Eric; Mul-T: A High Performance Parallel Lisp; SigPlan 1989 Conference on Programming Language Design and Implementation.Google Scholar
  18. [18]
    Li, P and Martin, A; The Sync Model: A Parallel Execution Method for Logic Programming; Proceedings of the 1986 Symposium of Logic Programming; Salt Lake City; Utah 1986.Google Scholar
  19. [19]
    Lin, Zheng; Expected Performance of the Randomized Parallel Backtracking Method; North American Conference on Logic Programming; 1989.Google Scholar
  20. [20]
    Osborne, Randy; Speculative Computation in Multilisp; Proceedings of U.S./Japan Workshop on Parallel Lisp; Sendai, Japan; June 5–8 1989.Google Scholar
  21. [21]
    Ramkumar, Balkrishna and Kalé, Laxmikant; Compiled Execution of the Reduce-Or Process Model on Multiprocessors; North American Conference on Logic Programming; Cleveland, Ohio; 1989.Google Scholar
  22. [22]
    Shapiro, E.Y.; A Subset of Concurrent PROLOG and its Interpreter; Technical Report TR-003, ICOT; Tokyo; 1983.Google Scholar
  23. [23]
    Shapiro, Ehud; An Or-Parallel Execution Algorithm for Prolog and its FCP Implementation; Proceeding of the 1987 International Conference on Logic Programming; Melbourne, Australia; 1987.Google Scholar
  24. [24]
    Tamaki, H. and Sato, T.; Unfold/fold Transformation of Logic Programs; Proceedings of 2nd International Conference on Logic Programming; Uppsala; 1984.Google Scholar
  25. [25]
    Warren, D.H.D.; An Abstract Prolog Instruction Set; Technical Note 309; SRI International, AI Center, Computer Science and Technology Division; 1983.Google Scholar
  26. [26]
    Warren, D.H.D.; Or-Parallel Execution Models of Prolog; Proceedings of the International Joint Conference on Theory and Practise of Software Development (TAP-SOFT); Pisa, Italy; March 1987. (Also in LNCS 250).Google Scholar
  27. [27]
    Warren, D.H.D.; The SRI Model for Or-Parallel Execution of Prolog — Abstract Design and Implementation; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.Google Scholar
  28. [28]
    Warren, D.S.; The XWAM: A Machine that Integrates Prolog and Deductive Database Query Evaluation; Tech. Report 89/25; SUNY Stony Brook; 1989.Google Scholar
  29. [29]
    Yasuhara, H. and Nitadori, K.; ORBIT: A Parallel Computing Model of Prolog; New Generation Computing; 2:277–288; 1984.Google Scholar
  30. [30]
    Yu, B; Side Effects and Other Implementation Issues in Speculative Optimistic Parallelism in Prolog; in preparation; 1989.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1991

Authors and Affiliations

  • Benjamin Yu
    • 1
  1. 1.Department of Computer ScienceUniversity of TorontoTorontoCanada

Personalised recommendations