Virtual Processor Dispatching with Affinity-Based Prioritization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current computer systems face inefficiencies in dispatching virtual processors to physical processors, leading to idle processor cores and suboptimal performance due to lack of effective affinity-based prioritization and resource allocation.
Innovation Solution
A dispatcher system that prioritizes work requests based on physical processor core and memory affinity, assigns entitled processor cycles, and optimizes virtual processor placement across nodes to maximize performance by ensuring virtual processors run on their home affinity domain when possible, while allowing temporary off-domain execution to utilize excess capacity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If virtual processors are dispatched to any available physical processor to maximize utilization, then processor core idle time is reduced, but system performance deteriorates due to loss of affinity-based optimization
Solution Approach 1:
The dispatching system dynamically adjusts virtual processor placement based on real-time conditions. Virtual processors are preferentially dispatched to their home physical processors for optimal performance, but can be temporarily migrated to other physical processors when home processors are unavailable, balancing affinity optimization with resource utilization
Solution Approach 2:
The system changes the dispatching parameter from strict affinity-based allocation to a flexible model that considers both affinity and availability. The dispatching decision incorporates the home physical processor status, allowing the system to adapt between performance-optimized mode (when home processors available) and utilization-optimized mode (when home processors unavailable)
2Productivity
If virtual processors are strictly assigned to their home physical processors to maintain affinity, then system performance is optimized, but physical processor idle time increases when home processors are unavailable
Solution Approach 1:
The system applies affinity-based dispatching partially rather than strictly. Virtual processors receive preferential treatment to their home physical processors, but when home processors are unavailable, the system allows temporary dispatch to other physical processors, achieving partial affinity optimization while preventing resource idle time
Solution Approach 2:
Physical processors serve multiple functions: they act as home processors for specific virtual processors to optimize performance, and simultaneously serve as backup processors for other virtual processors when needed, maximizing overall system utilization while maintaining affinity benefits where possible
3Productivity
If virtual processors are migrated to utilize excess capacity on other nodes, then processor utilization is improved, but system complexity increases due to monitoring and management overhead
Solution Approach 1:
The dispatching system implements feedback mechanisms to monitor physical processor availability and virtual processor performance. This feedback enables intelligent decision-making about when to maintain home processor assignments versus when to migrate to alternative processors, achieving high utilization without excessive complexity through automated status-based routing
Data Source
AI summary
In an embodiment, a request is received for a first partition to execute on a first virtual processor. If the first physical processor is available at a first node, the first virtual processor is dispatched to execute at the first physical processor at the first node that is the home node of the first virtual processor. If the first physical processor is not available, a determination is made whether the first physical processor is assigned to a second virtual processor and a home node of the second virtual processor is not the first node. If the first physical processor is assigned to a second virtual processor and the home node of the second virtual processor is not the first node, execution of the second virtual processor is stopped on the first physical processor and the first virtual processor is dispatched to the first physical processor.


