- #ORF09 An introduction to the RETE algorithm
- #ORF09 Playing With the Rules Presentation
- #ORF09 Rule Patterns and Features Presentation
- #ORF09 Early Alert System Presentation
- #ORF09 Engineer’s perspective on Rule Technology Keynote
- #ORF09 Enterprise Architecture Presentation
- #ORF09 Enterprise Architecture Presentation Part II
- #ORF09 Model Driven Approach for BRMS Presentation
- #ORF09 Production Rule Systems
- #ORF09 Graph Based Knowledge Bases and Rules Presentation
- #ORF09 Truth versus Useful Lies Presentation
- #ORF09 Automated Verification of rules Presentation
- #ORF09 Agile Business Rule Development Presentation
- #ORF09 Rule Classification First Presentation
- #ORF09 Rule Violation and Over-Constrained Problems Presentation
- #ORF09 Generating Rules from UML presentation
- #ORF09 What’s Different about Rules in CEP Presentation
- #ORF09 Measuring your Rules’ KPI Presentation
- #ORF09 Designing a System of Rule Based Agents Presentation
- #ORF09 Extending General Purpose Engines Presentation
- #ORF09 Programming Rules using a spreadsheet interface
- #ORF09 Practical and Modern RBE Presentation
- #ORF09 Temporal Reasoning Presentation
- #ORF09 Business Rules in the Cloud Presentation
- #ORF09 October Rules Fest Think Tank
- #ORF09 October Rules Fest Think Tank – Part II
- #ORF09 CLIPS implementation of RETE Presentation
- #ORF09 Complex Event Processing Models Presentation
- #ORF09 Distributed Programming with Agents Presentation
- #ORF09 making Parallelism Available to Rule Developers Presentation
Charles Forgy is talking about how to make rule engines parallel. He talked before about doing things inside the rule engine to make things faster.
Why?
- Processors speeds are hitting a plateau
- Vendors are creating multi-core machines
- To tackle bigger problems, rule engines need to adapt
Internal Parallelism
- That was the first thing to do
- Complex but possible
- There are limits (Amdahl’s Law) because this relates to the match and conflict resolution algorithm, so the gain is not going to be as high as we would hope
Goals of Parallel OPSJ
- Increase the rate of change of working memory
- Enable each rule to do more
- Allow rules to execute in parallel
- In short make parallelism visible to rule developer
“It is easy to make a parallel rule language. It is not easy to make a parallel rule language that is usable”
There are different approaches to this.
- Allowing a rule to be defined such that all instances of the rules can be fired simultaneously, but this has to be done with care to avoid unwanted consequences with tremendous pressure on the rule developer or alternatively the rule language has to be extend to let the rule engine deal with it
Using multiple knowledge sources:
- Need to allow communication between the Knowledge Sources
- Need to allow the Knowledge Source to “Pause” instead of exiting
- Requires the use of “Probes” (special type of rule) that know about 2 Knowledge Sources
Also, multiple levels of Working memory on:
- Insert operations
- Send packet operations
- Conditions
Using multiple threads in a Single Knowledge Source
- How to make changes to architecture to help support this
- We want to avoid changes to shared data, but this is a challenge since in traditional KBS everything is global
- Every thread needs to have access to 2 levels, once for its main work and the other in very controlled manner
Next step is parallelism over networks
- Except for shared memory, everything should support a distributed architecture
- Network latency will obviously be there but might still be advantageous
Java is not as fast a C/C++
- Modern processors are very complex and Java does not take advantage of this properly so instructions per cycle are very low
- He wishes someone would re-write the code generators to take advantage of this.
Tags: Business Rules, Conferences, ORF09




