Dynamic Core Count Optimization for Mixed Thread Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing information handling systems face inefficiencies in optimizing core usage between single-threaded and multi-threaded applications, leading to suboptimal performance and power wastage, as they require manual switching and reboots to adjust HyperThreading settings.

Innovation Solution

A core optimization operation that dynamically changes core counts during runtime by enabling or disabling processor threads, allowing mixed mode logical and physical core enablement without rebooting, and includes core affinity management to redistribute threads and conserve power.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If HyperThreading settings are manually switched to optimize for single-threaded or multi-threaded applications, then application performance is improved, but system complexity increases and requires manual intervention

Engineering Contradiction:
Improveapplication performanceVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system automatically detects whether a running application is single-threaded or multi-threaded and dynamically adjusts HyperThreading settings without user intervention. The processor monitors thread usage patterns and self-adjusts the core configuration to optimize performance for the current workload type.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The HyperThreading configuration is made dynamic rather than static, allowing the system to switch between single-threaded optimization mode and multi-threaded optimization mode based on real-time application behavior. This dynamic adaptation eliminates the need for manual switching while maintaining optimal performance.

Inventive Principle:
Principle #15Dynamics

2Productivity

If HyperThreading settings are changed to optimize performance, then application performance is improved, but the system requires a reboot to apply changes

Engineering Contradiction:
Improveapplication performanceVSAvoidreboot time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary detection of application threading characteristics and pre-configures the optimal HyperThreading settings before performance degradation occurs. By anticipating the need for configuration changes and applying them proactively, the system avoids performance bottlenecks without requiring interrupting reboots.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical reboot requirement with a software-based dynamic configuration mechanism. Instead of requiring a system restart to apply HyperThreading changes, the system uses operating system-level thread affinity management and processor scheduling to dynamically adjust core usage patterns without interrupting application execution.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If all processor threads are enabled to handle multi-threaded applications, then multi-threaded application performance is improved, but power consumption increases

Engineering Contradiction:
Improvemulti-threaded application performanceVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system applies different operational characteristics to different processor cores based on local workload requirements. When single-threaded applications are detected, only the necessary number of cores are activated at full power, while other cores are placed in low-power states. This localized optimization reduces overall power consumption while maintaining performance for the active workload.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically changes the operational parameters of processor cores, including enabling or disabling specific cores and adjusting their frequency and power states, based on the detected application type. This parameter adaptation allows the system to consume only the necessary amount of power for the current workload rather than maintaining all cores at maximum capacity.

Inventive Principle:
Principle #35Parameter changes

4Use of energy by moving object

If threads are redistributed to fewer cores to save power, then power consumption is reduced, but application performance may be degraded

Engineering Contradiction:
Improvepower consumptionVSAvoidapplication performance
Core Design Contradiction:
Use of energy by moving objectVSProductivity

Solution Approach 1:

The system continuously monitors application performance metrics and power consumption levels, using this feedback to dynamically adjust thread distribution across cores. When performance degradation is detected, the system redistributes threads to utilize additional cores; when performance is sufficient, it consolidates threads to reduce power consumption. This closed-loop control maintains the optimal balance between performance and power efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10564702B2Method to optimize core count for concurrent single and multi-thread application performance
Publication Date: 2020.02.18 DELL PROD LP
  • US10564702B2 patent drawing
  • US10564702B2 patent drawing
  • US10564702B2 patent drawing

AI summary

A system, method, and computer-readable medium are disclosed for performing a core optimization operation, comprising: enabling all of a plurality of processor cores of a processor; selectively turning off at least one of the plurality of processor cores, the selectively turning off the at least one of the plurality of processor cores being based upon an application to be executed by the processor, the selectively turning off being performed dynamically during runtime of the processor; and, controlling process thread distribution to the plurality of processor cores via an operating system executing on the processor, the process thread distribution not distributing threads to the turned off at least one of the plurality of processor cores.