This section presents a distributed scheduler for exploiting OR-Parallelism and Independent And-Parallelism in Logic Programming [33]. The scheduler is distributed and called DSLP - Distributed Scheduler for Logic Programming. DSLP works on parallel and distributed computers. The proposal uses two main information to aid scheduling: system information, detected before and during the execution and application information, generated statically by GRANLOG (Granularity Analyzer for Logic Programming). Some preliminary results are available.
The basic structure of DSLP is composed of or-nodes and and-nodes that are subordinated to their or-nodes forming a network ring. The or-nodes are composed of two processes: one is the worker and performs Prolog reductions, the second one is the scheduler responsible for choosing or-work for the or-nodes. The and-nodes are composed only of workers and are responsible for executing independent and-parallel work.
The communication protocol is bidirectional with maximum step. The network ring is bidirectional in order that each worker can communicate with its two neighbours. The maximum step is determined from the total number of schedulers in the ring. Whenever a worker sends a message from one worker to the others, the maximum step is packed with the message. Whenever the message arrives to a node it is unpacked and the maximum step is decremented by 1 unit.
The DSLP model has a prototype implemented in PVM (Parallel Virtual Machine) for SUN workstations with ethernet network. Our first results are encouraging and show that the model can exploit efficiently independent and-parallelism.