Sparse Array Load Balancing via Dynamic Repartitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face inefficiencies in load balancing for sparse arrays due to uneven distribution of nonzero values, leading to varying execution times among workers, making it challenging to partition and process large datasets effectively in continuous analytics.
Innovation Solution
A method and system that repartition sparse arrays among workers based on load measurements, using a master to control and redistribute partitions to ensure balanced workload, employing distributed arrays with characteristics like partitioning, sharing, dynamics, and versioning to manage data consistency and scalability.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If sparse arrays are partitioned equally among workers, then the partitioning is simple and easy to implement, but the execution time varies significantly among workers due to uneven distribution of nonzero values
Solution Approach 1:
The system dynamically repartitions sparse arrays based on load measurements from workers. The master controller monitors execution times and redistributes partitions to balance the workload, transforming a static equal-partitioning approach into a dynamic load-balanced approach that adapts to actual data distribution patterns
Solution Approach 2:
The system implements feedback by having workers report load measurements (execution times) to the master controller. Based on this feedback, the master controller makes informed decisions about repartitioning to optimize workload distribution, creating a closed-loop control system that continuously improves balance
2Productivity
If the system processes large sparse arrays with many nonzero values, then the computational power is utilized, but the load balancing becomes ineffective and some workers remain idle while others are overloaded
Solution Approach 1:
The system segments the sparse array processing into multiple independent worker tasks, each handling a specific partition. By dividing the large dataset into manageable segments and distributing them dynamically, the system maintains both high computational throughput and effective load balancing across the worker pool
Solution Approach 2:
The system changes the partitioning parameters dynamically based on observed load patterns. Instead of fixed equal-sized partitions, the system adjusts partition boundaries and assignments to match actual nonzero value distributions, optimizing both productivity and operational balance
3Device complexity
If the system uses fixed partitions for sparse arrays, then the data structure is simple to manage, but it cannot adapt to varying nonzero value distributions across different datasets
Solution Approach 1:
The partitioning structure transitions from static to dynamic, allowing the system to adapt to different data distributions while maintaining a relatively simple underlying array structure. The dynamics are introduced through the repartitioning logic rather than through complex data structures
Solution Approach 2:
The system performs preliminary analysis of nonzero value distributions before finalizing partition assignments. By pre-processing the data to identify distribution patterns and then creating optimized partitions based on this analysis, the system achieves adaptability without requiring complex runtime reorganization
Data Source
AI summary
A sparse array is partitioned into first partitions and a second array is partitioned into second partitions based on an invariant relationship between the sparse array and the second array. The sparse array and the second array are associated with a computation involving the sparse array and the second array. The first partitions and the corresponding second partitions are distributed to workers. A different first partition and corresponding second partition is distributed to each of the workers. Third partitions of the sparse array and corresponding fourth partitions of the second array are determined based on the invariant relationship and measurements of load are received from each of the workers. At least one of the first partitions and the corresponding second partition is different from one of the third partitions and the corresponding fourth partition. The at least one of the first partitions and the corresponding second partition that is different is redistributed among the workers. A different third partition and corresponding fourth partition is executed by each of the workers.


