Parallel Processing Research
Design and Implementation of Parallel Logic
Programming Systems
ILPS'94 Post-Conference Workshop
Ithaca, NY, November 18, 1994
Author(s)
Gopal Gupta,
Enrico Pontelli
Abstract
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
AKL
- Penny, a Parallel Implementation of AKL
Johan Montelius
- Control-Flow and Data-Flow Dependencies in And-Or Tree
Rewriting Systems
S. Abreu, L.M. Pereira
Implementation Issues for Parallel L.P. Systems
- Parallelizing Tabled Evaluations
J. Freire, R. Hu, T. Swift, D.S. Warren
- Aurora, Andorra-I and Friends on the Sun
V. Santos Costa, M.E. Correia, F. Silva
- Using Attributed Variables in the Implementation
of Parallel and Concurrent Logic Programming Systems
M. Hermenegildo, D. Cabeza, M. Carro
- Determinacy Driven Optimizations for Parallel Prolog
Implementations
E. Pontelli, G. Gupta, T. DongXing
Panel Session: Parallel Logic Programming in the year 2001
(i.e., will HAL9000 be programmed in Parallel Prolog ?)
KL1 & KLIC
- Preliminary Evaluation of Distributed Implementation of KLIC
A. Nakase, K. Rokusawa, T. Fujise, T. Chikayama
- Distributed Pool for Efficient Data Distribution in KL1
- Quiescence Detection in a Distributed KLIC Implementation
K. Rokusawa, A. Nakase, T. Chikayama
- Implementation of Parallel Database Management System
M. Kawamura, T. Kawamura
Distributed and Real-time Implementations of Logic Programming
- On Using Logic Programming in Real-Time Systems
A. Mendes da Silva Filho
- Distributed Programming and Disjunctive Programming
D. Arnow, K. McAloon, C. Tretkoff
- Implementing Prolog on Distributed Systems: n-parallel Prolog
D. Eadline
The Proceedings
Parallel Proc. Page
Research Page
Lab Home Page