Run-time Bottleneck Detection in Data Flow Kernels

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Detecting performance bottlenecks in computer systems is challenging due to the need for labor-intensive data generation and expert knowledge of the application, libraries, middleware, operating system, and hardware, and existing methods assume global knowledge of data flow graph topology, which is not always available.

Innovation Solution

A method for detecting bottlenecks in data flow programs by executing computer-readable instructions that measure the execution delay of kernels and compare it to delay messages from neighboring kernels, allowing each kernel to determine if it is a bottleneck without requiring global knowledge of the data flow graph topology, using additional delay channels for communication.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If existing bottleneck detection methods are used, then bottleneck detection accuracy is improved, but device complexity and expert knowledge requirements increase

Engineering Contradiction:
Improvebottleneck detection accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

Each kernel independently monitors its own execution delay and autonomously determines whether it is a bottleneck by comparing its delay to the maximum delay in its neighborhood, eliminating the need for external analysis tools and expert intervention

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The bottleneck detection problem is divided into independent local decisions at each kernel, where each kernel only needs to know its own execution delay and the maximum delay of its neighboring kernels, rather than requiring global topology knowledge

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If global knowledge of data flow graph topology is assumed, then bottleneck detection accuracy is improved, but adaptability decreases

Engineering Contradiction:
Improvebottleneck detection accuracyVSAvoidapplicability to different systems
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

Each kernel uses only local information (its own execution delay and maximum delay from neighbors) to make bottleneck detection decisions, making the method adaptable to any data flow graph topology without requiring global knowledge

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

Kernels independently determine their own bottleneck status using only locally available delay information, enabling the system to adapt to different topologies without pre-configured global topology knowledge

Inventive Principle:
Principle #25Self-service

3Measurement precision

If traditional bottleneck detection methods are used, then comprehensive analysis is improved, but productivity decreases

Engineering Contradiction:
Improveanalysis completenessVSAvoidsystem throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Bottleneck detection occurs continuously during normal kernel execution without interrupting the data flow program, allowing the system to maintain full productivity while performing comprehensive bottleneck analysis

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The system performs self-diagnosis during normal operation, with kernels automatically monitoring their own performance and identifying bottlenecks without external intervention, maintaining uninterrupted productivity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8875108B2Run-time bottleneck detection
Publication Date: 2014.10.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US8875108B2 patent drawing
  • US8875108B2 patent drawing
  • US8875108B2 patent drawing

AI summary

A method of detecting a bottleneck in a data flow program includes executing the data flow program, wherein the data flow program comprises a kernel, determining a percentage of time the kernel spends on a computation, and determining the kernel to be a bottleneck upon comparing the percentage of time the kernel spends on the computation to a condition.