Dynamic Adaptive Threading for Multithreaded Process Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multithreading approaches often incur overhead due to excessive thread usage, leading to detrimental performance in scenarios where too many threads result in idle threads and increased context switching, especially in high CPU utilization environments like multi-JVM scenarios, without achieving optimal performance.

Innovation Solution

A dynamic adaptive threading method that analyzes performance data from previous cycles to project an optimal thread count using a mathematical model, adjusting the number of threads based on idle and cycle durations to balance workload distribution and minimize overhead.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a fixed large number of threads is used in multithreaded processes, then parallel processing capability is improved, but thread overhead and context switching increase leading to performance degradation

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidthread overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent implements dynamic thread count adjustment by monitoring idle time ratios and automatically modifying the number of threads in a thread pool. The system transitions from a fixed thread configuration to a dynamic one where the thread count adapts based on real-time workload analysis, resolving the contradiction between maintaining sufficient parallel processing capability and minimizing thread overhead.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the parameter of thread count from a static value to a dynamic variable based on idle time ratio thresholds. By monitoring the ratio of idle time to total time and adjusting the thread count accordingly, the system optimizes the balance between parallel processing efficiency and overhead, transforming a fixed parameter into an adaptive one.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If the number of threads is increased to handle high CPU utilization workloads, then processing throughput is improved, but idle threads and context switching overhead increase

Engineering Contradiction:
Improveprocessing throughputVSAvoidcontext switching time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements a feedback mechanism where the system continuously monitors actual thread utilization and idle time ratios, then uses this information to adjust the thread count for subsequent workload cycles. This closed-loop feedback allows the system to learn from past performance and optimize future thread allocation, reducing unnecessary context switching while maintaining sufficient throughput.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary analysis of idle time ratios and workload characteristics before initiating new workload cycles. By projecting optimal thread counts based on historical data and idle time patterns, the system prepares the appropriate thread pool configuration in advance, avoiding the need to spin up excessive threads reactively and reducing overall context switching overhead.

Inventive Principle:
Principle #10Preliminary action

3Device complexity

If a static thread count is used throughout the process execution, then system simplicity is maintained, but adaptability to varying workload conditions is reduced

Engineering Contradiction:
Improvethread management simplicityVSAvoidworkload adaptability
Core Design Contradiction:
Device complexityVSAdaptability or versatility

Solution Approach 1:

The patent transforms the static thread count into a dynamic parameter that automatically adjusts based on monitored idle time ratios and workload conditions. The system maintains relative simplicity by using automated thresholds and projections rather than complex manual control mechanisms, while achieving high adaptability to varying workload conditions through continuous monitoring and automatic adjustment.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12253930B2Dynamic adaptive threading using idle time analysis
Publication Date: 2025.03.18 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12253930B2 patent drawing
  • US12253930B2 patent drawing
  • US12253930B2 patent drawing

AI summary

An embodiment includes initiating a first cycle of a process using a first number of threads that operate in parallel to collectively execute the process and collect performance data. The embodiment aggregates the performance data and computes a first idle duration based at least in part on the aggregated performance data. The embodiment projects a thread-count recommendation based at least in part on a mathematical model that includes the first number of threads as an input number of threads, the first idle and cycle durations as input idle and cycle durations, respectively, and a second number of threads as an output variable representative of an output number of threads, where the output number of threads is determined as a function of the input idle duration. The embodiment initiates a second cycle of the process using the second number of threads output as a projection by the mathematical model.