Parallel Program Profiler for Bottleneck Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Identifying performance bottlenecks and algorithm deficiencies in parallel programs is challenging due to the complexity of data collection and analysis, especially when compared to serial programs.

Innovation Solution

A parallel program profiler that dynamically allocates program portions to software and hardware units of execution, aggregates execution information, and generates performance indicators to optimize execution, including data collection, aggregation, and display logic for user interfaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If profiler infrastructures are used to collect statistics about program execution, then performance information can be gathered, but it becomes difficult to locate performance bottlenecks in parallel programs due to the increased dimensions of data to collect

Engineering Contradiction:
Improveperformance bottleneck detection accuracyVSAvoiddata collection complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the complex parallel program execution data into hierarchical levels: individual task statistics, thread statistics, and overall program statistics. This segmentation allows the profiler to manage and analyze data at appropriate granularities, making bottleneck detection feasible despite the high dimensionality of parallel execution data.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary profiling layer that sits between the parallel program execution and the analysis tools. This intermediary collects, aggregates, and organizes execution statistics from multiple parallel threads and tasks, transforming raw high-dimensional data into structured performance information that can be effectively analyzed to locate bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If parallel processing is used to speed up complex simulations, then computation time is reduced, but it becomes difficult to detect performance problems due to multiple dimensions of execution data

Engineering Contradiction:
Improvecomputation speedVSAvoidperformance problem detection difficulty
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent implements feedback mechanisms where execution statistics are continuously collected from parallel tasks and threads, aggregated into meaningful performance metrics, and fed back to the user through visual displays. This feedback loop enables real-time or post-execution analysis of performance problems without affecting the parallel computation speed during execution.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent transforms the multi-dimensional parallel execution data into visual representations that add a new dimension of understanding. By displaying performance data in visual formats (such as graphs, charts, or annotated code views), the system converts complex multi-dimensional execution statistics into intuitive visual information that makes performance problems detectable despite the underlying complexity.

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

Data Source

PatentUS8819643B1Parallel program profiler
Publication Date: 2014.08.26 MATHWORKS INC
  • US8819643B1 patent drawing
  • US8819643B1 patent drawing
  • US8819643B1 patent drawing

AI summary

A device receives information generated by execution of a parallel program, aggregates the received information, generates one or more performance indicators for the parallel program on one of a line or function basis and based on the aggregated information, and provides the one or more performance indicators to a user.