Distributed Profiling Tool Node-to-Node Call Graph Comparison

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional profiling tools for distributed computing systems are limited in their ability to diagnose performance issues, as they fail to show which functions execute on which nodes, do not differentiate functions accessing shared memory, roll up results across nodes instead of comparing them, and do not allow users to compare results across nodes effectively, leading to inefficiencies and missed performance bottlenecks.

Innovation Solution

A profiling tool that performs differential comparison of process flow across multiple nodes, collecting and comparing function-level and line-level call graph data to identify execution differences and performance bottlenecks, while automatically selecting relevant data for comparison and discarding redundant information.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional profiling tools roll up results across nodes, then data aggregation is simplified, but node-to-node execution differences cannot be identified

Engineering Contradiction:
Improvedata aggregationVSAvoidexecution difference detection
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The patent segments the profiling data by maintaining separate call graph representations for each computing node rather than aggregating them into a single rolled-up view. This allows the system to preserve node-specific execution details while still providing comprehensive coverage across the distributed system, enabling precise identification of execution differences between nodes.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If profiling tools collect detailed function-level data across all nodes, then performance bottleneck identification improves, but data volume and processing complexity increase

Engineering Contradiction:
Improveperformance bottleneck identificationVSAvoiddata processing complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies local quality by generating call graph data with varying levels of detail tailored to each node's specific execution characteristics. The system collects comprehensive function-level parameters for each node locally, then selectively compares only the relevant portions across nodes, rather than uniformly processing all data with the same level of detail. This reduces overall processing complexity while maintaining the precision needed for bottleneck identification.

Inventive Principle:
Principle #3Local quality

3Reliability

If profiling tools collect all call parameters for every function, then complete execution tracking is achieved, but redundant information increases processing overhead

Engineering Contradiction:
Improveexecution tracking completenessVSAvoiddata processing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and collects only the relevant call parameters needed for meaningful comparison across nodes, rather than uniformly collecting all possible parameters for every function. The system identifies and extracts key parameters such as function identifiers, execution timestamps, and critical return values, omitting redundant information that does not contribute to performance analysis. This maintains reliable execution tracking while improving processing efficiency by reducing data volume.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10409708B2Performance data collection for a distributed computing system
Publication Date: 2019.09.10 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10409708B2 patent drawing
  • US10409708B2 patent drawing
  • US10409708B2 patent drawing

AI summary

Embodiments for profiling an instance of a computing program distributed across a plurality of nodes in a distributed computing environment. First call data, comprising one or more parameters passed to a first function executing on a first node, may be collected within an instance of a computing application. Second call data, comprising one or more parameters passed to a second function executing on a second node, may be collected within an instance of a computing application. The first call data and the second call data may be compared such that the comparison is provided via one or more call graphs representing the instance.