Graph-Based Task Control via Data and Control Ports

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph-based computation systems face inefficiencies in resource utilization, particularly in reconfiguring data parallelism, load balancing, and startup times, due to unnecessary process initiation and memory wastage, and lack mechanisms for efficient data passing and sequencing between computation components.

Innovation Solution

A method for controlling computing resources during graph-based program execution, using a task-based approach with data and control ports to manage resource allocation dynamically, allowing components to consume resources only when needed, and enabling decentralized control information passing between components.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If processes are initiated at the start-up of graph execution, then components can be executed in parallel, but startup time increases and memory is wasted due to unnecessary process initiation

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidstartup time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-compiling dataflow graphs into executable form and pre-establishing process templates before execution begins. This allows the system to skip the time-consuming process of initiating and configuring processes during startup, as the compilation and process setup have already been performed in advance.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamics by allowing the system to dynamically adjust the degree of parallelism and process instantiation based on actual runtime conditions and data availability. Rather than statically pre-creating all processes, the system can adaptively create or suspend processes as needed, optimizing both startup time and parallel execution efficiency.

Inventive Principle:
Principle #15Dynamics

2Productivity

If multiple processes are initiated to execute components in parallel, then computational throughput increases, but memory consumption increases due to unnecessary process initiation

Engineering Contradiction:
Improvecomputational throughputVSAvoidmemory consumption
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies partial action by initiating only the necessary number of processes required for effective parallel execution, rather than creating excessive processes. The system dynamically determines the optimal degree of parallelism based on available resources and data characteristics, creating just enough processes to achieve high throughput without wasting memory on unnecessary process instances.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent implements parameter changes by dynamically adjusting process creation parameters such as the number of parallel processes, process priority, and resource allocation based on runtime conditions. This allows the system to optimize the balance between computational throughput and memory consumption by changing process-related parameters adaptively rather than using fixed configurations.

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If graph execution is controlled by operating system scheduler, then resource sharing among components is achieved, but reconfiguration of data parallelism and load balancing becomes difficult

Engineering Contradiction:
Improveresource sharingVSAvoidreconfiguration capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent applies feedback by implementing a control mechanism that continuously monitors execution progress, resource utilization, and data flow characteristics, then uses this information to dynamically adjust process creation, suspension, and reconfiguration. This feedback loop enables the system to adaptively reconfigure data parallelism and load balancing while maintaining efficient resource sharing among components.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent implements dynamics by transitioning from static process management to dynamic process control, where the system can create, suspend, and reconfigure processes during runtime based on actual execution conditions. This dynamic approach allows easy reconfiguration of data parallelism and load balancing while maintaining the resource sharing benefits of operating system scheduling.

Inventive Principle:
Principle #15Dynamics

4Extent of automation

If control information is passed between components via data communication services, then decentralized control is achieved, but control sequencing and coordination become inefficient

Engineering Contradiction:
Improvedecentralized controlVSAvoidcontrol coordination efficiency
Core Design Contradiction:
Extent of automationVSProductivity

Solution Approach 1:

The patent applies the intermediary principle by introducing a control mechanism that mediates between decentralized components, using control ports and control edges to coordinate information flow and sequencing. This intermediary control structure enables efficient coordination and sequencing of control information while maintaining the benefits of decentralized component execution and autonomy.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP3189432B1Controlling data processing tasks
Publication Date: 2022.05.18 AB INITIO TECHNOLOGY LLC
  • EP3189432B1 patent drawingFigure 1
  • EP3189432B1 patent drawingFigure 2A~2B
  • EP3189432B1 patent drawingFigure 2C

AI summary

Information representative of a graph-based program specification (110) has a plurality of components, each of which corresponds to a task, and directed links between ports of said components. A program corresponding to said graph-based program specification is executed at a node (152). A first component includes a first data port, a first control port, and a second control port. Said first data port is configured to receive data to be processed by a first task corresponding to said first component, or configured to provide data that was processed by said first task corresponding to said first component. Executing a program corresponding to said graph-based program specification includes: receiving said first control information at said first control port, in response to receiving said first control information, determining whether or not to invoke said first task, and after receiving said first control information, providing said second control information from said second control port.