Virtual Machine Thread Proximity Mapping to Processors
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
4Reliability
If workload is distributed evenly among processors, then reliability is improved, but productivity decreases due to slower inter-proximity communications
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.
Data Source
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.


