Compiler Dependency Graphs for Synchronization Primitive Allocation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multiprocessor computing systems face challenges in optimizing asynchronous command execution due to non-independent commands, requiring manual optimization that is difficult and time-consuming, leading to sub-optimal resource utilization and poor performance.

Innovation Solution

A compiler creates a dependency graph to identify and minimize dependencies between commands, using shared queue, input/output, and allocation overlap analyses, and adds synchronization primitives to optimize asynchronous execution, eliminating redundant dependencies and loop-carried dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If manual optimization is used to coordinate asynchronous command execution, then synchronization can be achieved, but the process becomes difficult and time-consuming

Engineering Contradiction:
Improvesynchronization coordinationVSAvoidoptimization difficulty
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

The system performs self-service optimization through automated dependency analysis and scheduling. The compiler automatically analyzes command dependencies, builds dependency graphs, and generates optimized execution schedules without requiring manual intervention, thereby achieving reliable synchronization while eliminating the difficulty and time cost of manual optimization

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent replaces manual mechanical optimization processes with automated computational analysis. Instead of manually analyzing and coordinating synchronization primitives, the system uses automated dependency graph analysis and compiler-based scheduling to achieve the same synchronization goals, significantly reducing time and complexity

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Reliability

If manual optimization is used to coordinate asynchronous command execution, then synchronization can be achieved, but resource utilization becomes sub-optimal

Engineering Contradiction:
Improvesynchronization coordinationVSAvoidresource utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system implements feedback through automated dependency analysis that continuously evaluates command relationships and execution patterns. By analyzing the dependency graph and feedback from execution patterns, the compiler can optimize synchronization primitive allocation and command scheduling to achieve both reliable synchronization and optimal resource utilization

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent employs dynamic optimization through automated scheduling that adapts to the specific dependency structure of each program. The system dynamically generates execution schedules based on real dependency analysis rather than using static manual optimization, allowing for optimal resource utilization while maintaining synchronization reliability

Inventive Principle:
Principle #15Dynamics

3Reliability

If synchronization primitives are allocated to coordinate commands, then execution correctness is maintained, but the limited pool of primitives constrains program execution

Engineering Contradiction:
Improveexecution correctnessVSAvoidprogram execution flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system segments the synchronization problem by analyzing and dividing commands into dependency groups. By segmenting the program into independent and dependent command sets through dependency graph analysis, the compiler can allocate synchronization primitives more efficiently, maintaining execution correctness while increasing flexibility for programs with complex dependency patterns

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to synchronization by introducing automated dependency graph analysis and multi-criteria optimization. Instead of traditional single-dimension synchronization allocation, the system considers dependency structure, resource availability, and execution patterns simultaneously, thereby maintaining correctness while greatly enhancing adaptability to different program types

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

4Productivity

If asynchronous command execution is implemented, then performance is improved, but coordination complexity increases

Engineering Contradiction:
Improveexecution performanceVSAvoidcoordination complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system extracts the coordination complexity from the execution phase and moves it to the compilation phase. By pre-analyzing dependencies and generating optimized schedules during compilation, the runtime coordination complexity is significantly reduced while maintaining high execution performance through automated dependency management

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20260079709A1Efficient utilization of synchronization primitives in a multiprocessor computing system
Publication Date: 2026.03.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • US20260079709A1 patent drawing
  • US20260079709A1 patent drawing
  • US20260079709A1 patent drawing

AI summary

A compiler creates a dependency graph for a function in an input program. The dependency graph includes nodes corresponding to commands in the function and edges that correspond to dependencies between the commands. The compiler performs a forward reachability analysis on the dependency graph to eliminate redundant dependencies. The compiler also adds a minimized set of back-edges to the dependency graph to enforce loop-carried resource dependencies in the input program. The compiler then allocates synchronization primitives provided by a multiprocessor computing system, such as semaphores, to the commands in the function of the input program based on the contents of the dependency graph.