Abstract
In this paper we present an intelligent backtracking scheme for the independent and-parallel execution of Prolog. It is implemented for a distributed memory machine where an extended Warren Abstract Machine [1] is placed on each processor and can receive subgoals and spawn further subgoals to other processors.
The chosen scheme for the communication of bindings makes available additional run-time information which is incorporated into the execution. Our executor [2,3,4,5] is most notably derived from the execution schemes of Hermenegildo [6,7,8,9] and Lin [10] although both these other schemes are implemented for shared memory machines.
We present an incremental algorithm to support clause level intelligent backtracking. In our scheme intelligent backtracking will both select subgoal(s) attributable to the failure and prevent unnecessary re-execution of subgoals independent of the failure. We observe that a portion of the intelligent backtracking can be applied during forward execution and we introduce a notion of ‘intelligent cutting’.
The effectiveness of our execution scheme and intelligent backtracking is demonstrated by an implementation based on an array of transputer processors.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
D. H. D. Warren, “An abstract prolog instruction set,” Tech. Rep. 309, Artificial Intelligence Center, SRI International, (1983).
A. Verden, A. King, and W. Hall, “An implementation of prolog for the inmos t800 transputer,” in Proceedings of the 1st North American Transputer User Group, ( Salt Lake City, Utah, USA ), (1989).
A. R. Verden and H. Glaser, “Independent and-parallel prolog for distributed memory architectures,” Tech. Rep. 90–17, Dept. of Electronics and Computer Science, University of Southampton, Southampton, England, (1990).
A. R. Verden and H. Glaser, An And-Parallel Prolog Executor, In Distributed Prolog, ed P. Kacsuk and M. J. Wise. John Wiley and Sons, April (1991).
A. R. Verden, And—Parallel Implementation of Prolog On Distributed Memory Machines. PhD thesis, University of Southampton, April (1991).
M. Hermenegildo and R. Nasr, “Efficient management of backtracking in and-parallelism,” in Proceedings of the Third International Conference on Logic Programming, (London), (1986).
M. Hermenegildo, “An abstract machine for restricted and-parallel execution of logic,” in Proceedings of the Third on International Conference on Logic Programming, (London), (1986).
M. Hermenegildo and E Rossi, “Non-strict independent and-parallelism,” in Proceedings of the 1990 International Conference on Logic Programming, (1990).
M. Hermenegildo and K. Green, “and-prolog and its performance: Exploiting independent and-parallelism,” in Proceedings of the 1990 International Conference on Logic Programming, (1990).
Y. J. Lin, A Parallel Implementation of Logic Programs. PhD thesis, University of Texas at Austin, (1988).
D. DeGroot, “Restricted and-parallelism and side effects,” in Proceedings of the 1987 Symposium on Logic Programming, vol. I, pp. 80–89, (1987).
Z. Hwang and S. Hu, “A compiling approach for exploiting and-parallelism in parallel logic programming systems,” in Proceedings of PARLE, vol. II, pp. 335–345, (1989).
H. Xia, Analyzing Data Dependencies, Detecting AND-Parallelism and Optimizing Backtracking in Prolog Programs. PhD thesis, University of Berlin, (1989).
J. Conery, The AND-OR Process Model for Parallel Interpretation of Logic Programs. PhD thesis, U. C. Urvine, (1983).
M. Surridge, “The eulerian channel configuration language and message-passing system,” tech. rep., S.E.R.C./D.T.I. Transputer Initiative, (1989). Report for E.M.R. Contract N2A–8R-1756 (Phase II).
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Verden, A., Glaser, H. (1992). Intelligent Backtracking in And-Parallel Prolog. In: Darlington, J., Dietrich, R. (eds) Declarative Programming, Sasbachwalden 1991. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3794-8_8
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3794-8_8
Publisher Name: Springer, London
Print ISBN: 978-3-540-19735-5
Online ISBN: 978-1-4471-3794-8
eBook Packages: Springer Book Archive