Dynamic Compute I/O Resource Mapping in Data Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional data processing systems face inefficiencies due to high CPU contention between I/O and compute tasks in on-demand policies and underutilization of resources in static mapping policies, leading to sub-optimal performance and idle resources.

Innovation Solution

A dynamic resource management scheme that dynamically maps tasks to thread groups and CPU groups based on performance variables, adjusting mappings to balance resource usage and throttle I/O threads, thereby optimizing CPU resource allocation between I/O and compute tasks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If on-demand resource management policy is used, then compute resources are well utilized through fair time-sharing scheduling, but high CPU contention occurs between I/O and compute tasks resulting in longer latency

Engineering Contradiction:
Improvecompute resource utilizationVSAvoidtask execution latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent segments the CPU pool into multiple CPU groups and the thread pool into multiple thread groups, creating separate execution domains for different task types. This segmentation allows I/O tasks and compute tasks to be mapped to different thread groups and CPU groups, reducing CPU contention while maintaining resource utilization. The segmentation enables parallel execution of I/O and compute operations without interfering with each other's performance.

Inventive Principle:
Principle #1Segmentation

2Loss of time

If static mapping policy is used, then CPU contention is alleviated by assigning I/O and compute tasks to different physical cores, but compute resources idle when I/O workload is unpredictable or insufficient requests exist

Engineering Contradiction:
Improvetask execution latencyVSAvoidcompute resource utilization
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent implements dynamic mapping between tasks and thread groups, and between thread groups and CPU groups, based on real-time performance variables such as task queue depth, CPU utilization, and I/O workload characteristics. This dynamic approach allows the system to adapt resource allocation to changing workload conditions, ensuring that compute resources are actively utilized when work is available while maintaining low latency when workload is light. The mapping relationships are not fixed but can be adjusted during system operation.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If pre-assigned threads and compute resources are allocated statically, then resource allocation is simple and predictable, but resource idle time increases when requests are insufficient leading to sub-optimal performance

Engineering Contradiction:
Improveresource allocation simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent incorporates feedback mechanisms that continuously monitor system performance variables including task queue depths, CPU group utilization, and thread group workload. Based on this feedback, the system dynamically adjusts the mapping between tasks and thread groups, and between thread groups and CPU groups. This feedback-driven approach maintains simple resource management operations while optimizing performance by responding to actual system conditions rather than relying on static pre-configuration.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10146583B2System and method for dynamically managing compute and I/O resources in data processing systems
Publication Date: 2018.12.04 SAMSUNG ELECTRONICS CO LTD
  • US10146583B2 patent drawing
  • US10146583B2 patent drawing
  • US10146583B2 patent drawing

AI summary

A method for managing compute and I/O tasks in a data processing system includes: providing a thread pool including a plurality of thread groups, each thread group including one or more threads; providing a CPU pool including a plurality of CPU groups, each CPU group including one or more CPU cores; receiving a plurality of tasks comprising I/O tasks and compute tasks; mapping each of the plurality of tasks to at least one thread group in the thread pool; and mapping each of the plurality of thread groups in the thread pool to at least one CPU group in the CPU pool. The mappings between the plurality of tasks and the plurality of thread groups and between the plurality of thread groups and the plurality of CPU groups dynamically change based on performance variables.