Daniel E. Neiman
When rules are executed in a parallel production system, the goal of control is to ensure both that a high-quality solution is achieved and that processing resources are used effectively. We argue that the conventional conflict resolution algorithm is not suitable as a control mechanism for parallel rule-firing systems. The necessity for examining all eligible rules within a system imposes a synchronization delay which limits processor utilization. Rather than perform conflict resolution, we propose that rules should be executed asynchronously as soon as they become enabled, however, this approach leaves the problem of controlling the computation unsolved. We have identified three distinct types of control, program sequencing, heuristic control, and dynamic scheduling, which are required for efficient and correct parallel execution of rules. We discuss the issues involved in implementing each type of control without undue overhead within the context of our system, a parallel rule-firing system with an augmented agenda manager.