Patent ID: 7870556

Claim:
A method for executing graph-based computations using a computer system that provides computing resources that can be assigned to data processing elements and used to perform computations, the method including: accepting a specification of a computation graph in which data processing elements are joined by linking elements, wherein each of the linking elements is associated with a data flow from an output of an upstream data processing element to an input of a downstream data processing element; dividing the data processing elements into sets of data processing elements, at least a first set of data processing elements including multiple of the data processing elements forming a connected directed subgraph of the computation graph; assigning to each set of data processing elements a different computing resource of the computer system; and processing data according to the computation graph, including performing computations corresponding to the data processing elements using the assigned computing resources, wherein one of the computing resources, which is assigned to the first set of data processing elements, passes work elements associated with a data flow resulting from an output of a first upstream data processing element to an input of a downstream data processing element by calling a function associated with the downstream data processing element, wherein the first upstream data processing element and the downstream data processing element are in the first set of data processing elements, and in response to receiving a control message for a data processing element in the first set that does not have an upstream data processing element in the first set, propagating the control message to each of the other data processing elements in the fist set.