Decomposition Abstraction in Parallel Rule Languages

Decomposition abstraction is the process of organizing and specifying decomposition strategies for the exploitation of parallelism available in an application. In this paper we develop and evaluate declarative primitives for rule-based programs that expand opportunities for parallel execution. These primitives make explicit, implicit relations among the data and similarly among the rules. The semantics of the primitives are presented in a general object-based framework such that they may be applied to most rule-based programming languages. We show how the additional information provided by the decomposition primitives can be incorporated into a semantic-based dependency analysis technique. The resulting analysis reveals parallelism at compile time that is very difficult, if not impossible, to discover by traditional syntactic analysis techniques. Simulation results demonstrate scalable and broadly available parallelism.

[1]  Michael Stonebraker,et al.  The Implementation of Postgres , 1990, IEEE Trans. Knowl. Data Eng..

[2]  David L. Waltz,et al.  Understanding Line drawings of Scenes with Shadows , 1975 .

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

[4]  D. N. Gordin,et al.  Set-oriented constructs for rule-based systems , 1991, [1991] Proceedings. The Seventh IEEE Conference on Artificial Intelligence Application.

[5]  Salvatore J. Stolfo Five Parallel Algorithms for Production System Execution on the DADO Machine , 1984, AAAI.

[6]  Daniel P. Miranker TREAT: A new and efficient match algorithm for AI production systems , 1988 .

[7]  René Reboh,et al.  A computer-based consultant for mineral exploration (Abstract of presentation) , 1978, AFIPS National Computer Conference.

[8]  Dan I. Moldovan,et al.  Implementation of Multiple Rule Firing Production Systems on Hypercube , 1991, J. Parallel Distributed Comput..

[9]  Ravi Krishnamurthy,et al.  Towards on Open Architecture for LDL , 1989, VLDB.

[10]  Eric Simon,et al.  Making deductive databases a practical technology: a step forward , 1990, SIGMOD '90.

[11]  Laura M. Haas,et al.  Extensibility in the Starburst Experimental Database System , 1990, IBM Symposium: Database Systems of the 90s.

[12]  Jennifer Widom,et al.  Set-oriented production rules in relational database systems , 1990, SIGMOD '90.

[13]  Carlo Zaniolo,et al.  The LDL System Prototype , 1990, IEEE Trans. Knowl. Data Eng..

[14]  Daniel P. Miranker Special Issue on the Parallel Execution of Rule Systems , 1991, J. Parallel Distributed Comput..

[15]  James C. Browne,et al.  Explicit parallel structuring for rule-based programming , 1993, [1993] Proceedings Seventh International Parallel Processing Symposium.

[16]  Timos K. Sellis,et al.  Data intensive production systems: the DIPS approach , 1989, SGMD.

[17]  Michael Stonebraker,et al.  A commentary on the POSTGRES rules system , 1989, SGMD.

[18]  François Bancilhon,et al.  Naive Evaluation of Recursively Defined Relations , 1986, On Knowledge Base Management Systems.

[19]  Thomas Cooper,et al.  Rule-based programming under OPS5 , 1988 .

[20]  Hamid Pirahesh,et al.  Extensible query processing in starburst , 1989, SIGMOD '89.

[21]  Daniel P. Miranker TREAT: a better match algorithm for AI production systems , 1987, AAAI 1987.

[22]  Eric Simon,et al.  Deciding Whether a Production Rule is Relational Computable , 1988, ICDT.

[23]  Hamid Pirahesh,et al.  Alert: An Architecture for Transforming a Passive DBMS into an Active DBMS , 1991, VLDB.

[24]  Daniel E. Neiman UMASS Parallel OPS5 User''s Manual and Technical Report , 1992 .

[25]  Rudolph E. Seviora,et al.  A Multiprocessor Architecture for Production System Matching , 1987, AAAI.

[26]  D. E. Nieman,et al.  Issues in the Design and Control of Parallel Rule-Firing Production Systems , 1994 .

[27]  Boontee Kruatrachue,et al.  Grain size determination for parallel processing , 1988, IEEE Software.

[28]  Douglas N. Gordin,et al.  Set-oriented constructs: from Rete rule bases to database systems , 1991, SIGMOD '91.

[29]  Dan I. Moldovan,et al.  MODEL FOR PARALLEL PROCESSING OF PRODUCTION SYSTEMS. , 1986 .

[30]  Hamid Pirahesh,et al.  Extensibility in the Starburst Database System , 1986, OODBS.

