CA2959627C

Executing graph-based program specifications

Abstract

A graph-based program specification (110) includes components corresponding to tasks and directed links between ports of the components, including: a first type of link configuration between ports of linked components, corresponding to transfer of control or transfer of a single data element, and a second type of link configuration between ports of linked components, corresponding to transfer of multiple data elements. A compiler (120) generates a target program specification including control code representing at least one control graph including graph nodes representing the components, where at least two are connected based on links of the first type. A computing node (152) initiates execution of the target program specification, and manages computing resources for links of the second type, the computing resources including at least one of: a buffer for storing data elements provided by an output port, or a buffer for storing data elements provided to an input port.

CA2959627C, drawing sheet 1
Sheet 1 of 16

Term

8.9 yearsleft in the term

Expires 2 September 2035.

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

54 claims: 3 independent, 51 dependent

  1. 1
    CLAIMS I. A computing system including:a storage system storing one or more graph-based program specifications, at least a first graph-based program specification including a plurality of components corresponding to tasks and directed links between ports of the components, the first graph-based program specification including: ( 1 ) a first type of link configuration between ports of linked components, corresponding to transfer of control or transfer of a single data element, and (2) a second type of link configuration between ports of linked components, corresponding to transfer of multiple data elements;a compiler configured to generate a target program specification from the first graphbased program specification, the target program specification including control code representing at least one control graph including graph nodes representing the components in the first graph-based program specification, where two or more of the graph nodes are connected based on links having the first type of link configuration, and where the graph nodes representing the plurality of components in the first graph-based program specification have a different connection topology in the at least one control graph than a component-topology for the plurality of components in the first graph-based program specification;and one or more computing nodes, each including at least one processor, with at least a first of the computing nodes being configured to: initiate execution of the target program specification, and manage computing resources for links having the second type of link configuration, the computing resources including at least one of: (1) a buffer for storing data elements provided by an output port, or (2) a buffer for storing data elements provided to an input port. -70CA 2959627 2019-09-18
  2. 17
    A method including:-72CA 2959627 2019-09-18 storing one or more graph-based program specifications, at least a first graph-based program specification including a plurality of components corresponding to tasks and directed links between ports of the components, the first graph-based program specification including: (1) a first type of link configuration between ports of linked components, corresponding to transfer of control or transfer of a single data element, and (2) a second type of link configuration between ports of linked components, corresponding to transfer of multiple data elements;generating a target program specification from the first graph-based program specification, the target program specification including control code representing at least one control graph including graph nodes representing the components in the first graph-based program specification, where two or more of the graph nodes are connected based on links having the first type of link configuration, and where the graph nodes representing the plurality of components in the first graph-based program specification have a different connection topology in the at least one control graph than a component-topology for the plurality of components in the first graph-based program specification;and using at least one computing node, including initiating execution of the target program specification, and managing computing resources for links having the second type of link configuration, the computing resources including at least one of: (1) a buffer for storing data elements provided by an output port, or (2) a buffer for storing data elements provided to an input port.
  3. 18
    A non-transitory computer-readable medium storing statements and instructions for use, in the execution of a computer, a method comprising the steps of:-73CA 2959627 2019-09-18 storing one or more graph-based program specifications, at least a first graph-based program specification including a plurality of components corresponding to tasks and directed links between ports of the components, the first graph-based program specification including: (1) a first type of link configuration between ports of linked components, corresponding to transfer of control or transfer of a single data element, and (2) a second type of link configuration between ports of linked components, corresponding to transfer of multiple data elements;generating a target program specification from the first graph-based program specification, the target program specification including control code representing at least one control graph including graph nodes representing the components in the first graph-based program specification, where two or more of the graph nodes are connected based on links having the first type of link configuration, and where the graph nodes representing the plurality of components in the first graph-based program specification have a different connection topology in the at least one control graph than a component-topology for the plurality of components in the first graph-based program specification;and using at least one computing node, including initiating execution of the target program specification, and managing computing resources for links having the second type of link configuration, the computing resources including at least one of: (1) a buffer for storing data elements provided by an output port, or (2) a buffer for storing data elements provided to an input port.