Thread Distribution Control for Parallel Processing Bottlenecks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In parallel computing, existing methods for adjusting the number of threads assigned to processes often fail to effectively reduce processing time, especially when there are few portions processed in parallel, leading to negligible reductions in processing time despite thread reassignment.
Innovation Solution
A system and method that calculates a parallelization rate, memory busy rate, and processing time differences to determine the effectiveness of thread reassignment, adjusting the number of threads in processes to equalize processing times and reduce overall processing time by dynamically reassigning threads based on these metrics.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the number of threads is increased in each process, then parallel processing capability is improved, but processing time is not effectively reduced when there are few portions processed in parallel
Solution Approach 1:
The management device collects execution results including processing times of all processes, calculates parallelization rates and identifies bottleneck processes, then uses this feedback information to dynamically adjust thread distribution in subsequent executions, creating a closed-loop optimization system that continuously improves parallel processing efficiency
Solution Approach 2:
The system dynamically adjusts the number of threads assigned to each process based on real-time execution analysis and calculated metrics, rather than using static thread allocation. This dynamic adaptation allows the system to optimize thread distribution according to actual parallel processing portions and bottleneck identification
2Ease of operation
If thread reassignment is performed without considering parallelization rate, then thread distribution is adjusted, but processing time reduction is negligible
Solution Approach 1:
The system changes the parameter of thread allocation by calculating the parallelization rate for each process and using this metric to determine optimal thread distribution. This parameter-based approach ensures thread reassignment is performed based on quantitative analysis of actual parallel processing portions rather than arbitrary or static allocation
3Device complexity
If threads are evenly distributed across all processes, then simplicity is maintained, but processing time balance is poor when processes have different parallelization portions
Solution Approach 1:
The system applies different thread allocation strategies to different processes based on their individual characteristics, specifically their parallelization rates and bottleneck status. Instead of uniform distribution, each process receives thread allocation optimized for its specific parallel processing needs, with bottleneck processes receiving adjusted thread counts to balance overall execution time
Data Source
AI summary
A system includes a plurality of computers configured to process a computer program in parallel by executing a plurality of processes, respectively, in parallel, each process of the plurality of processes including at least one thread, and each of the plurality of computers including a first memory and a first processor coupled to the first memory and configured to execute the plurality of processes, respectively, and a management device configured to control the plurality of computers, the control device including a second memory, and a second processor coupled to the second memory, and based on parallelization rate, memory busy rate, operation number difference and processing time difference, execute an adjusting of a number of the threads included in at least one process of the plurality of processes.


