The muse approach to Or-parallel Prolog
International Journal of Parallel Programming
Query evaluation under the well-founded semantics
PODS '93 Proceedings of the twelfth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Tabled evaluation with delaying for general logic programs
Journal of the ACM (JACM)
An abstract machine for tabled execution of fixed-order stratified logic programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
YapOr: an Or-Parallel Prolog System Based on Environment Copying
EPIA '99 Proceedings of the 9th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence
CHAT: The Copy-Hybrid Approach to Tabling
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
PADL '99 Proceedings of the First International Workshop on Practical Aspects of Declarative Languages
Implementation of a Linear Tabling Mechanism
PADL '00 Proceedings of the Second International Workshop on Practical Aspects of Declarative Languages
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
Exploiting Parallelism in Tabled Evaluations
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Beyond Depth-First: Improving Tabled Logic Programs through Alternative Scheduling Strategies
PLILP '96 Proceedings of the 8th International Symposium on Programming Languages: Implementations, Logics, and Programs
CAT: The Copying Approach to Tabling
PLILP '98/ALP '98 Proceedings of the 10th International Symposium on Principles of Declarative Programming
On applying or-parallelism and tabling to logic programs
Theory and Practice of Logic Programming
The slab allocator: an object-caching kernel memory allocator
USTC'94 Proceedings of the USENIX Summer 1994 Technical Conference on USENIX Summer 1994 Technical Conference - Volume 1
Achieving Scalability in Parallel Tabled Logic Programs
IPDPS '02 Proceedings of the 16th International Parallel and Distributed Processing Symposium
Efficient fixpoint computation in linear tabling
Proceedings of the 5th ACM SIGPLAN international conference on Principles and practice of declaritive programming
Semi-naive evaluation in linear tabling
PPDP '04 Proceedings of the 6th ACM SIGPLAN international conference on Principles and practice of declarative programming
On applying or-parallelism and tabling to logic programs
Theory and Practice of Logic Programming
Optimization with mode-directed preferences
PPDP '05 Proceedings of the 7th ACM SIGPLAN international conference on Principles and practice of declarative programming
Dynamic reordering of alternatives for definite logic programs
Computer Languages, Systems and Structures
The MYDDAS project: using a deductive database for traffic characterization
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Mode-directed fixed point computation
LPNMR'05 Proceedings of the 8th international conference on Logic Programming and Nonmonotonic Reasoning
ICLP'06 Proceedings of the 22nd international conference on Logic Programming
Co-logic programming: extending logic programming with coinduction
ICALP'07 Proceedings of the 34th international conference on Automata, Languages and Programming
Hi-index | 0.01 |
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, and several are by nature non-deterministic. This raises the question of whether parallel search techniques can be usedto improve the performance of tabledapplications.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.