Distributed processing of logic programs

This paper is concerned with the issue of parallel evaluation of logic programs. To address this issue we define a new concept of predicate decomposability. If a predicate is decomposable, it means that the load of evaluating it can be divided among a number of processors, without a need for communication among them. This in turn results in a very significant speed-up of the evaluation process. We completely characterize three classes of single rule programs (sirups) with respect to decomposability nonrecursive, linear, and simple chain programs. All three classes were studied previously in various contexts. We establish that nonrecursive programs are decomposable, whereas for the other two classes we determine which ones are, and which ones are not decomposable. We also establish two sufficient conditions for sirup decomposability.