Process Allocation Controller for Cache Affinity Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for allocating processes to processors in multiprocessor systems fail to effectively identify and group processes that benefit from memory and cache affinity, leading to suboptimal performance due to manual user intervention, limited operating system capabilities, and non-optimal allocation techniques.

Innovation Solution

A process allocation controller generates indicators of actual or potential resource access to identify related processes, applies a prioritization metric to determine the highest priority pairs, and allocates them to a single processor node, allowing for continuous analysis and automatic grouping without user burden, while also considering resource ranking and threshold cut-offs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all work is placed on a single node with local memory allocation, then memory affinity and cache affinity are maximized, but resource contention increases and system responsiveness decreases

Engineering Contradiction:
Improvememory affinityVSAvoidsystem responsiveness
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments processes into groups based on their resource access patterns and affinity requirements. Related processes that benefit from memory and cache affinity are grouped together on specific nodes, while unrelated processes are distributed across other nodes. This segmentation allows the system to simultaneously achieve high affinity for critical workloads and maintain overall system responsiveness through distributed processing.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If manual task grouping and binding is used, then user control over process allocation is improved, but user burden and error risk increase

Engineering Contradiction:
Improveuser controlVSAvoiduser burden
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements self-service by enabling the operating system to automatically analyze process resource access patterns, identify related processes, and perform optimal grouping without user intervention. The system monitors resource indicators, applies prioritization metrics, and autonomously makes allocation decisions, eliminating the need for users to manually configure bindings while maintaining intelligent control over process placement.

Inventive Principle:
Principle #25Self-service

3Ease of manufacture

If processes are grouped based on parent-child relationships, then implementation simplicity is improved, but allocation optimality deteriorates

Engineering Contradiction:
Improveimplementation simplicityVSAvoidallocation optimality
Core Design Contradiction:
Ease of manufactureVSMeasurement precision

Solution Approach 1:

The patent employs feedback mechanisms by continuously monitoring actual resource access patterns of processes and using this information to refine groupings. The system analyzes resource indicators such as shared memory access, pipe communication, and other inter-process resource sharing to dynamically adjust process allocations. This feedback-driven approach ensures allocation optimality based on actual runtime behavior rather than static relationship assumptions.

Inventive Principle:
Principle #23Feedback

4Extent of automation

If existing automatic grouping techniques are used, then automation is improved, but grouping accuracy and relevance deteriorate

Engineering Contradiction:
Improveautomatic groupingVSAvoidgrouping accuracy
Core Design Contradiction:
Extent of automationVSMeasurement precision

Solution Approach 1:

The patent applies parameter changes by introducing prioritization metrics that weight different resource indicators differently based on their importance for affinity optimization. The system adjusts the significance of various resource access patterns (e.g., shared memory vs. pipe communication) to accurately identify truly related processes. This nuanced parameter weighting enables precise grouping while maintaining full automation, overcoming the limitations of simpler automatic techniques.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9965324B2Process grouping for improved cache and memory affinity
Publication Date: 2018.05.08 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9965324B2 patent drawing
  • US9965324B2 patent drawing
  • US9965324B2 patent drawing

AI summary

A multiprocessor computer system and method for use therein are provided for assigning processes to processor nodes. The system can determine a first pair of processes and a second pair of processes, each process of the first pair of processes executing on different nodes and each process of the second pair of processes executing on different nodes. The system can determine a first priority value of the first pair of processes, based at least in part on a first resource access rate of the first pair of processes; and determine a second priority value of the second pair of processes, based at least in part on a second resource access rate of the second pair of processes. The system can determine the first priority value is greater than the second priority value; and determine to reassign a first process of the first pair of processes to a first node, wherein a second process of the first pair of processes is executing on the first node.