Automated Expression Parallelization via Parse Tree Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in efficiently evaluating expressions in software applications, as existing methods require sequential processing, which can be time-consuming and prone to errors due to the need for manual modification of code to optimize parallelization.

Innovation Solution

A system that automatically identifies and classifies elements of an expression to determine which can be evaluated in parallel, generating a parallelized expression that can be processed across multiple threads, reducing evaluation time and eliminating the need for user input in modifying the baseline expression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If sequential processing is used to evaluate expressions, then implementation simplicity is maintained, but evaluation time increases and productivity decreases

Engineering Contradiction:
Improveevaluation timeVSAvoidprocessing complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system segments the expression evaluation process by identifying and separating independent sub-expressions that can be evaluated in parallel. The parse tree representation divides the overall expression into multiple independent evaluation tasks that can be executed concurrently on different processor threads, thereby reducing total evaluation time while managing complexity through structured decomposition.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from single-threaded sequential evaluation to multi-threaded parallel evaluation by adding the dimension of concurrent execution. Independent sub-expressions are evaluated simultaneously across multiple processor threads rather than sequentially, fundamentally changing the evaluation paradigm from linear to parallel processing to reduce evaluation time.

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

2Productivity

If manual modification is performed to optimize parallelization, then evaluation efficiency can be improved, but error probability increases and ease of operation deteriorates

Engineering Contradiction:
Improveevaluation efficiencyVSAvoidease of modification
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system performs self-service by automatically analyzing the expression, generating the parse tree, identifying independent sub-expressions, and creating the parallelized expression without requiring manual intervention. The automated system serves itself to optimize parallelization, eliminating the need for developers to manually modify code and thereby maintaining high evaluation efficiency while avoiding human errors.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback mechanisms to automatically analyze the baseline expression, evaluate candidate parallelization opportunities through dependency analysis, and generate optimized parallelized expressions. The automated feedback loop continuously refines the parallelization strategy based on the expression structure, ensuring optimal performance without manual intervention.

Inventive Principle:
Principle #23Feedback

3Speed

If parallel processing is implemented, then evaluation speed increases, but computational overhead and device complexity increase

Engineering Contradiction:
Improveevaluation speedVSAvoidprocessing overhead
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-analyzing the expression structure and generating the parse tree before actual evaluation. Independent sub-expressions are identified and prepared for parallel execution in advance, allowing the evaluation phase to proceed efficiently with minimal runtime overhead. The heavy lifting of parallelization planning is done beforehand, reducing the computational burden during execution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system applies local quality by selectively parallelizing only the independent sub-expressions that benefit from parallel execution, while leaving dependent operations to execute sequentially. This targeted approach optimizes evaluation speed for parallelizable portions without unnecessarily complicating the entire processing pipeline, maintaining a balanced level of complexity.

Inventive Principle:
Principle #3Local quality

4Reliability

If automated parallelization is implemented, then user intervention is eliminated and reliability improves, but system complexity increases

Engineering Contradiction:
Improveaccuracy of parallelizationVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs self-service by automatically analyzing expression dependencies, generating parse trees, and creating parallelized expressions without human intervention. This automated self-service approach eliminates errors associated with manual parallelization attempts while maintaining high reliability through systematic dependency analysis and structured expression transformation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system introduces an intermediary automated parallelization engine that acts as a mediator between the baseline expression and the final parallelized output. This intermediary component handles the complex analysis and transformation tasks, shielding users from the underlying complexity while ensuring accurate and reliable parallelization through systematic processing.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS11900065B1Automated expression parallelization
Publication Date: 2024.02.13 APPIAN CORP
  • US11900065B1 patent drawing
  • US11900065B1 patent drawing
  • US11900065B1 patent drawing

AI summary

A system is capable of automatically adjusting or reconstructing a baseline expression to generate a parallelized expression. Evaluation of the parallelized expression provide a substantially similar output as the evaluation of the baseline query in more efficient manner. In some implementations, data indicating an expression to be evaluated on a primary thread of the one or more processors is obtained. Elements of the expression are identified. The elements are grouped into a parse tree representation. Elements of the expression are classified as belonging to either a first category that includes elements that are eligible for parallel processing or a second category that includes elements that are not eligible for parallel processing. A particular element that is classified as belonging to the first category is identified and evaluated on a non-primary thread of the one or more processors. The non-primary thread is evaluated in parallel with the primary thread.