PDP: Prolog Distributed Processor for Independent_AND/OR Parallel Execution of Prolog.
Lourdes Araujo, José J. Ruz,
Proc. of Int. Conf. of Logic Programming (1994), p. 142-156. MIT Press.

PDP (Prolog Distributed Processor) is a multisequential system for
Independent_AND\OR parallel execution of Prolog. The system
is composed of a set of workers controlled hierarchically. Each worker
operates on its own private memory and interprocessor communication is
performed only by the passing of messages. Independent AND\_parallelism
is exploited following a fork-join scheme and OR_parallelism is
exploited following a multisequential approach. Both kinds of parallelism
are implemented using closed environments. To exploit OR_parallelism,
the parent worker environment is reconstructed in a new worker by
recomputing the initial goal without backtracking, following the
success path obtained from the parent worker. PDP deals with
OR_under_AND parallelism producing the solutions of a set of parallel
goals in a distributed way, that is, creating a new task for each element
of the cross product. This approach has the advantage of avoiding both
storing partial solutions and synchronizing workers, resulting in a largely
increased performance. PDP has been implemented on a transputer network and
performance results show that PDP introduces very little overhead into
sequential programs, and provides a high speedup for coarse grain
parallel programs.