Dynamic CPU Thread Allocation for Graph Workloads

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph analysis systems face inefficiencies in allocating computing resources due to divergent workload characteristics, leading to suboptimal resource usage and decreased system throughput, as workload bottlenecks can vary between CPU and memory intensity.

Innovation Solution

Dynamic resource allocation techniques that decompose tasks into CPU and memory-intensive operators, using off-line profiling to classify operators and on-line monitoring with hardware counters to adaptively reallocate resources based on actual usage, ensuring efficient utilization of computing resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If CPU resources are equally split among concurrently executed workloads, then resource allocation is simple, but system throughput decreases due to inefficient resource utilization

Engineering Contradiction:
Improvesystem throughputVSAvoidresource allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts CPU thread allocation based on real-time workload characteristics. Instead of static equal splitting, the resource allocation changes adaptively according to whether workloads are CPU-intensive or memory-intensive, resolved by monitoring performance metrics and reallocating threads accordingly

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the allocation parameter (number of CPU threads) based on workload type. CPU-intensive workloads receive more threads while memory-intensive workloads receive fewer threads, optimizing overall system throughput by matching resource parameters to actual workload needs

Inventive Principle:
Principle #35Parameter changes

2Productivity

If additional CPU threads are allocated to memory-intensive workloads, then resource utilization appears higher, but the additional threads are not efficiently utilized due to memory bandwidth saturation

Engineering Contradiction:
Improveresource utilizationVSAvoidwasted CPU thread capacity
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system monitors performance feedback to identify when memory bandwidth is saturated. When saturation is detected, the system reduces CPU thread allocation to that workload and reallocates threads to CPU-intensive workloads, preventing waste of computational resources on tasks that cannot utilize them

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the CPU thread allocation parameter based on detected workload characteristics and performance bottlenecks. Memory-intensive workloads receive reduced thread allocation when memory bandwidth is saturated, while CPU-intensive workloads receive increased allocation, optimizing overall resource efficiency

Inventive Principle:
Principle #35Parameter changes

3Productivity

If CPU threads are reallocated from memory-intensive to CPU-intensive workloads, then system throughput improves, but complex monitoring and adjustment mechanisms are required

Engineering Contradiction:
Improvesystem throughputVSAvoidmonitoring and allocation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system implements continuous monitoring of workload performance and resource utilization metrics. Based on this feedback, it automatically adjusts CPU thread allocation between workloads, enabling throughput optimization through closed-loop control without manual intervention

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The resource allocation system manages itself by automatically detecting workload characteristics and performing reallocation decisions. The system serves its own optimization needs through automated monitoring and adjustment, reducing the need for external management complexity

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10853137B2Efficient resource allocation for concurrent graph workloads
Publication Date: 2020.12.01 ORACLE INT CORP
  • US10853137B2 patent drawing
  • US10853137B2 patent drawing
  • US10853137B2 patent drawing

AI summary

Techniques are described herein for allocating and rebalancing computing resources for executing graph workloads in manner that increases system throughput. According to one embodiment, a method includes receiving a request to execute a graph processing workload on a dataset, identifying a plurality of graph operators that constitute the graph processing workload, and determining whether execution of each graph operator is processor intensive or memory intensive. The method also includes assigning a task weight for each graph operator of the plurality of graph operators, and performing, based on the assigned task weights, a first allocation of computing resources to execute the plurality of graph operators. Further, the method includes causing, according to the first allocation, execution of the plurality of graph operators by the computing resources, and monitoring computing resource usage of graph operators executed by the computing resources according to the first allocation. In addition, the method includes performing, responsive to monitoring computing resource usage, a second allocation of computing resources to execute the plurality of graph operators, and causing, according to the second allocation instead of according to the first allocation, execution of the plurality of graph operators by the computing resources.