EP1559069B1

Startup and control of graph-based computation

Abstract

This record has no abstract on file.

EP1559069B1, drawing sheet 1
Sheet 1 of 7

Term

Term ended

Expired 7 October 2023, 3 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

25 claims: 3 independent, 22 dependent

  1. 1
    A method for executing, on a computer system, graphs expressing computations including:(a) providing at least two graph templates (310) each associated with a different computation graph (100), each computation graph (100) including a number of graph elements each associated with a corresponding computation;(b) forming at least two pools of processes, each associated with a different type of processing;and (c) processing multiple data streams concurrently, each associated with a different instance (300) of a corresponding computation graph, including for each of the data streams, forming a graph instance (300) from the graph template (310) for the corresponding computation graph (100), including allocating memory for a runtime data structure for that graph instance and copying the graph template (310) into the allocated memory, wherein each runtime data structure includes a copy of the graph template (310), a buffer section (350) which holds work elements as work elements are passed between the graph elements and queued prior to processing, and input counts for each graph element initialized to the number of inputs for that graph element, wherein each graph element of the graph instance (300) is associated with a corresponding one of the pools of processes, based on the type of processing associated with each pool of processes, wherein a first graph element is associated with a corresponding first pool of processes and a second graph element is associated with a corresponding second pool of processes, for each graph element of the graph instance (300), assigning processes from the corresponding one of the pools of processes when at least some part of all of the inputs for the graph element are available according to the initialized input counts, wherein the processes read and write work elements from and to the buffer section (350) of the runtime data structure for the graph instance (300) during processing of the data stream, and processing the data stream with the graph instance (300), including performing the computations corresponding to the graph elements of such graph instance (300) using the assigned processes;wherein steps (a) and (b) are performed prior to step (c).
  2. 20
    A computer program, for executing, on a computer system, graphs expressing computations, the computer program comprising instructions for causing a computer system to perform the method of any of claims 1 to 19 or 22 to 24.
  3. 25
    A system for executing, on a computer system, graphs expressing computations including:at least two graph templates (310) stored in data storage each associated with a different type of graph-based computation, each template (310) comprising a number of graph elements each associated with a corresponding computation;means for forming at least two pools of processes, each associated with a different type of processing;and means for processing multiple data streams concurrently, each associated with a different instance (300) of a corresponding graph-based computation, including for each of the data streams, forming a graph instance (300) from the graph template (310) associated with the corresponding type of graph-based computation, said graph instance (300) having graph elements corresponding to the graph elements of the graph template (310), including allocating memory for a runtime data structure for that graph instance and copying the graph template (310) into the allocated memory, wherein each runtime data structure includes a copy of the graph template (310), a buffer section (350) which holds work elements as work elements are passed between the graph elements and queued prior to processing, and input counts for each graph element initialized to the number of inputs for that graph element, wherein each graph element of the graph instance (300) is associated with a corresponding one of the pools of processes, based on the type of processing associated with each pool of processes, wherein a first graph element is associated with a corresponding first pool of processes and a second graph element is associated with a corresponding second pool of processes, for each graph element of the graph instance (300), assigning processes from the corresponding one of the pools of processes when at least some part of all of the inputs for the graph element are available according to the initialized input counts, wherein the processes read and write work elements from and to the buffer section (350) of the runtime data structure for the graph instance (300) during processing of the data stream, and processing the data stream with the graph instance (300), including performing computations corresponding to the graph elements of such graph instance using the assigned processes;wherein the system is configured to form the at least two pools of processes prior to processing the multiple data streams concurrently, each associated with a different instance (300) of a corresponding graph-based computation.