Running a global production rule on data distributed over a plurality of machines may comprise receiving a local production rule that can run on each of the plurality of machines to jointly accomplish a global computation specified by the global production rule. The local production rule may be deployed to each of the plurality of machines, each of which stores a portion of the data and runs an instance of a rules engine that can run the local production rule. The plurality of machines are enabled to communicate intermediate data produced by the instance of the rules engine running the local production rule on said each of the machines. Coordinating between the plurality of machines is enabled to synchronize one or more local computations performed locally according to the local production rule on said each machine.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method of running a global production rule on data distributed over a plurality of machines, comprising: receiving a local production rule that can run on each of the plurality of machines to jointly accomplish a global computation specified in a global production rule; deploying the local production rule to each of the plurality of machines, said each of the plurality of machines storing a portion of the data and running an instance of a rules engine that can run the local rule; allowing communicating between the plurality of machines, intermediate data produced by the instance of the rules engine running the local production rule on said each of the machines; and allowing coordinating between the plurality of machines to synchronize one or more local computations performed locally according to the local production rule on said each machine. 2. The method of claim 1, wherein the global production rule hides distribution of the global computation from a user. 3. The method of claim 1, further comprising receiving the global production rule, the global production rule comprising the global computation to be performed on the data globally, wherein the receiving a local production rule that can run on each of the plurality of machines to jointly accomplish the global computation specified in the global production rule comprises translating the global production rule into the local production rule that can run on each of the plurality of machines to jointly accomplish the global computation. 4. The method of claim 3, wherein the translating comprises translating from the global production rule to an intermediate language, transforming the intermediate language to add one or more explicit communication points, and translating from the intermediate language to the local production rule. 5. The method of claim 1, wherein the global computation is bulk-synchronous, wherein computations of a phase performed in all of the machines are synchronized by global barrier, and wherein all the machines transition to a next phase after all the machines reach the global barrier. 6. The method of claim 1, wherein the global computation is pipelined with communication between the machines, wherein the communication and the computation overlap. 7. The method of claim 1, wherein the global computation employs primitives of async representing non-blocking spawn of a remote activity and finish representing waiting for the non-blocking spawned async to complete. 8. The method of claim 1, further comprising: receiving a continuous stream of events; routing the events to the instance of the rules engine; and using external events in the computation. 9. The method of claim 8, wherein the events are associated with time and the local production rule employs time as a condition in running of the local production rule. 10. The method of claim 1, wherein the rules engine comprises incremental rules engine and wherein the global computation is performed incrementally by the instance of the rules engine. 11. A system for running a global production rule on data distributed over a plurality of machines, comprising: a processor; a module operable to execute on the process and further operable to receive a local production rule that can run on each of the plurality of machines to jointly accomplish a global computation to be performed on the data globally and specified in the global production rule, the module further operable to deploy the local production rule to each of the plurality of machines, said each of the plurality of machines storing a portion of the data and running an instance of a rules engine that can run the local production rule, wherein communicating between the plurality of machines, intermediate data produced by the instance of the rules engine running the local production rule on said each of the machines, is allowed via execution of the local production rule; and wherein coordinating between the plurality of machines to synchronize one or more local computations performed locally according to the local production rule on said each machine, is allowed via execution of the local production rule. 12. The system of claim 11, wherein the global production rule hides distribution of the global computation from a user. 13. The system of claim 11, wherein the global production rule is automatically translated into the local production rule. 14. The system of claim 13, wherein to translate the global production rule automatically translated into the local production rule, the global production rule is automatically translated into an intermediate language, the intermediate language is automatically transformed to add one or more explicit communication points, and the intermediate language is automatically translated to the local production rule. 15. The system of claim 11, wherein the global computation is bulk-synchronous, wherein computations of a phase performed in all of the machines are synchronized by global barrier, and wherein all the machines transition to a next phase after all the machines reach the global barrier. 16. A computer readable storage medium storing a program of instructions executable by a machine to perform a method of running a global production rule on data distributed over a plurality of machines, the method comprising: receiving a local production rule that can run on each of the plurality of machines to jointly accomplish a global computation to be performed on the data globally and specified in the global production rule; deploying the local production rule to each of the plurality of machines, said each of the plurality of machines storing a portion of the data and running an instance of a rules engine that can run the local production rule; allowing communicating between the plurality of machines, intermediate data produced by the instance of the rules engine running the local production rule on said each of the machines; and allowing coordinating between the plurality of machines to synchronize one or more local computations performed locally according to the local production rule on said each machine. 17. The computer readable storage medium of claim 16, wherein the global production rule hides distribution of the global computation from a user. 18. The computer readable storage medium of claim 16, wherein the receiving a local production rule that can run on each of the plurality of machines to jointly accomplish the global computation specified in the global production rule comprises translating the global production rule into the local production rule that can run on each of the plurality of machines to jointly accomplish the global computation. 19. The computer readable storage medium of claim 18, wherein the translating comprises translating from the global production rule to an intermediate language, transforming the intermediate language to add one or more explicit communication points, and translating from the intermediate language to the local production rule. 20. The computer readable storage medium of claim 16, the global computation is pipelined with communication between the machines, wherein the communication and the computation overlap.