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.
Preview
Unable to display preview. Download preview PDF.
References
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.
Ciepielewski, A. and Haridi, S.; A Formal Model For Or-Parallel Execution of Logic Programs; IFIP 83.
Clark, K.L. and Gregory, S.; PARLOG: Parallel programming in logic; ACM Trans. Prog. Lang. Syst. 8,1; Jan 1986.
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.
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; 1987
Conery, J.; Binding Environments for Parallel Logic Programs in Non-Shared Memory Multiprocessors; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.
Degroot, D.; Restricted And-Parallelism; Proceeding of the International Conference on Fifth Generation Computer Systems; 1984.
Dietrich, Suzanne Wagner; Extension Tables: Memo Relations in Logic Programming; IEEE Symposium on Logic Programming, 1987.
Halstead, R.; Parallel Symbolic Computing; IEEE Computer 19:8; August 1986.
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.
Hermenegildo, M. and Nasr, R; Efficient Management of Backtracking in AND-Parallelism; Proceedings of the Third International Conference on Logic Programming; London, England; 1986.
Janakiram, V., Agrawal, D., and Mehrotra, R.; A Randomized Parallel Backtracking Algorithm; IEEE Transaction on Computers; Vol 37, No 12; December 1988.
Jefferson D. Virtual Time; TOPLAS; July 1985.
Kalé, L.V.; ‘Completeness’ and ‘Full Parallelism’ of Parallel Logic Programming Schemes; Proceeding of 1987 Symposium on Logic Programming; San Francisco, California; 1987.
Kalé, L.; The Reduce-Or Process Model for Parallel Evaluation of Logic Programs; Proceeding of the 4th International Conference on Logic Programming; 1987.
Kowalski, Robert; Logic For Problem Solving; North-Holland, New York; 1979.
Kranz, David and Halstead, Robert and Mohr, Eric; Mul-T: A High Performance Parallel Lisp; SigPlan 1989 Conference on Programming Language Design and Implementation.
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.
Lin, Zheng; Expected Performance of the Randomized Parallel Backtracking Method; North American Conference on Logic Programming; 1989.
Osborne, Randy; Speculative Computation in Multilisp; Proceedings of U.S./Japan Workshop on Parallel Lisp; Sendai, Japan; June 5–8 1989.
Ramkumar, Balkrishna and Kalé, Laxmikant; Compiled Execution of the Reduce-Or Process Model on Multiprocessors; North American Conference on Logic Programming; Cleveland, Ohio; 1989.
Shapiro, E.Y.; A Subset of Concurrent PROLOG and its Interpreter; Technical Report TR-003, ICOT; Tokyo; 1983.
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.
Tamaki, H. and Sato, T.; Unfold/fold Transformation of Logic Programs; Proceedings of 2nd International Conference on Logic Programming; Uppsala; 1984.
Warren, D.H.D.; An Abstract Prolog Instruction Set; Technical Note 309; SRI International, AI Center, Computer Science and Technology Division; 1983.
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).
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.
Warren, D.S.; The XWAM: A Machine that Integrates Prolog and Deductive Database Query Evaluation; Tech. Report 89/25; SUNY Stony Brook; 1989.
Yasuhara, H. and Nitadori, K.; ORBIT: A Parallel Computing Model of Prolog; New Generation Computing; 2:277–288; 1984.
Yu, B; Side Effects and Other Implementation Issues in Speculative Optimistic Parallelism in Prolog; in preparation; 1989.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1991 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Yu, B. (1991). Parallelism via speculation in pure Prolog. In: Akl, S.G., Fiala, F., Koczkodaj, W.W. (eds) Advances in Computing and Information — ICCI '90. ICCI 1990. Lecture Notes in Computer Science, vol 468. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-53504-7_98
Download citation
DOI: https://doi.org/10.1007/3-540-53504-7_98
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-53504-1
Online ISBN: 978-3-540-46677-2
eBook Packages: Springer Book Archive