Index Folding for Parallel Processing Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Processing large data structures in parallel fashion is inefficient due to limitations in the number of indices that parallel processing devices can handle, leading to unacceptably slow processing times.

Innovation Solution

Index folding, which converts a pair of arbitrary indices into a new single index, allowing for efficient processing by reshaping the data and generating a new indexing expression that can be executed by parallel operations, optimizing memory usage and leveraging existing optimization functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If parallel processing devices are used to process large data structures, then processing speed is improved, but the number of indices that can be handled is limited

Engineering Contradiction:
Improveprocessing speedVSAvoidnumber of indices handled
Core Design Contradiction:
SpeedVSAdaptability or versatility

Solution Approach 1:

The patent applies dimensionality change by transforming multi-dimensional indices into a single index through folding operations. When multiple indices (e.g., i, j, k) are folded into a single index (e.g., p), the system maps multi-dimensional data access patterns into a unified indexing scheme that parallel processing devices can handle efficiently, thereby maintaining high processing speed while expanding the number of indices that can be managed.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Solution Approach 2:

The patent segments the indexing problem by dividing the multi-dimensional index space into manageable segments through folding operations. Each folding operation processes a subset of indices and transforms them into a reduced index space, allowing parallel processing devices to handle larger numbers of original indices by breaking down the complex indexing task into smaller, manageable segments.

Inventive Principle:
Principle #1Segmentation

2Productivity

If indices are folded to reduce the number of indices, then parallel processing efficiency is improved, but the indexing expression complexity increases

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidindexing expression complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by performing folding operations on indices before they are used in parallel processing operations. The system pre-processes the indexing expression by folding indices into reduced index spaces, so that when the parallel processing device executes the operation, it works with simplified indices rather than complex multi-dimensional indices, thereby improving efficiency without increasing runtime complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses an intermediary indexing transformation layer that mediates between the original complex indexing expression and the simplified parallel processing operation. The folding operation acts as an intermediary that translates multi-dimensional indices into a unified index format, allowing the parallel processing device to operate efficiently while the original complex indexing structure is preserved in the transformation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9519671B1Folding pair of adjacent indices based on optimum quantity of induces for parallel processing
Publication Date: 2016.12.13 MATHWORKS INC
  • US9519671B1 patent drawing
  • US9519671B1 patent drawing
  • US9519671B1 patent drawing

AI summary

A method comprising receiving data, where the data includes one or more elements, the data is associated with a first set of indices, and the first set of indices references the one or more elements. The method may further include folding a plurality of indices into a single index, where the single index references the one or more elements of the received data that were referenced by the plurality of indices, the folding generates a second set of indices, and the folding is performed when concurrent process threads are not generated based on the first set of indices. The method may further include determining whether concurrent process threads should be generated based on the second set of indices and generating the concurrent process threads for the second set of indices when the determining determines that the concurrent process threads should be generated based on the second set of indices.