Unified Language for Parallel Distributed Array Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current architectures lack a single language presentation for parallel processing of distributed arrays, leading to inefficient computation due to exclusive parallel or sequential processing methods.

Innovation Solution

Implementing a system that initiates a single programming language to identify and transform programs into parallel programs with optimal data distribution schemes, allocating portions to multiple labs for parallel execution and combining results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If current architectures process distributed arrays exclusively in parallel or sequentially, then processing simplicity is maintained, but computation efficiency deteriorates due to inability to utilize both processing modes

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidprocessing architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a unified programming language that enables distributed arrays to be processed using both sequential and parallel methods within the same architecture. The system provides multi-functional processing capabilities where the same language presentation can invoke different execution modes (sequential, parallel, or hybrid) based on the specific computational requirements, thereby improving computation efficiency without requiring separate specialized architectures for each processing mode

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Speed

If distributed arrays are partitioned into segments for parallel processing, then computation speed is improved, but data distribution optimization becomes more difficult without a unified language presentation

Engineering Contradiction:
Improvecomputation speedVSAvoiddata distribution optimization
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The unified programming language provides optimized data distribution schemes that automatically adjust data partitioning parameters based on the computational task requirements. The system can change distribution parameters (such as block size, cyclic distribution, or ghost cell configurations) to optimize both computation speed and data locality, making it easier to achieve optimal parallel performance without manual tuning of distribution parameters

Inventive Principle:
Principle #35Parameter changes

3Productivity

If multiple processing modes are supported, then computation efficiency is improved, but language presentation complexity increases

Engineering Contradiction:
Improvecomputation efficiencyVSAvoidlanguage presentation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The unified programming language provides a single, consistent syntax and semantics for declaring and manipulating distributed arrays, regardless of whether sequential or parallel processing is used. The language abstracts away the complexity of different processing modes through universal constructs, allowing programmers to write code once and execute it in the most efficient mode without dealing with language syntax differences between sequential and parallel paradigms

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS8255890B2Media for performing parallel processing of distributed arrays
Publication Date: 2012.08.28 MATHWORKS INC
  • US8255890B2 patent drawing
  • US8255890B2 patent drawing
  • US8255890B2 patent drawing

AI summary

One or more computer-readable media store executable instructions that, when executed by processing logic, perform parallel processing. The media store one or more instructions for initiating a single programming language, and identifying, via the single programming language, one or more data distribution schemes for executing a program. The media also store one or more instructions for transforming, via the single programming language, the program into a parallel program with an optimum data distribution scheme selected from the one or more identified data distribution schemes, and allocating the parallel program to two or more labs for parallel execution. The media further store one or more instructions for receiving one or more results associated with the parallel execution of the parallel program from the two or more labs, and providing the one or more results to the program.