Runtime Queue Synchronization for Parallel Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current methods for parallelizing software programs on multi-processor computers are difficult and costly, especially for programs written in a sequential programming model, as they struggle to identify and exploit parallelization opportunities due to data dependencies, leading to inefficiencies in performance improvement.

Innovation Solution

The solution involves using synchronizing operations to enqueue computational operations with dependencies, delaying their execution until preceding operations are completed, allowing for focused serialization without limiting broader parallelization opportunities, thus enabling decentralized coordination and minimizing overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If computational operations are parallelized on multi-processor computers, then software performance is improved, but data dependencies cause execution errors when read-write or write-read operations change order

Engineering Contradiction:
Improvesoftware performanceVSAvoidexecution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments computational operations into different execution queues based on their data access patterns. Operations that access the same data are grouped into the same queue to maintain serial execution order, while operations on disjoint data can execute in parallel on different queues, thus preserving both performance and correctness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces serializers as intermediary components that manage the execution order of computational operations. These serializers intercept operations, assign them to appropriate queues, and coordinate their execution to ensure that dependent operations maintain their correct order while allowing independent operations to proceed in parallel.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If static analysis is used to parallelize sequential programs, then parallelization opportunities can be identified, but the analysis cannot identify opportunities determined only at execution time when data being read or written can be positively identified

Engineering Contradiction:
Improveparallelization capabilityVSAvoiddata dependency identification
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The system performs preliminary static analysis to identify potential parallelization opportunities and set up execution queues before runtime. However, the final determination of data dependencies and queue assignment is deferred to runtime when actual data values are known, combining the benefits of both static and dynamic approaches.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements dynamic queue assignment based on runtime data values. The serializers examine actual data being read or written during execution to positively identify dependencies and make informed decisions about parallelization, rather than relying solely on static analysis of potential dependencies.

Inventive Principle:
Principle #15Dynamics

3Productivity

If computational operations are assigned to different queues for parallel execution, then performance is improved, but data dependencies between operations may cause errors

Engineering Contradiction:
Improveexecution speedVSAvoiddata dependency handling
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system applies different execution strategies to different operations based on their local characteristics. Operations with data dependencies are assigned to the same queue with serial execution order, while operations on disjoint data are assigned to different queues for parallel execution. This local differentiation ensures correctness for dependent operations while maximizing parallelism for independent ones.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9830157B2System and method for selectively delaying execution of an operation based on a search for uncompleted predicate operations in processor-associated queues
Publication Date: 2017.11.28 WISCONSIN ALUMNI RES FOUND
  • US9830157B2 patent drawing
  • US9830157B2 patent drawing
  • US9830157B2 patent drawing

AI summary

A system and method of parallelizing programs employs runtime instructions to identify data accessed by program portions and to assign those program portions to particular processors based on potential overlap between the access data. Data dependence between different program portions may be identified and used to look for pending “predicate” program portions that could create data dependencies and to postpone program portions that may be dependent while permitting parallel execution of other program portions.