Parallelizing Sequential Methods via Speculative Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for parallelizing standard sequential programs on multicore processors are limited by data and control dependencies, which restrict the number of instructions that can be parallelized and lead to performance losses due to 'squashing' of threads as the number of concurrently executing threads increases.

Innovation Solution

The method identifies and exploits the natural structure of methods (subroutines, functions, and procedures) in sequential programs, using trigger points to execute methods on one processor while another processor handles the execution of the method's read set, avoiding data and control dependency violations through speculative execution and dynamic adjustment of trigger points.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If speculative techniques are used to execute small groups of instructions in parallel, then parallelization is achieved, but data and control dependency violations occur limiting the number of instructions that can be parallelized

Engineering Contradiction:
Improveparallelization capabilityVSAvoiddependency violation rate
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the program into method-level units of execution rather than instruction-level segments. By identifying natural method boundaries in the code and using those as parallelization units, the system achieves distant parallelism while maintaining reliability. Methods are self-contained computational units with well-defined inputs and outputs, making them ideal for speculative execution without violating dependencies.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent transitions from instruction-level parallelism (one-dimensional) to method-level parallelism (higher dimension). By executing entire methods in parallel across multiple processors rather than interleaving individual instructions, the system achieves greater parallelization depth while reducing dependency conflicts that limit traditional approaches.

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

2Productivity

If the number of concurrently executing threads is increased to achieve distant parallelism, then more instructions can be parallelized, but violations of data and control dependencies become more common requiring thread squashing

Engineering Contradiction:
Improveexecution speedVSAvoidthread squashing overhead
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis to identify method boundaries and establish execution schedules before parallel execution begins. By pre-determining which methods can be executed in parallel and on which processors, the system avoids runtime dependency violations that would require thread squashing, thereby maintaining high execution speed without the overhead of corrective actions.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If standard sequential programs are parallelized by exploiting naturally occurring parallel structure in small groups of instructions, then some parallelization is achieved, but the degree of parallelization is limited

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidparallelization scope
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a universal parallelization framework that works with any sequential program containing method structures. By using method boundaries as the basis for parallel execution, the system can apply the same parallelization strategy across diverse applications without requiring program-specific customization, thereby increasing both parallel execution capability and applicability scope.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7779230B2Data flow execution of methods in sequential programs
Publication Date: 2010.08.17 WISCONSIN ALUMNI RES FOUND
  • US7779230B2 patent drawing
  • US7779230B2 patent drawing
  • US7779230B2 patent drawing

AI summary

Distant parallelization of sequential programs is obtained by making parallelization decisions at the boundaries between program methods (e.g., functions and sub-routines). Experimentation suggests that such a partitioning allows for large-scale parallelization without data flow conflicts.