Parallelizing Sequential Grid Tasks via Dependency Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Computer programs written in sequential languages face challenges in adapting to grid computing environments, as they do not leverage parallel processing capabilities effectively due to their sequential execution nature.

Innovation Solution

Systems and methods are developed to capture and analyze the execution behavior of sequentially operating computer programs, determining dependencies between steps to identify tasks that can be processed in parallel within a grid computing environment, thereby transforming the program into a grid-enabled version that can utilize multiple processors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a computer program is written in a sequential language, then the program structure is simple and easy to understand, but the program cannot leverage parallel processing capabilities in grid computing environments

Engineering Contradiction:
Improveadaptability to grid computing environmentVSAvoidprogram complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the sequential program into multiple independent tasks by analyzing execution behavior and identifying dependencies between steps. Each task can be executed independently on different grid nodes, transforming a monolithic sequential program into a distributed parallel execution model while maintaining the original program logic.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary layer that captures execution behavior and generates dependency information without modifying the original sequential program code. This intermediary analysis layer acts as a mediator between the sequential program and the parallel grid computing environment, enabling adaptation without direct program restructuring.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If a sequential program is executed on a grid computing environment, then resource utilization is low, but modifying the program to run in parallel increases development time and complexity

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddevelopment time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs preliminary analysis of the sequential program's execution behavior to pre-determine task dependencies and parallelization opportunities before actual grid execution. This preliminary action captures execution characteristics and generates dependency information that enables automatic parallelization without requiring developers to manually refactor the program, thus saving development time while enabling efficient parallel processing.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If execution behavior is captured and analyzed to determine task dependencies, then parallel processing capability is enabled, but the system complexity and analysis overhead increase

Engineering Contradiction:
Improveparallel processing capabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent enables the sequential program to self-analyze its own execution behavior by capturing runtime information and generating dependency metadata automatically. The program essentially serves itself by providing the necessary execution information without requiring external instrumentation or manual analysis, reducing system complexity while enabling parallel processing capability.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8201184B2Systems and methods for parallelizing grid computer environment tasks
Publication Date: 2012.06.12 SAS INSTITUTE INC
  • US8201184B2 patent drawing
  • US8201184B2 patent drawing
  • US8201184B2 patent drawing

AI summary

Systems and methods for executing a computer program within a multiple processor grid computing environment. Execution behavior of the computer program is captured while the computer program is sequentially executing. The captured execution behavior is linked with steps contained in the source code version of the computer program. The captured execution behavior that is linked with the supplemented source code version is analyzed in order to determine dependencies between a step of the computer program and one or more other steps of the computer program. A determination is made of which task or tasks within the computer program can be processed through the grid computing environment based upon the determined dependencies.