Thread Distribution Control for Parallel Processing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidprocessing time reduction effectiveness
Core Design Contradiction:
ProductivityVSLoss of time

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

Inventive Principle:
Principle #23Feedback

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

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If thread reassignment is performed without considering parallelization rate, then thread distribution is adjusted, but processing time reduction is negligible

Engineering Contradiction:
Improvethread reassignment capabilityVSAvoidprocessing time
Core Design Contradiction:
Ease of operationVSLoss of time

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvethread distribution complexityVSAvoidprocessing time difference
Core Design Contradiction:
Device complexityVSLoss of time

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

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9940173B2System, management device and method of controlling a plurality of computers
Publication Date: 2018.04.10 FUJITSU LTD
  • US9940173B2 patent drawing
  • US9940173B2 patent drawing
  • US9940173B2 patent drawing

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.