next up previous
Next: Introduction

The APPELO Project

Parallel Environment for Logic Programming

Claudio F. R. Geyer
Universidade Federal do Rio Grande do Sul
Instituto de Informática

Jorge L. V. Barbosa, Cristiano A. Costa and Adenauer C. Yamin
Universidade Católica de Pelotas
Escola de Informática

Inês C. Dutra
Universidade Federal do Rio de Janeiro

Vítor M. M. Santos Costa and Fernando M. A. Silva
Universidade do Porto
Laboratório de Inteligência Artificial e Ciência de Computadores

Gopal Gupta and Enrico Pontelli
New Mexico State University
Laboratory for Logic, Database, and Advanced Programming


This work focus on the APPELO project supported by CNPq (Protem-III/CC). Our APPELO project tackled three main aspects of parallel logic programming: the parallel runtime environment, compile-time analysis tools and post-run analysis tools. Regarding the parallel runtime environment we performed a thorough performance analysis of existing parallel logic programming systems by using a simulator of a distributed-shared memory (DSM) architecture. Our performance analysis confirms that our proposed runtime environment, DAOS - Distributing And/Or in Scalable machines, that combines DSM techniques with message passing will certainly obtain good performance on a distributed environment. We also proposed and analysed several scheduling strategies, Tamagoshi, Penelope and DSLP, necessary for the efficient distribution of work among the processors in our system. We also designed and developed a compile-time analysis tool, GRANLOG, that is responsible for annotating Prolog programs with useful information such as grain sizes of goals and clauses to guide scheduling decisions. In order to be able to identify bottlenecks and opportunities for optimising our parallel runtime environment, specially the schedulers, we designed and developed VisAll, a tool to visualise the parallel execution of Prolog programs. We also defined a benchmark set composed of Prolog programs taken from academia and from industries. We believe that our integrated system can run logic programs efficiently on parallel platforms offering to the user a very low cost software development environment.

Keywords: logic programming, parallelism, and-or parallelism, static analysis, scheduling, visualisation.

next up previous
Next: Introduction
Ines de Castro Dutra