Transforming rule-based programs: from the sequential to the parallel

Conflict resolution is a form of global control used in production systems to achieve an efficient sequential execution of a rule-based program. This type of control is not used in parallel production system models[6, 13]. Instead, only those programs are executed which make no assumptions regarding conflict resolution. Therefore, the initial sequential rule-based programs are either executed in parallel without their conflict resolution strategy, which normally results in incorrect behavior, or the programs are transformed in an ad hoc manner to execute on a particular parallel production system model. As a result, these programs do not exhibit the parallelism hoped for [10, 13]. We believe that a second reason behind the lack of parallelism is that no formal methods of verifying the correctness of rule-based programs are utilized. Correctness is especially important when conflict resolution is no longer utilized, because it necessary to transform sequential rule-based programs into equivalent programs without conflict resolution. Also, the parallel execution of a rule-based program is more complex and demands these formal methods even more than its sequential counterpart. We are concerned with designing and developing correct rule-based programs for parallel execution. In this paper, we show the difficulty in transforming a simple sequential rule-based program to a new version of the program with no conflict resolution. Also, we show that the use of a new programming paradigm and language may result in more efficient programs which are provably correct, and can be executed in parallel.

[1]  Anoop Gupta Parallelism in production systems , 1987 .

[2]  Patrick Henry Winston Artificial Intelligence, 2nd Edition , 1984, Addison-Wesley series in computer science.

[3]  Allen Newell,et al.  Soar/PSM-E: investigating match parallelism in a learning production sytsem , 1988, PPoPP 1988.

[4]  Charles L. Forgy,et al.  OPS5 user's manual , 1981 .

[5]  J. McDermott,et al.  Production system conflict resolution strategies , 1977, SGAR.

[6]  Gruia-Catalin Roman,et al.  A shared dataspace model of concurrency-language and programming implications , 1989, [1989] Proceedings. The 9th International Conference on Distributed Computing Systems.

[7]  Gruia-Catalin Roman,et al.  A UNITY-Style Programming Logic for a Shared Dataspace Language , 1989 .

[8]  James G. Schmolze Guaranteeing Serializable Results in Synchronous Parallel Production Systems , 1991, J. Parallel Distributed Comput..

[9]  James G. Schmolze,et al.  A Parallel Asynchronous Distributed Production System , 1990, AAAI.

[10]  Alexander J. Pasik,et al.  A methodology for programming production systems and its implications on parallelism , 1989 .

[11]  Nils J. Nilsson,et al.  Artificial Intelligence , 1974, IFIP Congress.

[12]  Daniel P. Miranker,et al.  Parallelizing Transformations for a Concurrent Rule Execution Language , 1989 .

[13]  Allen Newell,et al.  Soar/PSM-E: investigating match parallelism in a learning production sytsem , 1988, PPEALS '88.

[14]  C. Forgy,et al.  PRODUCTION SYSTEM CONFLICT RESOLUTION STRATEGIES1 , 1978 .

[15]  Salvatore J. Stolfo,et al.  Towards the Parallel Execution of Rules in Production System Programs , 1985, ICPP.

[16]  K. Mani Chandy,et al.  Parallel program design - a foundation , 1988 .

[17]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.