Logic Programming Research

Implementation and Performance of &ACE: An Independent And-Parallel System

New Mexico State University, Technical Report.

Gopal Gupta, Manuel Hermenegildo, Enrico Pontelli

Logic programming is a paradigm of programming based on a subset of first order logic. An important property of logic programming languages, such as Prolog, is that their declarativew semantics is largely independent of the order in which different operations are performed during execution of the program. The different operations can also be performed in parallel, and as a result it is possible to exploit substantial parallelism from Prolog programs, that have been written for sequential machines, without requiring the user to make any modifications to them. In this paper we present a model called ACE that accomplishes this. ACE is a computational model for the full Prolog language, capable of concurrently exploiting both Or-parallelism and Independent And-parallelism. In this paper we focus on the specific implementation of the and-parallel component of the ACE system, describing its internal organization, some optimizations to the basic model, and finally presenting some performance figures. These performance figures show that our system is very good at exploiting parallelism from applications written in Prolog since it is able to obtain linear speedups.

The whole paper can be downloaded from our server.

Logic Prog. Page Research Page Lab Home Page