Compile-Time Non-Concurrency Analysis for Parallel Programs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for analyzing non-concurrency in parallel programs are inefficient and complex, particularly during compile-time, leading to difficulties in detecting race conditions and synchronization anomalies, and existing techniques often require high overhead at runtime.

Innovation Solution

A system and method that model program statements as nodes in a control flow graph and region tree, partitioning the program into phases for analysis, applying the semantics of OPENMP directives to detect potential sequencing anomalies and manage nested parallelism, thereby enabling efficient compile-time non-concurrency analysis.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If runtime detection techniques are used to detect race conditions and synchronization anomalies, then detection capability is improved, but execution overhead increases significantly

Engineering Contradiction:
Improvedetection capabilityVSAvoidexecution overhead
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs non-concurrency analysis at compile-time rather than runtime, establishing phase partitions and detecting potential race conditions before the program executes. This preliminary analysis eliminates the need for heavy runtime detection mechanisms, achieving both reliable detection capability and minimal execution overhead.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent divides the parallel program into distinct phases using phase partitions based on synchronization points. By segmenting the program execution into phases where certain memory locations are accessed exclusively within each phase, the system can detect race conditions without requiring continuous runtime monitoring, thus reducing execution overhead while maintaining detection capability.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If manual scoping of variables is performed to define shared and private memory accesses, then accuracy of concurrency control is improved, but complexity and error-proneness increase

Engineering Contradiction:
Improveaccuracy of concurrency controlVSAvoidcomplexity of variable scoping
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent implements automated variable scoping through the non-concurrency analysis system. The compiler automatically determines which variables should be scoped as shared or private based on the phase partition analysis and memory access patterns detected at compile-time, eliminating the need for manual user intervention while maintaining high accuracy in concurrency control.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses the results of non-concurrency analysis to automatically adjust variable scoping decisions. By analyzing memory access patterns and phase partitions, the compiler receives feedback about potential data races and automatically scopes variables appropriately, reducing both manual complexity and errors while maintaining accuracy.

Inventive Principle:
Principle #23Feedback

3Device complexity

If barriers are used to divide parallel program into phases for non-concurrency analysis, then structure for analysis is improved, but inability to detect non-concurrency within phases remains

Engineering Contradiction:
Improvestructure for analysisVSAvoiddetection completeness
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent applies different analysis techniques to different levels of the program structure. At the phase level, it uses barrier-based partitioning to establish coarse-grained non-concurrency. Within each phase, it performs fine-grained analysis of memory access patterns to detect non-concurrency that barriers alone would miss. This multi-level approach with local quality optimization achieves both structural organization and complete detection.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7673295B1System and method for compile-time non-concurrency analysis
Publication Date: 2010.03.02 ORACLE AMERICAN INC
  • US7673295B1 patent drawing
  • US7673295B1 patent drawing
  • US7673295B1 patent drawing

AI summary

Compile-time non-concurrency analysis of parallel programs improves execution efficiency by detecting possible data race conditions within program barriers. Subroutines are modeled with control flow graphs and region trees having plural nodes related by edges that represent the hierarchical loop structure and construct relationship of statements. Phase partitioning of the control flow graph allows analysis of statement relationships with programming semantics, such as those of the OpenMP language, that define permitted operations and execution orders.