next up previous contents
Next: Scheduling Up: Parallelism Efficiency Previous: Memory Management in And/Or-Parallel

Control Management

Managing the flow of control in the execution of Prolog programs in parallel systems is another complex issue. It can be articulated in three major subtopics: generalization of sequential control, scheduling, and management of order-sensitive calls.

It is relatively straightforward to generalize sequential control in or-parallelism, since the local computations carried on by the or-agents are basically standard sequential executions. Only local changes are required during backtracking, in order to switch to the or-scheduler whenever no more work is locally available. In and-parallelism things are slightly more complex. Forward execution is complicated by the need of performing a ``join'' at the end of the parallel computation, in order to combine the partial solutions produced and continue with a sequential execution. Backward execution becomes extremely more complex, due to the need of unwinding a computation which is arbitrarily spread across the stacks of different agents.

Scheduling and management of order-sensitive executions present some challenging problems.

Tue Mar 19 14:37:09 MST 1996