Program Parallelizing Apparatus for Multithreading Optimization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
Data Source
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.


