Runtime Data Flow Graph Refactoring Without Source Code Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing data flow graph applications often requires iterative tuning of the graph structure to achieve optimal performance and scalability, which can be time-consuming and requires modifying source code, especially in distributed memory implementations.

Innovation Solution

A system that uses a data flow interface, an outliner controller, and a graph library to profile and refactor the data flow graph application without modifying the source code, by creating a map file that describes how the original graph structure and node properties can be mapped to a new structure, allowing the runtime system to transform the graph at runtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If developers manually modify source code to tune graph structure for optimal performance, then performance and scalability are improved, but development time increases and iterative tuning becomes time-consuming

Engineering Contradiction:
ImproveperformanceVSAvoiddevelopment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary profiling of the data flow graph application to automatically generate optimized graph structures. By pre-analyzing the application's execution characteristics and generating refactored graph configurations automatically, the system eliminates the need for manual iterative tuning, thus improving performance while reducing development time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary system comprising a profiler, graph library, and runtime system that acts as a mediator between the original application code and the optimized graph structure. This intermediary automatically transforms the application into an optimized data flow graph without requiring direct manual modification of source code, resolving the contradiction between achieving optimal performance and minimizing development time.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If developers iteratively tune graph structure to achieve optimal performance, then scalability is improved, but the process requires repeated source code modifications and recompilation

Engineering Contradiction:
ImprovescalabilityVSAvoidprocess complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the graph structure optimization process into independent, parameterizable components. By allowing developers to specify optimization parameters (such as graph partitioning strategies, node aggregation rules, or edge routing preferences) without modifying source code, the system enables flexible scalability tuning while simplifying the overall process complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a dynamic graph transformation system where the graph structure can be adaptively refactored at runtime based on profiling data and specified optimization goals. This dynamic approach allows scalability to be tuned by changing runtime parameters rather than repeatedly modifying and recompiling source code, reducing process complexity while maintaining adaptability.

Inventive Principle:
Principle #15Dynamics

3Manufacturing precision

If source code is modified for each graph structure experiment, then graph structure optimization is achieved, but the frequency of modifications increases development overhead

Engineering Contradiction:
Improvegraph structure optimizationVSAvoiddevelopment efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The system creates a copy or representation of the application's data flow graph that can be independently optimized without modifying the original source code. The profiler generates a graphical representation of the application's execution flow, and the graph library operates on this copied structure to apply optimizations, allowing precise graph structure tuning while maintaining high development efficiency.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9529587B2Refactoring data flow applications without source code changes or recompilation
Publication Date: 2016.12.27 INTEL CORP
  • US9529587B2 patent drawing
  • US9529587B2 patent drawing
  • US9529587B2 patent drawing

AI summary

Systems and methods may provide refactoring data flow applications without source code changes or recompilation. An apparatus may create a map file that describes how an original graph structure and node properties are mapped to a new structure and set of properties. A runtime system aware of the mapping may transform a graph that is constructed by the data flow application into the new structure at runtime.