Memory Bandwidth Pattern Detection for Multi-Core Thread Placement

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional techniques for determining thread and memory placement in multi-core systems, such as those used in data analytics computers, are inadequate as they require detailed specifications ahead of time and cannot effectively adjust to varying thread counts, leading to suboptimal performance and resource inefficiencies.

Innovation Solution

A system and method for detecting, modeling, and applying memory bandwidth patterns by sampling performance counters during execution with specific thread placements, allowing for dynamic optimization of thread placement and resource allocation across multi-core/multi-socket machines to predict performance and reduce resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional techniques (IPC monitoring, LCC miss monitoring, page fault monitoring, benchmark timing) are used to determine thread and memory placement, then performance metrics can be measured, but the system requires detailed specifications ahead of time and cannot effectively adjust to varying thread counts

Engineering Contradiction:
Improveperformance metrics measurementVSAvoidadaptability to varying thread counts
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent transforms static thread placement specifications into dynamic, runtime-determined placements. By using performance counters and sampling techniques during actual execution, the system adapts thread and memory placement decisions based on observed behavior rather than predetermined configurations, enabling effective adjustment to varying thread counts and workloads

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback mechanisms by continuously monitoring performance counters (such as memory bandwidth usage, cache hit rates, and instruction throughput) during execution. This feedback is used to dynamically adjust thread placement and memory allocation decisions, allowing the system to optimize performance based on actual runtime conditions rather than static specifications

Inventive Principle:
Principle #23Feedback

2Productivity

If detailed specifications are generated ahead of time for thread placement, then performance can be optimized for known configurations, but the system cannot apply corrections to differing thread counts effectively

Engineering Contradiction:
Improveperformance optimizationVSAvoidsystem configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent enables the system to self-optimize by automatically determining thread and memory placement decisions based on runtime performance observations. Rather than requiring complex external configuration specifications, the system uses its own performance counter data to make intelligent placement decisions, reducing the need for detailed upfront specifications while maintaining optimization capabilities

Inventive Principle:
Principle #25Self-service

3Measurement precision

If memory bandwidth patterns are sampled during execution with specific thread placements, then accurate performance predictions can be made, but additional sampling and modeling overhead is introduced

Engineering Contradiction:
Improveperformance prediction accuracyVSAvoidsampling and modeling time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent applies partial sampling by selecting representative performance counters and sampling intervals that provide sufficient accuracy for prediction without requiring complete, continuous monitoring of all system events. This selective sampling approach achieves adequate prediction accuracy while minimizing the overhead time consumed by the sampling and modeling process

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10871996B2Detection, modeling and application of memory bandwith patterns
Publication Date: 2020.12.22 ORACLE INT CORP
  • US10871996B2 patent drawing
  • US10871996B2 patent drawing
  • US10871996B2 patent drawing

AI summary

A system configured to implement detection, modeling and application of memory bandwidth patterns may predict performance of multi-threaded applications with different thread placements. Additionally, such a system may model bandwidth requirements of an application based on placement of the application's threads and may generate a bandwidth signature by sampling performance counters while executing the application using specific thread placement and determining values for multiple classes of bandwidth, such as static, local, per-thread and interleaved. Performance counters may information such as elapsed time, number of instructions executed, and/or the volume of data read or written to each memory bank. A bandwidth signature may be used to apply bandwidth requirements to differing thread placements within various types of systems, such as performance prediction systems, data structure libraries, as well as debugging and development systems.