Distributed Array Partitioning for Data Transfer Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Large-scale data analysis applications requiring linear algebra operations often face inefficiencies due to extensive computing resource demands, particularly in distributed computing environments where data transfer between nodes is high and not optimally managed.

Innovation Solution

A distributed computing system is implemented with a master node and worker nodes that dynamically assign and co-locate array partitions across multiple computing devices to minimize data transfer, using a storage layer and task scheduling to optimize array computations and reduce data movement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is distributed across multiple computing devices for large-scale data analysis, then computing capability and processing speed are improved, but data transfer between nodes increases and system complexity increases

Engineering Contradiction:
Improveprocessing speedVSAvoiddata transfer overhead
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent segments large arrays into smaller array partitions that are distributed across multiple computing devices. Each computing device processes only the relevant partitions it holds, reducing the amount of data that needs to be transferred between nodes while maintaining parallel processing capabilities for improved speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-partitioning arrays and pre-assigning partitions to specific computing devices before execution. This preliminary organization of data and tasks reduces data transfer overhead during runtime by ensuring that relevant data is already in the appropriate locations for efficient processing.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If arrays are partitioned and distributed across computing devices, then data processing efficiency is improved, but data transfer between devices increases

Engineering Contradiction:
Improvedata processing efficiencyVSAvoiddata transfer volume
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies local quality by ensuring that array partitions are strategically assigned to computing devices based on local data access patterns and computational needs. This localized optimization minimizes the volume of data that must be transferred between devices while maximizing processing efficiency for each device's assigned partitions.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent uses copying mechanisms to replicate array partitions to multiple computing devices as needed. By copying partitions to devices that will process them, the system avoids repeated data transfers during different processing stages, thereby reducing total data transfer volume while maintaining high processing efficiency.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If dynamic task assignment is implemented during run-time, then adaptability and resource utilization are improved, but system complexity and overhead increase

Engineering Contradiction:
Improverun-time adaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamics by enabling the system to adaptively reassign array partitions to different computing devices during run-time based on changing computational needs, data access patterns, or device availability. This dynamic reassignment improves resource utilization and adaptability while managing complexity through automated decision-making frameworks.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9015721B2Managing array computations during programmatic run-time in a distributed computing environment
Publication Date: 2015.04.21 HEWLETT PACKARD ENTERPRISE DEV LP
  • US9015721B2 patent drawing
  • US9015721B2 patent drawing
  • US9015721B2 patent drawing

AI summary

A plurality of array partitions are defined for use by a set of tasks of the program run-time. The array partitions can be determined from one or more arrays that are utilized by the program at run-time. Each of the plurality of computing devices are assigned to perform one or more tasks in the set of tasks. By assigning each of the plurality of computing devices to perform one or more tasks, an objective to reduce data transfer amongst the plurality of computing devices can be implemented.