Dynamic CPU Core Allocation for Storage Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current storage systems statically allocate processing cores to threads, leading to inefficiencies due to varying workloads, as allocating more cores to one thread reduces resources for others, and manual adjustments are impractical for dynamic workloads.

Innovation Solution

A system that uses machine learning models to dynamically allocate CPU cores based on performance data and runtime measurements, initially categorizing workloads and adjusting core allocations using I/O workload data to optimize resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If cores are statically allocated to threads based on maximum expected workload, then system reliability is maintained, but resource utilization efficiency deteriorates when workloads vary dynamically

Engineering Contradiction:
Improvesystem reliabilityVSAvoidresource utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent implements dynamic core allocation by continuously monitoring thread workload metrics (CPU utilization, memory usage, I/O operations) and automatically adjusting the number of cores assigned to each thread based on current demand, transforming the static allocation system into an adaptive dynamic system that optimizes resource utilization while maintaining system reliability

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system incorporates feedback mechanisms by monitoring thread performance metrics and system state in real-time, using this information to dynamically adjust core allocation decisions, ensuring that resource distribution continuously adapts to actual workload conditions rather than relying on static pre-configuration

Inventive Principle:
Principle #23Feedback

2Speed

If more cores are allocated to one thread, then that thread's processing speed improves, but available cores for other threads decrease

Engineering Contradiction:
Improvethread processing speedVSAvoidavailable cores for other threads
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent enables dynamic core allocation where the number of cores assigned to each thread is not fixed but continuously adjusted based on real-time workload monitoring, allowing the system to optimize processing speed for active threads while automatically freeing cores for other threads when their demand decreases

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the parameter of core allocation dynamically by monitoring workload metrics and adjusting the number of cores assigned to each thread based on current needs, rather than maintaining fixed parameter values, thereby optimizing both processing speed and resource availability across multiple threads

Inventive Principle:
Principle #35Parameter changes

3Loss of energy

If manual core allocation adjustment is implemented, then resource optimization can be achieved, but operational complexity and user burden increase significantly

Engineering Contradiction:
Improveresource optimizationVSAvoidoperational complexity
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent implements self-service automation where the system autonomously monitors thread workload, analyzes performance metrics, and adjusts core allocation without requiring user intervention, eliminating the need for operators to manually manage core distribution while achieving optimal resource utilization

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses automated feedback loops to continuously monitor thread performance and system state, processing this information through algorithms that automatically make core allocation decisions, replacing manual operational complexity with automated intelligent control that optimizes resources without user burden

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11573833B2Allocating cores to threads running on one or more processors of a storage system
Publication Date: 2023.02.07 EMC IP HLDG CO LLC
  • US11573833B2 patent drawing
  • US11573833B2 patent drawing
  • US11573833B2 patent drawing

AI summary

Allocating CPU cores to a thread running in a system that supports multiple concurrent threads includes training a first model to optimize core allocations to threads using training data that includes performance data, initially allocating cores to threads based on the first model, and adjusting core allocations to threads based on a second model that uses run time data and run time performance measurements. The system may be a storage system. The training data may include I/O workload data obtained at customer sites. The I/O workload data may include data about I/O rates, thread execution times, system response times, and Logical Block Addresses. The training data may include data from a site that is expected to run the second model. The first model may categorize storage system workloads and determine core allocations for different categories of workloads. Initially allocating cores to threads may include using information from the first model.