YapOr: an Or-Parallel Prolog System based on Environment Copying
Ricardo Rocha, Fernando Silva and VĂtor Santos Costa
December 1997
Abstract
Prolog compilers have proved to be highly efficient for standard
sequential architectures. The efficiency of these implementations and
the declarativeness of the Prolog language have kindled interest on
implementations for parallel architectures. YapOr is an Or-parallel
system that extends Yap's sequential execution model to exploit
implicit or-parallelism in Prolog programs. YapOr is based on the
environment copy model, as first implemented in Muse.
To develop YapOr, it was necessary to solve some important issues,
such as the design of data structures to support parallel processing,
the implementation of the incremental copying technique, the
development of a memory organization able to answer with efficiency to
parallel processing and to the incremental copying in particular, the
implementation of the scheduling strategies, the design of an
interface between the scheduler and the engine, the implementation of
the sharing work process, and support for 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.
Bibtex
@TechReport{rocha-dcc97-14,
author = {R. Rocha and F. Silva and V. Santos Costa},
title = {{YapOr: an Or-Parallel Prolog System based on Environment Copying}},
institution = {DCC-FC \& LIACC, University of Porto},
number = {DCC-1997-14},
month = {December},
year = {1997},
}
Download Report
PDF file