Parallel Compute Node Load Balancing via Dynamic Data Redistribution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In parallel computing, the uneven distribution of processing load across compute nodes leads to inefficient utilization of resources, as some nodes become overburdened while others remain underutilized, due to the partitioning of application data into segments of similar size without considering the varying processing requirements of each node.
Innovation Solution
The method involves partitioning application data into chunks, estimating the processing time for each chunk by each compute node, and redistributing chunks based on estimated processing time to balance the load, using data communications networks optimized for point-to-point and collective operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If application data is partitioned into segments of similar size and assigned to compute nodes, then data distribution is simplified, but processing load becomes unevenly distributed causing some nodes to be overburdened while others remain underutilized
Solution Approach 1:
The patent implements dynamic load balancing by allowing compute nodes to periodically exchange data segments based on their current processing status. Nodes monitor their own workload and that of neighboring nodes, then dynamically redistribute segments to maintain balanced processing loads, transforming the static data partitioning into a dynamic adaptive system that responds to changing computational conditions
Solution Approach 2:
The system incorporates feedback mechanisms where compute nodes continuously monitor their processing load and communicate this information to neighboring nodes. This feedback loop enables nodes to adjust data segment assignments in response to actual processing conditions, ensuring that segments are redistributed to nodes with lower current workloads, thereby maintaining efficient resource utilization
2Productivity
If more compute nodes are added to parallel processing, then throughput increases, but overhead and cost increase while saturation point is reached
Solution Approach 1:
The patent segments data into smaller units called segments that can be independently assigned to different compute nodes. This segmentation enables fine-grained load distribution across a large number of nodes, allowing the system to scale throughput by adding nodes while managing complexity through automated segment management and dynamic redistribution protocols
3Productivity
If data chunks are redistributed based on estimated processing time, then load balancing improves, but communication overhead increases
Solution Approach 1:
The system performs preliminary estimation of processing time for data segments before actual processing begins. By evaluating characteristics of incoming segments and predicting their processing requirements in advance, nodes can make informed decisions about redistribution without needing to actually process the entire data before determining load balance implications, reducing unnecessary communication and computation
Solution Approach 2:
The patent implements local quality assessment by having each compute node evaluate the specific characteristics of data segments it receives or could receive, rather than using a uniform evaluation approach. Nodes assess local properties such as data type, size, and processing complexity to determine optimal assignments, enabling more precise load balancing that reduces unnecessary data movement and communication overhead
Data Source
AI summary
Methods, apparatus, and products are disclosed for balancing a data processing load among a plurality of compute nodes in a parallel computer that include: partitioning application data for processing on the plurality of compute nodes into data chunks; receiving, by each compute node, at least one of the data chunks for processing; estimating, by each compute node, processing time involved in processing the data chunks received by that compute node for processing; and redistributing, by at least one of the compute nodes to at least one of the other compute nodes, a portion of the data chunks received by that compute node in dependence upon the processing time estimated by that compute node.


