Parallel Processing Research

Design and Implementation of Parallel Logic Programming Systems

ILPS'94 Post-Conference Workshop
Ithaca, NY, November 18, 1994

Gopal Gupta, Enrico Pontelli

The last few years have seen progressively increasing availability of powerful multiprocessor computers in almost every academic and commercial computing environment. This trend is making parallel programming languages one of the most valuable areas of research in computer science. Nevertheless, extensions of conventional programming languages (e.g., those based on the imperative programming paradigm) to support parallel/concurrent executions do not seem to offer a sufficiently convenient way of taking advantage of these new hardware resources, making the task of the programmer extremely difficult and error-prone. On the other hand, declarative programming paradigms, and more specifically logic programming, are proving themselves to be viable solution to programming this parallel hardware. Properties like the single-assignment nature of declarative languages, used in the language, and the inherent non-deterministic nature of the operational semantics, allows for executing different operations in a program in arbitrary order, without affecting the outcome of the computation. In particular, these operations can be performed by the program executor in parallel. This observation is leading to a continual increasing interest in logic programming languages (like Prolog) to describe (implicitely or explicitely) parallel/concurrent computations. Although the present literature offers a wide variety of approaches to the problem of exploiting parallelism from logic programs, they can be roughly subdivided into two broad categories:
Explicit Exploitation
In which the actual detection, exploitation, and management of the parallelism has to be explicitely described by the programmer. Typically the logic-based language is extended with a proper set of primitives (e.g., message passing mechanisms, blackboards-like structures) sufficient for this kind of activity.

Implicit Exploitation
In which the burden related to the management of parallel execution is moved from the programmer to the actual execution environment (compiler, emulator, etc.).
Most of the actual systems lie somehow in between the two extremes, offering various degrees of trade-offs between implicit exploitation and programmer-mediated parallelization. The collection of papers presented here offers a broad overview of the state-of-the-art in the area, spanning over the two above-mentioned extremes. These papers are the result of the 1994 International Symposium on Logic Programming post-conference workshop dedicated to the Design and Implementation of Parallel Logic Programming Systems, held in Ithaca, NY on November 18, 1994. The main purpose of this workshop was to bring together researchers in the field of parallel logic programming, in order to exchange experiences and ideas and tackle the main open issues. The topics covered by the papers presented range from the actual description of existing systems, to the analysis of new implementation techniques, to the description of actual applications of parallel logic programming to various application areas.

Program of the Workshop

The Proceedings

Parallel Proc. Page Research Page Lab Home Page