[31]  Irving L. Traiger,et al.  The notions of consistency and predicate locks in a database system , 1976, CACM.

[32]  Salvatore J. Stolfo,et al.  The PARULEL Parallel Rule Language , 1991, ICPP.

[33]  Salvatore J. Stolfo,et al.  System Reorganization and Load Balancing of Parallel Database Rule Processing , 1993, ISMIS.

[34]  Dan I. Moldovan RUBIC: a multiprocessor for rule-based systems , 1989, IEEE Trans. Syst. Man Cybern..

[35]  Michael Stonebraker,et al.  The design of the POSTGRES rules system , 1987, 1987 IEEE Third International Conference on Data Engineering.

[36]  Michael Stonebraker,et al.  On rules, procedures, caching and views in database systems , 1994, SIGMOD 1994.

[37]  David A. Fisher,et al.  Parallel Processing in Ada , 1986, Computer.

[38]  Daniel P. Miranker,et al.  Discovering Procedural Executions of Rule-Based Programs , 1994, AAAI.

[39]  Geoffrey E. Hinton,et al.  Symbols Among the Neurons: Details of a Connectionist Inference Architecture , 1985, IJCAI.

[40]  Carlo Zaniolo The Representation and Deductive Retrieval of Complex Objects , 1985, VLDB.

[41]  Allen Newell,et al.  SOAR: An Architecture for General Intelligence , 1987, Artif. Intell..

[42]  Daniel P. Miranker,et al.  An algorithmic basis for integrating production systems and large databases , 1990, [1990] Proceedings. Sixth International Conference on Data Engineering.

[43]  Jerry Kiernan,et al.  A rule language compiler for SQL database servers , 1991, Data Knowl. Eng..

[44]  Hamid Pirahesh,et al.  Extensions to Starburst: objects, types, functions, and rules , 1991, CACM.

[45]  William A. Woods,et al.  Knowledge Base Retrieval , 1986, On Knowledge Base Management Systems.

[46]  Setrag Khoshafian,et al.  A calculus for complex objects , 1985, PODS '86.

[47]  Salvatore J. Stolfo,et al.  Scalable Parallel and Distributed Expert Database Systems with Predictive Load Balancing , 1994, J. Parallel Distributed Comput..

[48]  David A. Padua,et al.  High-Speed Multiprocessors and Compilation Techniques , 1980, IEEE Transactions on Computers.

[49]  Hesham H. Ali,et al.  Task scheduling in parallel and distributed systems , 1994, Prentice Hall series in innovative technology.

[50]  Salvatore J. Stolfo,et al.  Predictive dynamic load balancing of parallel and distributed rule and query processing , 1994, SIGMOD '94.

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

[52]  Anoop Gupta Implementing OPS5 production systems on DADO , 1984 .

[53]  Arthur J. Bernstein,et al.  Analysis of Programs for Parallel Processing , 1966, IEEE Trans. Electron. Comput..

[54]  Salvatore J. Stolfo,et al.  The Do-loop Considered Harmful in Production System Programming , 1986, Expert Database Conf..

[55]  W. Daniel Hillis,et al.  Data parallel algorithms , 1986, CACM.

[56]  Salvatore J. Stolfo,et al.  A simple preprocessing scheme to extract and balance implicit parallelism in the concurrent match of production rules , 1986 .

[57]  Jeffrey D. Uuman Principles of database and knowledge- base systems , 1989 .

[58]  John P. McDermott,et al.  Rule-Based Interpretation of Aerial Imagery , 1984, IEEE Transactions on Pattern Analysis and Machine Intelligence.

[59]  Hamid Pirahesh,et al.  A data management extension architecture , 1987, SIGMOD '87.

[60]  Charles L. Forgy,et al.  Rete: a fast algorithm for the many pattern/many object pattern match problem , 1991 .

[61]  Meichun Hsu,et al.  An Execution Model for Active Data Base Management Systems , 1988, JCDKB.

[62]  Salvatore J. Stolfo,et al.  PARULE: Parallel Rule Processing Using Meta-rules for Redaction , 1991, J. Parallel Distributed Comput..

[63]  Jennifer Widom,et al.  Implementing Set-Oriented Production Rules as an Extension to Starburst , 1991, VLDB.

[64]  Dan I. Moldovan,et al.  Control in Production Systems with Multiple Rule Firings , 1990, International Conference on Parallel Processing.

