Parallel Programming Error Construct for Exception Handling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current parallel programming systems face challenges in error handling, leading to premature termination of parallel programs when an error occurs, as they lack effective mechanisms to manage and propagate exceptions across multiple software resources.

Innovation Solution

A parallel programming error construct, such as the 'try/catch' mechanism, is introduced, where software units of execution can detect errors and signal other units to execute an error-handling portion, allowing the program to continue execution and provide information for display.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional error handling is used in parallel programs, then error detection is possible, but the program terminates prematurely when an error occurs

Engineering Contradiction:
Improveerror handling capabilityVSAvoidprogram execution continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides error handling into separate segments: error detection in a first portion of parallel code, error signaling mechanism, and error handling in a second portion. This segmentation allows different parts of the parallel program to handle errors independently, preventing premature termination while maintaining reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary error signaling mechanism that communicates error states between parallel software resources. This mediator allows error information to be propagated without forcing immediate program termination, enabling continuous execution with proper error tracking.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If parallel programs execute on multiple software resources, then processing speed increases, but error propagation becomes difficult

Engineering Contradiction:
Improveparallel processing speedVSAvoiderror information propagation
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent implements feedback mechanisms where error information from any software resource is communicated back to all other resources. This feedback loop ensures that error information is propagated throughout the parallel system without disrupting the high-speed parallel execution, maintaining both productivity and information integrity.

Inventive Principle:
Principle #23Feedback

3Reliability

If error detection is implemented in parallel programs, then reliability improves, but system complexity increases

Engineering Contradiction:
Improveerror detection capabilityVSAvoiderror handling mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts error handling logic from the main parallel execution flow into separate error handling portions. This extraction reduces the complexity of the main parallel code while maintaining comprehensive error detection capabilities, as error handling becomes a distinct, manageable component rather than being embedded throughout the parallel execution.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP2212789B1Parallel programming error constructs
Publication Date: 2019.01.09 MATHWORKS INC
  • EP2212789B1 patent drawingFigure 1
  • EP2212789B1 patent drawingFigure 2
  • EP2212789B1 patent drawingFigure 3A

AI summary

A system receives a program, allocates the program to a first software unit of execution (UE) and a second software UE, executes a first portion of the program with the first and second software UEs in parallel, and determines whether an error is detected during execution of the first portion of the program by the first and second software UEs. The system also sends a signal, between the first and second software UEs, to execute a second portion of the program when the error is detected in the first portion of the program, executes the second portion of the program with the first and second software UEs when the error is detected, and provides for display information associated with execution of the first portion and the second portion of the program by the first and second software UEs.