The muse approach to Or-parallel Prolog
International Journal of Parallel Programming
Stack-splitting: or-/and-parallelism on distributed memory machines
Proceedings of the 1999 international conference on Logic programming
Parallel execution of prolog programs: a survey
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
PALS: An Or-Parallel Implementation of Prolog on Beowulf Architectures
Proceedings of the 17th International Conference on Logic Programming
Journal of Parallel and Distributed Computing
Threads and or-parallelism unified
Theory and Practice of Logic Programming
Hi-index | 0.00 |
Many or-parallel Prolog computational models exploiting implicit parallelism have been proposed in the past. The Muse and YapOr systems are arguably two of the most efficient systems exploiting or-parallelism on shared memory architectures, both based on the environment copying model. Stack splitting emerged as an alternative model specially geared to distributed memory architectures as it basically splits the computation in such a way that no further, or just minimal, synchronization is required. With the new multicore architectures, it just makes sense to recover the body of knowledge there is in this area and reengineer prior computational models to evaluate their performance on newer architectures. In this paper, we focus on the design and implementation of stack splitting in the YapOr system. Our aim is to take advantage of its robustness to efficiently implement stack splitting support using shared memory, and then be able to directly compare the original YapOr with the YapOr using stack splitting. We consider two splitting models, vertical splitting and half splitting, and have adapted data structures, scheduling and incremental copy procedures in YapOr to cope with the new models. Experimental results, on a multicore machine with 24 cores, show that YapOr using stack splitting is, in general, comparable to the original YapOr, obtaining in some cases better performance than with only environment copying.