On Comparing Alternative Splitting Strategies for Or-Parallel Prolog Execution on Multicores
Rui Vieira, Ricardo Rocha and Fernando Silva
September 2012
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 incremental copying and scheduling support, which
we used with minimal modifications. We thus argue that all these
common support features allow us to make a first and fair comparison
between these five alternative splitting strategies and, therefore,
better understand their advantages and weaknesses.
Bibtex
@InProceedings{vieira-ciclops12,
author = {R. Vieira and R. Rocha and F. Silva},
title = {{On Comparing Alternative Splitting Strategies for Or-Parallel Prolog Execution on Multicores}},
booktitle = {Proceedings of the 12th Colloquium on Implementation of Constraint and LOgic Programming
Systems (CICLOPS 2012)},
pages = {71--85},
editor = {N. Angelopoulos and R. Bagnara},
month = {September},
year = {2012},
address = {Budapest, Hungary},
}
Download Paper
PDF file
Computing Research Repository (CoRR)
Download Slides
PDF file