On Comparing Alternative Splitting Strategies for Or-Parallel Prolog Execution on Multicores
Rui Vieira, Ricardo Rocha, Fernando Silva

TL;DR
This paper evaluates five different splitting strategies for or-parallel Prolog execution on multicore systems by extending the YapOr system, aiming to understand their relative advantages and weaknesses.
Contribution
It develops a unified framework on YapOr for comparing multiple splitting strategies, facilitating performance evaluation on multicore architectures.
Findings
Shared infrastructure enables fair comparison of strategies
Incremental copying and scheduling features are adaptable to new strategies
Insights into the strengths and weaknesses of each splitting approach
Abstract
Many or-parallel Prolog models exploiting implicit parallelism have been proposed in the past. Arguably, one of the most successful models is environment copying for shared memory architectures. With the increasing availability and popularity of multicore architectures, it makes sense to recover the body of knowledge there is in this area and re-engineer prior computational models to evaluate their performance on newer architectures. In this work, we focus on the implementation of splitting strategies for or-parallel Prolog execution on multicores and, for that, we develop a framework, on top of the YapOr system, that integrates and supports five alternative splitting strategies. Our implementation shares the underlying execution environment and most of the data structures used to implement or-parallelism in YapOr. In particular, we took advantage of YapOr's infrastructure for…
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
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Software Testing and Debugging Techniques
