Synchronization Issue Detection in Parallel Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing techniques fail to systematically detect and resolve synchronization performance issues in parallel software, particularly those related to locks that are excessively acquired or highly contended, as they cannot identify root causes effectively.

Innovation Solution

The proposed techniques monitor and collect information on synchronization primitives, including lock acquisitions, contention rates, and waiting times, to identify root causes of synchronization performance problems, providing tools for both detection and diagnosis to improve synchronization performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional techniques focus only on highly contended locks, then detection simplicity is maintained, but detection precision deteriorates because they cannot identify root causes of synchronization issues

Engineering Contradiction:
Improvedetection precisionVSAvoiddetection complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments lock synchronization issues into four distinct quadrants based on acquisition frequency and contention rate: (1) frequently acquired and highly contended, (2) excessively acquired but not highly contended, (3) highly contended but not frequently acquired, and (4) not frequently acquired and not highly contended. This segmentation enables precise detection of root causes in each category while maintaining a structured detection framework that balances precision and complexity.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If comprehensive monitoring of all synchronization primitives is implemented, then detection precision improves, but overhead increases

Engineering Contradiction:
Improvedetection precisionVSAvoidmonitoring overhead
Core Design Contradiction:
Measurement precisionVSUse of energy by moving object

Solution Approach 1:

The patent extracts and monitors only the critical characteristics of synchronization primitives needed for detection: acquisition frequency, contention rate, and waiting time. By focusing on these essential metrics rather than comprehensive monitoring of all possible parameters, the system achieves sufficient detection precision while minimizing overhead. The technique extracts only the necessary information to categorize locks into the four quadrants.

Inventive Principle:
Principle #2Taking out (Extraction)

3Measurement precision

If detailed information collection on all locks is performed, then diagnostic accuracy improves, but processing time increases

Engineering Contradiction:
Improvediagnostic accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies local quality by collecting detailed information only for locks that fall into the problematic quadrants (1-3), while using aggregated statistics for locks in quadrant 4. The system collects specific metrics such as acquisition counts, contention rates, and waiting times selectively based on the lock's category, thereby improving diagnostic accuracy for problematic locks without incurring excessive processing time for all locks uniformly.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11294652B2Low-overhead detection techniques for synchronization problems in parallel and concurrent software
Publication Date: 2022.04.05 BOARD OF RGT THE UNIV OF TEXAS SYST
  • US11294652B2 patent drawing
  • US11294652B2 patent drawing
  • US11294652B2 patent drawing

AI summary

The techniques described herein may provide techniques to detect, categorize, and diagnose synchronization issues that provide improved performance and issue resolution. For example, in an embodiment, a method may comprise detecting occurrence of synchronization performance problems in software code, when at least some detected synchronization performance problems occur when a contention rate for software locks is low, determining a cause of the synchronization performance problems, and modifying the software code to remedy the cause of the synchronization performance problems so as to improve synchronization performance of the software code.