Run-time Bottleneck Detection in Data Flow Kernels
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Measurement precision
If global knowledge of data flow graph topology is assumed, then bottleneck detection accuracy is improved, but adaptability decreases
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
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
3Measurement precision
If traditional bottleneck detection methods are used, then comprehensive analysis is improved, but productivity decreases
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
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
Data Source
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.


