Segmented Data Flow Graph for Concurrent Node Evaluation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional data flow graphs are limited in parallelization, as they only allow concurrent evaluation of independent nodes identified by declared dependencies, restricting the system's efficiency in processing data flow schemes.

Innovation Solution

A modified data flow graph is introduced that identifies independent segments of data elements, allowing nodes to be evaluated concurrently by determining dependencies between segments rather than relying solely on declared dependencies, thereby enabling further parallelization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the system relies on declared dependencies for parallelization, then the evaluation order is determined correctly, but the parallelization efficiency is limited

Engineering Contradiction:
Improveevaluation efficiencyVSAvoiddependency management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments data elements into independent segments and divides node invocations into segment-specific invocations. This allows the system to identify independent segments that can be evaluated in parallel without requiring comprehensive declared dependencies between all nodes, thereby improving evaluation efficiency while managing complexity through structured segmentation.

Inventive Principle:
Principle #1Segmentation

2Speed

If nodes are evaluated sequentially based on declared dependencies, then dependency correctness is maintained, but processing speed is reduced

Engineering Contradiction:
Improveprocessing speedVSAvoidevaluation time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by dividing data elements into segments and generating segment-specific node invocations before evaluation. This pre-segmentation allows the system to identify independent segments that can be evaluated concurrently, reducing overall evaluation time while maintaining dependency correctness through the segment-based invocation structure.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If the system uses traditional data flow graph parallelization, then implementation simplicity is maintained, but the degree of parallelization is insufficient

Engineering Contradiction:
Improveparallelization capabilityVSAvoiddata flow graph complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a new dimension to traditional data flow graph parallelization by segmenting data elements and creating segment-specific node invocations. This transforms the parallelization approach from node-level to segment-level, enabling finer-grained parallelization and improving adaptability without significantly increasing overall system complexity.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10297053B1Scalable multi-threaded evaluation of vectorized data flow graphs
Publication Date: 2019.05.21 PIXAR CORP
  • US10297053B1 patent drawing
  • US10297053B1 patent drawing
  • US10297053B1 patent drawing

AI summary

Provided herein are methods, systems, and computer products for evaluating nodes concurrently using a modified data flow graph. The modified data flow graph can identify independent nodes that can run as separate tasks. However, rather than relying on declared dependencies, embodiments herein can determine dependencies between segments of data elements in a data flow graph, and modify the data flow graph to take advantage of the determined dependencies. In such embodiments, the data elements can be divided into segments. By separating data elements into segments, nodes that previously depended on each other can be evaluated concurrently when independent segments are identified.