High-Level Constructors for Solution Searching in Or-Parallel Prolog Systems
João silva
December 2014
Abstract
This aim of this work is to design and implement strategies that can
improve the performance of logic programs when searching for
particular solutions in an Or-Parallel Prolog system. Prolog is a
first-order logic predicate language that belongs to the declarative
family of programming languages, emphasizing data declaration and
use. Or-Parallelism is a form of implicit parallelism that can be
applied to Prolog programs, in order to allow the parallel execution
of several clauses that match a Prolog goal.
With the availability of specific strategies that can improve the
system's performance when searching for solutions in parallel, we
expect to: (i) allow for long-running programs, such as those used for
simulations, to take less time to execute; (ii) make it possible to
execute new programs that deal with larger amounts of data, that would
otherwise be too slow to run; (iii) generate more interest in Prolog,
which might lead to further research. In particular, our
implementation was done on top of the YAP, a well-known and
established system which makes it possible for users to get all of
these benefits.
The strategies proposed in this work have a very important concept at
the core: make relatively small changes to the YAP's engine codebase
in order to allow them to be easily ported to other implementations of
Prolog, and make them available to the user, by using high-level
constructors that transparently increase the speedups obtained without
forcing the user to make complex source code changes.
Bibtex
@MastersThesis{silva-msc,
author = {J. Silva},
title = {{High-Level Constructors for Solution Searching in Or-Parallel Prolog Systems}},
school = {University of Porto},
address = {Portugal},
month = {December},
year = {2014},
type = {{MSc Thesis}},
}
Download Thesis
PDF file