Program Parallelizing Apparatus for Multithreading Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multithreading methods for parallel processors face challenges in achieving optimal parallel execution performance due to the time-consuming process of determining fork points, particularly when the number of candidate fork points increases, leading to suboptimal parallelization and reduced performance.

Innovation Solution

A program parallelizing apparatus that includes a fork point determination section, a fork point combination determination section, and a parallelized program output section, which analyzes the sequential processing program to identify optimal fork points using dynamic boost values and exclusive relationships, creating a weighted graph to determine the maximum weight independent set of fork points for improved parallel execution performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the number of candidate fork points is increased to achieve better parallel execution performance, then the parallel execution performance is improved, but the time required to determine the optimal combination of fork points increases

Engineering Contradiction:
Improveparallel execution performanceVSAvoidtime required to determine fork point combination
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the fork point determination process into two distinct phases: (1) a rounding phase that quickly removes obviously suboptimal fork points based on static boost value thresholds, and (2) an optimization phase that refines the combination of remaining candidate fork points. This segmentation allows the system to handle large numbers of candidate fork points efficiently by eliminating low-value candidates early without sacrificing the quality of the final parallel execution performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary filtering of fork points by calculating static boost values and removing those below predetermined thresholds before proceeding to the optimization phase. This preliminary action reduces the search space for optimal fork point combinations, enabling faster determination of the optimal set while maintaining high parallel execution performance. The rounding step prepares the data structure in advance to facilitate more efficient optimization.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If static boost value is used to determine fork points, then the determination process is simple and fast, but the parallel execution performance is suboptimal compared to dynamic boost value

Engineering Contradiction:
Improveparallel execution performanceVSAvoidcomplexity of fork point determination process
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces dynamic boost values that adapt based on the specific input data and execution context, moving away from static predetermined thresholds. The system calculates dynamic boost values by analyzing the actual execution trace, which allows the fork point determination to adapt to different input scenarios. This dynamic approach improves parallel execution performance while the rounding step with static thresholds provides a simple initial filtering mechanism, creating a balanced two-phase process.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent incorporates feedback mechanisms where the optimization phase uses information from the rounding phase and adjusts the fork point combination based on actual execution performance. The system iteratively refines the fork point selection by analyzing execution traces and feedback from the rounding step, allowing the process to learn from actual performance data and improve subsequent parallelization decisions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS7530069B2Program parallelizing apparatus, program parallelizing method, and program parallelizing program
Publication Date: 2009.05.05 NEC CORP
  • US7530069B2 patent drawing
  • US7530069B2 patent drawing
  • US7530069B2 patent drawing

AI summary

A program parallelizing apparatus, a program parallelizing method and a program parallelizing program capable of creating a parallelized program of better parallel execution performance at a high speed. A fork point determination section extracts all fork points in a sequential processing program, and removes fork points with a static boost value satisfying a static rounding condition. A fork point combination determination section obtains a dynamic boost value and an exclusive fork set for each fork point that appears when the sequential processing program is executed with input data, and removes fork points with a dynamic boost value satisfying a dynamic rounding condition. As a maximum weight independent set problem, the fork point combination determination section obtains an initial combination of fork points, which are not in an exclusive relationship, with the maximum sum of dynamic boost values, and retrieves an optimal combination based on an iterative improvement method. According to the optimal fork point combination, a parallelized program output section creates a parallelized program for a multithreading parallel processor from the sequential processing program.