YapOr: an Or-Parallel Prolog System Based on Environment Copying

Ricardo Rocha, Fernando Silva and Vítor Santos Costa

September 1999


YapOr is an or-parallel system that extends the Yap Prolog system to exploit implicit or-parallelism in Prolog programs. It is based on the environment copying model, as first implemented in Muse. The development of YapOr required solutions for some important issues, such as designing the data structures to support parallel processing, implementing incremental copying technique, developing a memory organization able to answer with efficiency to parallel processing and to incremental copying in particular, implementing the scheduler strategies, designing an interface between the scheduler and the engine, implementing the sharing work process, and implementing support to the cut builtin. An initial evaluation of YapOr performance showed that it achieves very good performance on a large set of benchmark programs. Indeed, YapOr compares favorably with a mature parallel Prolog system such as Muse, both in terms of base speed and in terms of speedups.


  author =    {R. Rocha and F. Silva and V. Santos Costa},
  title =     {{YapOr: an Or-Parallel Prolog System Based on Environment Copying}},
  booktitle = {Proceedings of the 9th Portuguese Conference on Artificial Intelligence (EPIA 1999)},
  pages =     {178--192},
  number =    {1695},
  series =    {LNAI},
  publisher = {Springer},
  editor =    {P. Barahona and J. Alferes},
  month =     {September},
  year =      {1999},
  address =   {Évora, Portugal},

Download Paper

PDF file

Download Slides

PDF file