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