Abstract
Tabling is an implementation technique that improves the declarativeness and expressiveness of Prolog by reusing solutions to goals. Quite a few interesting applications of tabling have been developed in the last few years, andsev eral are by nature non-deterministic. This raises the question of whether parallel search techniques can be usedto improve the performance of tabled applications.
In this work we demonstrate that the mechanisms proposed to parallelize search in the context of SLD resolution naturally generalize to parallel tabledcomputations, and that resulting systems can achieve goodp erformance on multi-processors. To do so, we present the OPTYap parallel engine. In our system individual SLG engines communicate data through stack copying. Completion is detected through a novel parallel completion algorithm that builds upon the data structures proposed for or-parallelism. Scheduling is simplified by building on previous research on or-parallelism. We show initial performance results for our implementation. Our best result is for an actual application, model checking, where we obtain linear speedups.
Work partially supportedb y CLoP (CNPq), PLAG (FAPERJ) andb y Fundação para a Ciência e Tecnologia.
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
K. Ali and R. Karlsson. The Muse Approach to OR-Parallel Prolog. Journal of Parallel Programming, 19(2):129–162, 1990.
Je. Bonwick. The Slab Allocator: An Object-Caching Kernel Memory Allocator. In USENIX Summer 1994, pages 87–98, 1994.
W. Chen and D. S. Warren. Query Evaluation under the Well Founded Semantics. In Proceedings of PODS, pages 168–179, 1993.
W. Chen and D. S. Warren. Tabled Evaluation with Delaying for General Logic Programs. Journal of the ACM, 43(1):20–74, 1996.
B. Demoen and K. Sagonas. CAT: the Copying Approach to Tabling. In Proceedings of PLILP, number 1490 in LNCS, pages 21–35. Springer-Verlag, 1998.
B. Demoen and K. Sagonas. CHAT: the Copy-HybridApproach to Tabling. In Proceedings of PADL, number 1551 in LNCS, pages 106–121. Springer-Verlag, 1999.
J. Freire, R. Hu, T. Swift, and D. S. Warren. Exploiting Parallelism in Tabled Evaluations. In Proceedings of PLILP, pages 115–132. Springer-Verlag, 1995.
J. Freire, T. Swift, and D. S. Warren. Beyond Depth-First: Improving Tabled Logic Programs through Alternative Scheduling Strategies. In Proceedings of PLILP, pages 243–258. Springer-Verlag, 1996.
Hai-Feng Guo and G. Gupta. A New Tabling Scheme with Dynamic Reordering of Alternatives. In Workshop on Parallelism and Implementation Technology for (Constraint) Logic Languages, 2000.
I. V. Ramakrishnan, P. Rao, K. Sagonas, T. Swift, and D. S. Warren. Efficient Tabling Mechanisms for Logic Programs. In Proceedings of ICLP, pages 687–711. The MIT Press, 1995.
R. Rocha. On Applying Or-Parallelism and Tabling to Logic Programs. PhD thesis, Computer Science Department, University of Porto, 2001.
R. Rocha, F. Silva, and V. Santos Costa. Or-Parallelism within Tabling. In Proceedings of PADL, number 1551 in LNCS, pages 137–151. Springer-Verlag, 1999.
R. Rocha, F. Silva, and V. Santos Costa. YapOr: an Or-Parallel Prolog System Basedon Environment Copying. In Proceedings of EPIA, number 1695 in LNAI, pages 178–192. Springer-Verlag, 1999.
R. Rocha, F. Silva, and V. Santos Costa. YapTab: A Tabling Engine Designedto Support Parallelism. In Proceedings of TAPD, pages 77–87, 2000.
K. Sagonas and T. Swift. An Abstract Machine for Tabled Execution of Fixed-Order Stratified Logic Programs. Journal of ACM Transactions on Programming Languages and Systems, 1998.
Vítor Santos Costa. Optimising Bytecode Emulation for Prolog. In Proceedings of PPDP, number 1702 in LNCS, pages 261–267. Springer-Verlag, 1999.
David H. D. Warren. An Abstract Prolog Instruction Set. Technical Note 309, SRI International, 1983.
Neng-Fa Zhou. Implementation of a Linear Tabling Mechanism. In Proceedings of PADL, number 1753 in LNCS, pages 109–123. Springer Verlag, 2000.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2001 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Rocha, R., Silva, F., Costa, V.S. (2001). On a Tabling Engine That Can Exploit Or-Parallelism. In: Codognet, P. (eds) Logic Programming. ICLP 2001. Lecture Notes in Computer Science, vol 2237. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45635-X_11
Download citation
DOI: https://doi.org/10.1007/3-540-45635-X_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-42935-7
Online ISBN: 978-3-540-45635-3
eBook Packages: Springer Book Archive