Distributed CPU Load Balancing via Neighborhood State Exchange
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Multiprocessor systems face load imbalances due to uneven task distribution, leading to underutilization of CPUs, and centralized load balancing solutions are unreliable due to single points of failure.
Innovation Solution
A distributed state-based load balancing technique where each CPU conditionally requests and transfers tasks from neighboring CPUs based on load information, ensuring balanced loads across the neighborhood without a centralized entity, using a state-based policy that adjusts task transfers according to latency and processing rates.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a centralized load balancer is used to monitor and assign tasks, then load balancing performance is improved, but system reliability deteriorates due to single point of failure
Solution Approach 1:
The patent divides the centralized load balancing function into distributed segments, where each CPU independently performs load balancing decisions based on local state information from neighboring CPUs. This segmentation eliminates the single point of failure while maintaining load balancing effectiveness through decentralized autonomous decision-making.
Solution Approach 2:
Each CPU autonomously monitors its own load state and independently requests tasks from neighboring CPUs without requiring a centralized controller. This self-service mechanism allows the system to maintain reliability while achieving load balancing through distributed self-organization.
2Productivity
If tasks are assigned to CPUs at the same rate, then initial load distribution is balanced, but load balance deteriorates over time due to task splitting
Solution Approach 1:
The patent implements continuous feedback loops where CPUs periodically exchange state information about their current load with neighboring CPUs. This feedback mechanism enables dynamic adjustment of task distribution to counteract load imbalances caused by task splitting, maintaining stability over time.
Solution Approach 2:
The load balancing system transitions from static initial distribution to dynamic continuous adjustment. CPUs adaptively request and transfer tasks based on real-time load conditions, allowing the system to maintain load balance stability despite ongoing task creation and splitting activities.
3Measurement precision
If frequent load information requests are made between CPUs, then load balancing accuracy is improved, but communication overhead increases
Solution Approach 1:
The patent restricts load information exchange to local neighboring CPUs rather than all CPUs in the system. This local quality approach reduces communication overhead by limiting the scope of interactions while maintaining sufficient load balancing accuracy through localized state information.
Solution Approach 2:
The system performs load balancing requests conditionally based on specific triggers such as load thresholds or time intervals, rather than continuously. This partial action approach reduces unnecessary communication overhead while maintaining adequate load balancing precision through targeted information exchange.
Data Source
AI summary
One embodiment of the present invention provides a system that performs load balancing between task queues in a multiprocessor system. During operation, the system conditionally requests load information from a number of neighboring CPUs in a neighborhood of a requesting CPU. In response to the request, the system receives load information from one or more neighboring CPUs. Next, the system conditionally requests one or more neighboring CPUs to transfer tasks to the requesting CPU based on the received load information, thereby balancing load between the CPUs in the neighborhood.


