Source Code Parallelization via Segmentation and Intermediary Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel multi-thread processing technologies face challenges in efficiently identifying and modifying source code to leverage parallel processing, particularly in scenarios where data dependencies and loop operations are involved.

Innovation Solution

The system analyzes source code to identify segments suitable for parallel multi-thread processing by determining criteria such as lack of data dependency and loop operations exceeding a threshold, and modifies the code to incorporate thread specifications or compiler directives for parallel execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If source code is modified to incorporate thread specifications for parallel execution, then run-time performance is improved, but code complexity increases

Engineering Contradiction:
Improverun-time performanceVSAvoidcode complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments source code into identical iteration groups that can be executed in parallel. By dividing the code into independent sub-tasks with the same structure and operations, each segment can be assigned to separate threads, achieving parallel execution without manually complexifying the entire codebase. The segmentation is based on identifying patterns of identical iterations that are independent of each other.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system introduces an intermediary tool that automatically analyzes source code, identifies eligible segments for parallelization, and generates the necessary thread specifications. This intermediary handles the complexity of determining data dependencies, loop thresholds, and thread allocation, shielding developers from the intricacies of manual parallelization while still achieving performance improvements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If parallel multi-thread processing is implemented, then execution time is reduced, but synchronization overhead increases

Engineering Contradiction:
Improveexecution timeVSAvoidsynchronization overhead
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The source code is divided into identical iteration groups that are executed in parallel across multiple threads. By segmenting the work into independent units with clear boundaries, the system minimizes the need for frequent synchronization. Each thread works on its own segment, reducing contention and synchronization overhead while still achieving significant execution time reduction through parallel processing.

Inventive Principle:
Principle #1Segmentation

3Ease of operation

If automatic source code modification is performed, then ease of operation is improved, but reliability may be compromised

Engineering Contradiction:
Improveease of code modificationVSAvoidcode correctness
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system incorporates feedback mechanisms that automatically verify the correctness of modified source code before applying changes. By analyzing data dependencies, loop structures, and execution patterns, the system provides feedback on whether a segment is suitable for parallelization. This feedback loop ensures that modifications maintain code correctness while still providing ease of operation through automatic identification and transformation of eligible code segments.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250199809A1Multi-Thread Processing Recommendation
Publication Date: 2025.06.19 ORACLE INT CORP
  • US20250199809A1 patent drawing
  • US20250199809A1 patent drawing
  • US20250199809A1 patent drawing

AI summary

A system analyzes a set of static source code to identify source code segments that may be implemented using parallel multi-thread processing at run-time. The system determines whether source code segments meet multi-threading criteria, including lacking operational data dependencies and having particular run time or computing resource consumption characteristics. Based on determining that the source code meets multi-threading criteria, the system modifies the static source code to utilize parallel multi-thread processing at run-time. The system generates a recommendation for a user based on the source code modification.