Threads and Or-Parallelism Unified
V\'itor Santos Costa, In\^es Dutra, Ricardo Rocha

TL;DR
This paper presents a redesigned multi-threaded YapOr system that efficiently exploits or-parallelism in logic programming, achieving near-linear speedups on multi-core architectures by sharing core components and optimizing execution.
Contribution
The paper introduces a novel multi-threaded implementation of YapOr that leverages shared data structures and the YAP Prolog engine to improve parallel execution efficiency.
Findings
Achieves almost linear speedups on most applications
Effectively exploits implicit parallelism in multi-core architectures
Redesigns YapOr for shared environment and optimized performance
Abstract
One of the main advantages of Logic Programming (LP) is that it provides an excellent framework for the parallel execution of programs. In this work we investigate novel techniques to efficiently exploit parallelism from real-world applications in low cost multi-core architectures. To achieve these goals, we revive and redesign the YapOr system to exploit or-parallelism based on a multi-threaded implementation. Our new approach takes full advantage of the state-of-the-art fast and optimized YAP Prolog engine and shares the underlying execution environment, scheduler and most of the data structures used to support YapOr's model. Initial experiments with our new approach consistently achieve almost linear speedups for most of the applications, proving itself as a good alternative for exploiting implicit parallelism in the currently available low cost multi-core architectures.
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.
