Threads and Or-Parallelism Unified

Vítor Santos Costa, Inês Dutra and Ricardo Rocha

July 2010


One of the main advantages of Logic Programming (LP) is that it provides an excellent framework for the parallel execution of programs. In this work we investigate novel techniques to efficiently exploit parallelism from real-world applications in low cost multi-core architectures. To achieve these goals, we revive and redesign the YapOr system to exploit or-parallelism based on a multi-threaded implementation. Our new approach takes full advantage of the state-of-the-art fast and optimized YAP Prolog engine and shares the underlying execution environment, scheduler and most of the data structures used to support YapOr's model. Initial experiments with our new approach consistently achieve almost linear speedups for most of the applications, proving itself as a good alternative for exploiting implicit parallelism in the currently available low cost multi-core architectures.


  author =    {V. Santos Costa and I. Dutra and R. Rocha},
  title =     {{Threads and Or-Parallelism Unified}},
  journal =   {Journal of Theory and Practice of Logic Programming,
               26th International Conference on Logic Programming (ICLP 2010), Special Issue},
  pages =     {417--432},
  volume =    {10},
  number =    {4 \& 6},
  month =     {July},
  year =      {2010},

Download Paper

PDF file
Cambridge University Press
Computing Research Repository (CoRR)

Download Slides

PDF file