On Applying Or-Parallelism and Tabling to Logic Programs
Ricardo Rocha, Fernando Silva, Vitor Santos Costa

TL;DR
This paper introduces OPTYap, the first parallel tabling engine for logic programming, demonstrating effective or-parallelism integration with tabling to enhance Prolog's expressiveness and performance on shared-memory systems.
Contribution
The paper presents the design and implementation of OPTYap, a novel parallel tabling engine that combines or-parallelism with tabling in logic programming systems.
Findings
OPTYap achieves good performance on shared-memory machines.
Parallelizing tabling with or-parallelism is effective and natural.
The approach broadens the application scope of logic programming.
Abstract
The past years have 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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, Reasoning, and Knowledge · Logic, programming, and type systems · Advanced Algebra and Logic
