Um Sistema Baseado na Cópia de Ambientes para a Execução de Prolog em Paralelo

Ricardo Rocha

July 1996


Prolog is a popular programming language that is particularly important in Artificial Intelligence applications. Traditionally, Prolog has been implemented in the common, sequential general-purpose computers. More recently, Prolog implementations have also been proposed for parallel architectures where several processors work together to speedup the execution of a program. By giving better speedups, parallel implementations of Prolog should enable better performance for current problems, and expand the range of applications we can solve with Prolog.
This work addresses the issues of the design, implementation and performance evaluation of YapOr, an Or-parallel Prolog system. YapOr extends Yap's sequential execution model to exploit implicit Or-parallelism in Prolog programs. It is based on the environment copy model and implements most of the ideas introduced in Muse system.
To develop YapOr, it was necessary to solve some important issues, such as, design of data structures to support parallel process, implement the incremental copy technique, develop a memory organisation able to answer with efficiency to the parallel process and to the incremental copy in particular, implement the scheduling strategies, design an interface between the scheduler and the engine, implement the sharing work process, handle cut predicate with care and develop a scheme to support solutions that potentially correspond to speculative work.
An initial evaluation of the performance of YapOr showed that it achieves very good performance on a large set of benchmark programs. It also showed that YapOr compares favourably with Muse.


  author =  {R. Rocha},
  title =   {{Um Sistema Baseado na Cópia de Ambientes para a Execução de Prolog em Paralelo}},
  school =  {University of Minho},
  address = {Portugal},
  month =   {July},
  year =    {1996},
  type =    {{MSc Thesis}},
  note =    {In Portuguese},

Download Thesis

PDF file