Global quiescence detection based on credit distribution and recovery
Information Processing Letters
Recursive query processing: the power of logic
Theoretical Computer Science
The muse approach to Or-parallel Prolog
International Journal of Parallel Programming
Andorra I: a parallel Prolog system that transparently exploits both And-and or-parallelism
PPOPP '91 Proceedings of the third ACM SIGPLAN symposium on Principles and practice of parallel programming
Parallel logic programming
Full Prolog and scheduling or-parallelism in muse
International Journal of Parallel Programming
Scheduling speculative work in Or-parallel Prolog systems
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
XSB as an efficient deductive database engine
SIGMOD '94 Proceedings of the 1994 ACM SIGMOD international conference on Management of data
An abstract machine for SLG resolution: definite programs
ILPS '94 Proceedings of the 1994 International Symposium on Logic programming
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)
CHAT: the copy-hybrid approach to tabling
Future Generation Computer Systems
Parallel execution of prolog programs: a survey
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communication and Concurrency
Logic for Problem Solving
OLD Resolution with Tabulation
Proceedings of the Third International Conference on Logic Programming
Proceedings of the 17th International Conference on Logic Programming
On a Tabling Engine That Can Exploit Or-Parallelism
Proceedings of the 17th International Conference on Logic Programming
Optimising Bytecode Emulation for Prolog
PPDP '99 Proceedings of the International Conference PPDP'99 on Principles and Practice of Declarative Programming
A Space Efficient Engine for Subsumption-Based Tabled Evaluation of Logic Programs
FLOPS '99 Proceedings of the 4th Fuji International Symposium on Functional and Logic Programming
XSB: A System for Effciently Computing WFS
LPNMR '97 Proceedings of the 4th International Conference on Logic Programming and Nonmonotonic Reasoning
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
XMC: A Logic-Programming-Based Verification Toolset
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
An abstract machine based execution model for computer architecture design and efficient implementation of logic programs in parallel
The slg-wam: a search-efficient engine for well-founded evaluation of normal logic programs
The slg-wam: a search-efficient engine for well-founded evaluation of normal logic programs
Efficient tabled evaluation of normal logic programs in a distributed environment
Efficient tabled evaluation of normal logic programs in a distributed environment
Linear tabulated resolution based on Prolog control strategy
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
Approximate pruning in tabled logic programming
ESOP'03 Proceedings of the 12th European conference on Programming
On a Tabling Engine That Can Exploit Or-Parallelism
Proceedings of the 17th International Conference on Logic Programming
Interactive, scalable, declarative program analysis: from prototype to implementation
Proceedings of the 9th ACM SIGPLAN international conference on Principles and practice of declarative programming
Linear tabling strategies and optimizations
Theory and Practice of Logic Programming
The Life of a Logic Programming System
ICLP '08 Proceedings of the 24th International Conference on Logic Programming
Mostly-Functional Behavior in Java Programs
VMCAI '09 Proceedings of the 10th International Conference on Verification, Model Checking, and Abstract Interpretation
PADL '09 Proceedings of the 11th International Symposium on Practical Aspects of Declarative Languages
A Term-Based Global Trie for Tabled Logic Programs
ICLP '09 Proceedings of the 25th International Conference on Logic Programming
On Improving the Efficiency of Deterministic Calls and Answers in Tabled Logic Programs
EPIA '09 Proceedings of the 14th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence
CLP(BN): constraint logic programming for probabilistic knowledge
Probabilistic inductive logic programming
Retroactive subsumption-based tabled evaluation of logic programs
JELIA'10 Proceedings of the 12th European conference on Logics in artificial intelligence
A subterm-based global trie for tabled evaluation of logic programs
EPIA'11 Proceedings of the 15th Portugese conference on Progress in artificial intelligence
IMPACT: innovative models for prolog with advanced control and tabling
ICLP'05 Proceedings of the 21st international conference on Logic Programming
Tabling in mercury: design and implementation
PADL'06 Proceedings of the 8th international conference on Practical Aspects of Declarative Languages
Compact lists for tabled evaluation
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
A simple and efficient implementation of concurrent local tabling
PADL'10 Proceedings of the 12th international conference on Practical Aspects of Declarative Languages
Theory and Practice of Logic Programming - Prolog Systems
On the implementation of gnu prolog
Theory and Practice of Logic Programming - Prolog Systems
On improving the efficiency and robustness of table storage mechanisms for tabled evaluation
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Prolog performance on larger datasets
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
Towards multi-threaded local tabling using a common table space
Theory and Practice of Logic Programming
Hi-index | 0.00 |
Logic programming languages, such as Prolog, provide a high-level, declarative approach to programming. Logic Programming offers great potential for implicit parallelism, thus allowing parallel systems to often reduce a program's execution time without programmer intervention. We believe that for complex applications that take several hours, if not days, to return an answer, even limited speedups from parallel execution can directly translate to very significant productivity gains. It has been argued that Prolog's evaluation strategy – SLD resolution – often limits the potential of the logic programming paradigm. The past years have therefore seen widening efforts at increasing Prolog's declarativeness and expressiveness. Tabling has proved to be a viable technique to efficiently overcome SLD's susceptibility to infinite loops and redundant subcomputations. Our research demonstrates that implicit or-parallelism is a natural fit for logic programs with tabling. To substantiate this belief, we have designed and implemented an or-parallel tabling engine – OPTYap – and we used a shared-memory parallel machine to evaluate its performance. To the best of our knowledge, OPTYap is the first implementation of a parallel tabling engine for logic programming systems. OPTYap builds on Yap's efficient sequential Prolog engine. Its execution model is based on the SLG-WAM for tabling, and on the environment copying for or-parallelism. Preliminary results indicate that the mechanisms proposed to parallelize search in the context of SLD resolution can indeed be effectively and naturally generalized to parallelize tabled computations, and that the resulting systems can achieve good performance on shared-memory parallel machines. More importantly, it emphasizes our belief that through applying or-parallelism and tabling to logic programs the range of applications for Logic Programming can be increased.