Sparse Array Load Balancing via Dynamic Repartitioning

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvepartitioning simplicityVSAvoidexecution time disparity
Core Design Contradiction:
Ease of manufactureVSLoss of time

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #23Feedback

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

Engineering Contradiction:
Improvecomputational throughputVSAvoidload balancing effectiveness
Core Design Contradiction:
ProductivityVSEase of operation

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #35Parameter changes

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

Engineering Contradiction:
Improvedata structure complexityVSAvoidadaptability to data distribution
Core Design Contradiction:
Device complexityVSAdaptability or versatility

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

Inventive Principle:
Principle #15Dynamics

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

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9411657B2Load-balanced sparse array processing
Publication Date: 2016.08.09 VALTRUS INNOVATIONS LTD
  • US9411657B2 patent drawing
  • US9411657B2 patent drawing
  • US9411657B2 patent drawing

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.