Towards Full Prolog on a Distributed Architecture
L. Araujo,
Proc. of Euro-Par'97, (1997), LNCS 1300, Springer-Verlag, p. 1173-1180.

This paper presents an implementation of some essential side-effects
of Prolog: cut and findall, on a distributed memory system.
Although the techniques proposed herein are valid for any distributed memory
implementation, they are advantageous in those based on recomputation,
such as PDP (Prolog Distributed Processor), a model for Independent_AND/OR
parallel execution of Prolog. The key idea to implement the cut
predicate is to exploit as much parallelism as possible, but in such a way
that the computation of a branch of the search tree which cannot be pruned
by a cut is never delayed to control computations depending on a
cut, (i.e. to analyze the pruning of the branch of these computations
and to kill them). The model proposed for the findall predicate
reduces the communication as much as possible.