[65]  Lois M. L. Delcambre,et al.  A self-controlling interpreter for the relational production language , 1988, SIGMOD '88.

[66]  Daniel P. Miranker,et al.  A new approach to modularity in rule-based programming , 1994, Proceedings Sixth International Conference on Tools with Artificial Intelligence. TAI 94.

[67]  Salvatore J. Stolfo,et al.  DADO: A Tree-Structured Machine Architecture for Production Systems , 1982, AAAI.

[68]  Umeshwar Dayal,et al.  The architecture of an active database management system , 1989, SIGMOD '89.

[69]  Thomas E. Anderson,et al.  The performance implications of thread management alternatives for shared-memory multiprocessors , 1989, SIGMETRICS '89.

[70]  David Klappholz,et al.  Refined Fortran: an update , 1989, Proceedings of the 1989 ACM/IEEE Conference on Supercomputing (Supercomputing '89).

[71]  Utpal Banerjee,et al.  Dependence analysis for supercomputing , 1988, The Kluwer international series in engineering and computer science.

[72]  Elisa Bertino,et al.  Object-Oriented Query Languages: The Notion and the Issues , 1992, IEEE Trans. Knowl. Data Eng..

[73]  C. A. R. Hoare,et al.  Monitors: an operating system structuring concept , 1974, CACM.

[74]  Timos K. Sellis,et al.  Implementing large production systems in a DBMS environment: concepts and algorithms , 1988, SIGMOD '88.

[75]  Christos H. Papadimitriou,et al.  The Theory of Database Concurrency Control , 1986 .

[76]  Huei-Huang Chen,et al.  Parallel execution on production systems , 1990, Proceedings of the Second IEEE Symposium on Parallel and Distributed Processing 1990.

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

[78]  Stephen I. Gallant,et al.  Connectionist expert systems , 1988, CACM.

[79]  Andrew Sohn,et al.  A Survey on the Parallel Distributed Processing of Production Systems , 1992, Int. J. Artif. Intell. Tools.

[80]  Daniel P. Miranker,et al.  The Organization and Performance of a TREAT-Based Production System Compiler , 1991, IEEE Trans. Knowl. Data Eng..

[81]  Gerhard Zimmermann,et al.  PESA I-A Parallel Architecture for Production Systems , 1987, ICPP.

[82]  David Maier,et al.  The Theory of Relational Databases , 1983 .

[83]  Jennifer Widom,et al.  A syntax and semantics for set-oriented production rules in relational database systems , 1989, SGMD.

[84]  Thomas E. Anderson,et al.  The Performance of Spin Lock Alternatives for Shared-Memory Multiprocessors , 1990, IEEE Trans. Parallel Distributed Syst..

[85]  Nancy Martin,et al.  Programming Expert Systems in OPS5 - An Introduction to Rule-Based Programming(1) , 1985, Int. CMG Conference.

[86]  Salvatore J. Stolfo,et al.  The DADO Production System Machine , 1986, J. Parallel Distributed Comput..

[87]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

[88]  Dan I. Moldovan,et al.  MCMR: a multiple rule firing production system model , 1991, [1991] Proceedings. The Fifth International Parallel Processing Symposium.

[89]  Arobinda Gupta,et al.  PMM: a parallel architecture for production systems , 1992, Proceedings IEEE Southeastcon '92.

[90]  Henry M. Levy,et al.  The performance of an object-oriented threads package , 1990, OOPSLA/ECOOP '90.

[91]  Lois M. L. Delcambre,et al.  The Relational Production Language: A Production Language for Relational Databases , 1988, Expert Database Conf..

[92]  Eric Simon,et al.  A production rule based approach to deductive databases , 1988, Proceedings. Fourth International Conference on Data Engineering.

[93]  Nancy Wogrin,et al.  Rule-Based Programming With Ops 5 , 1988 .

[94]  Ho Soo Lee,et al.  Advances in Rete Pattern Matching , 1986, AAAI.

[95]  Alexander J. Pasik,et al.  A Source-to-Source Transformation for Increasing Rule-Based System Parallelism , 1992, IEEE Trans. Knowl. Data Eng..

[96]  Narain H. Gehani,et al.  Concurrent C , 1986, Softw. Pract. Exp..

[97]  Kemal Oflazer,et al.  Partitioning in parallel processing of production systems , 1987 .

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

[99]  J. Lloyd Foundations of Logic Programming , 1984, Symbolic Computation.

[100]  Daniel P. Miranker,et al.  On the Performance of Lazy Matching in Production Systems , 1990, AAAI.

[101]  Andrew Sohn,et al.  Connectionist Production Systems in Local and Hierarchical Representation , 1991 .

[102]  Larry Wall,et al.  Programming Perl , 1991 .

[103]  Daniel P. Miranker,et al.  Effects of Database Size on Rule System Performance: Five Case Studies , 1991, VLDB.

[104]  Charles Kellogg,et al.  Optimizing the Rule-Data Interface in a KMS , 1986, VLDB.

[105]  Umeshwar Dayal,et al.  Rules Are Objects Too: A Knowledge Model For An Active, Object-Oriented Database System , 1988, OODBS.

[106]  Ho Soo Lee,et al.  Match Algorithms for Generalized Rete Networks , 1992, Artif. Intell..

[107]  Hesham El-Rewini,et al.  Parallax: a tool for parallel program scheduling , 1993, IEEE Parallel & Distributed Technology: Systems & Applications.

[108]  Robert H. Halstead,et al.  MULTILISP: a language for concurrent symbolic computation , 1985, TOPL.

[109]  R. E. Seviora,et al.  An evaluation of DRete on CUPID for OPS5 matching , 1989, IJCAI 1989.

[110]  Narain H. Gehani,et al.  Implementing concurrent C , 1992, Softw. Pract. Exp..

[111]  Christine T. Iwaskiw,et al.  Knowledge Base Compilation , 1989, IJCAI.

[112]  Salvatore J. Stolfo,et al.  Initial Performance of the DADO2 Prototype , 1987, Computer.

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

[114]  Daniel P. Miranker,et al.  On the Performance of the CREL System , 1991, J. Parallel Distributed Comput..

[115]  Carlo Zaniolo,et al.  Safety and Compilation of Non-recursive Horn Clauses , 1986, Expert Database Conf..

[116]  Michael Stonebraker,et al.  The POSTGRES Rules System , 1996, Active Database Systems: Triggers and Rules For Advanced Database Processing.

[117]  Milind Tambe,et al.  The Effectiveness of Task-Level Parallelism for Production Systems , 1991, J. Parallel Distributed Comput..

[118]  Barbara M. Chapman,et al.  Supercompilers for parallel and vector computers , 1990, ACM Press frontier series.

[119]  Michael Stonebraker,et al.  The design of POSTGRES , 1986, SIGMOD '86.

[120]  Brian N. Bershad,et al.  PRESTO: A system for object‐oriented parallel programming , 1988, Softw. Pract. Exp..

[121]  Toru Ishida,et al.  Optimizing Rules in Production System Programs , 1988, AAAI.

[122]  Michael Stonebraker,et al.  The POSTGRES next generation database management system , 1991, CACM.

[123]  Milind Tambe,et al.  Production Systems on Message Passing Computers: Simulation Results and Analysis , 1989, ICPP.

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

[125]  Jerry Kiernan,et al.  A Database Rule Language Compiler Supporting Parallelism , 1993, DASFAA.

[126]  John P. McDermott,et al.  R1: A Rule-Based Configurer of Computer Systems , 1982, Artif. Intell..

[127]  Guy E. Blelloch,et al.  CIS: A Massively Concurrent Rule-Based System , 1986, AAAI.

[128]  Allen Newell,et al.  High-speed implementations of rule-based systems , 1989, TOCS.

[129]  Umeshwar Dayal,et al.  The HiPAC project: combining active databases and timing constraints , 1988, SGMD.

[130]  Charles Lanny Forgy,et al.  On the efficient implementation of production systems. , 1979 .

[131]  Andrew Sohn,et al.  Data-Driven Parallel Production Systems , 1990, IEEE Trans. Software Eng..

[132]  Ken Kennedy,et al.  An Overview of the Fortran D Programming System , 1991, LCPC.

[133]  David F. Bacon,et al.  Compiler transformations for high-performance computing , 1994, CSUR.

[134]  Allen Newell,et al.  Initial Assessment of Architectures for Production Systems , 1984, AAAI.

[135]  David A. Padua,et al.  Advanced compiler optimizations for supercomputers , 1986, CACM.

[136]  Carlo Zaniolo,et al.  LDL: A Logic-Based Data Language , 1986, VLDB.

[137]  Antonio Brogi,et al.  The concurrent language, Shared Prolog , 1991, TOPL.

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