Virtual Machine Thread Proximity Mapping to Processors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-processor systems running virtual machines, efficiently assigning threads to processors is complex due to varying inter-processor communication speeds and the need to balance workload distribution, which can lead to performance issues and contention over shared buses.

Innovation Solution

The approach involves breaking the assignment process into two steps: assigning threads to virtual processors and then to physical processors, forming groups of virtual processors to match proximity capacities and maximize inter-processor communication speeds, and dynamically adjusting thread assignments based on interaction weights and available processor capacities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If threads are assigned to different processors to enable concurrent execution, then productivity is improved, but device complexity increases due to varying inter-processor communication speeds and contention issues

Engineering Contradiction:
Improveconcurrent execution of threadsVSAvoidassignment complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the processor system into multiple proximities (groups of processors with fast interconnects), and assigns threads to specific proximities based on their virtual machine affinity. This segmentation allows threads from the same virtual machine to be co-located in the same proximity, enabling concurrent execution while leveraging fast local communication and avoiding the complexity of managing arbitrary inter-processor assignments.

Inventive Principle:
Principle #1Segmentation

2Productivity

If threads from the same virtual machine are assigned to different processors for concurrent execution, then productivity is improved, but loss of time increases due to waiting for activation to exchange data

Engineering Contradiction:
Improveconcurrent executionVSAvoiddata exchange waiting time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent creates local communication quality by establishing proximities where processors within the same proximity communicate via fast local interconnects. Threads from the same virtual machine are assigned to processors within the same proximity, ensuring that data exchange between these threads occurs through high-speed local communication paths rather than slower system-wide interconnects, thereby eliminating waiting time while maintaining concurrent execution.

Inventive Principle:
Principle #3Local quality

3Productivity

If threads are assigned to maximize inter-processor communication speed, then productivity is improved, but device complexity increases due to the need to form groups matching proximity capacities

Engineering Contradiction:
Improveinter-processor communication speedVSAvoidassignment process complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent performs preliminary action by pre-establishing proximities with defined capacities before thread assignment. The hypervisor then uses these pre-defined proximity structures to guide thread placement decisions, rather than dynamically optimizing assignments in real-time. This preliminary structuring simplifies the assignment process while ensuring threads are placed in optimal locations for communication speed.

Inventive Principle:
Principle #10Preliminary action

4Reliability

If workload is distributed evenly among processors, then reliability is improved, but productivity decreases due to slower inter-proximity communications

Engineering Contradiction:
Improveworkload distributionVSAvoidcommunication speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by allowing workload distribution to be optimized within each proximity rather than enforcing uniform distribution across all processors. Threads are assigned to specific proximities based on communication requirements, and within each proximity, workload can be evenly distributed. This ensures both reliable workload management and fast local communication, as threads that need to communicate frequently are co-located in the same proximity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8527988B1Proximity mapping of virtual-machine threads to processors
Publication Date: 2013.09.03 VALTRUS INNOVATIONS LTD
  • US8527988B1 patent drawing
  • US8527988B1 patent drawing
  • US8527988B1 patent drawing

AI summary

Virtual machine threads are mapped to virtual processors. Groups of virtual processors are formed. The number of virtual processors in each group is selected to match a number of unassigned physical processors in a proximity. The virtual processors of each group are selected so that the total estimated interactivity for the group is significantly above average for groups having the same number of those virtual processors.