Producer Graph Runtime for Parallel Application Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current programming techniques require significant programming skills and effort from application programmers to correctly write manual invocation sequencing code for parallelization, which can lead to errors and inefficiencies, especially in managing dependencies between methods and instances in object-oriented programming.

Innovation Solution

The introduction of a producer graph oriented programming framework that allows for the declaration of producer dependencies, enabling the runtime to automatically generate and execute producer graphs, thereby simplifying the parallelization and instrumentation of application programs by tracking and sequencing the execution of producers based on their dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual invocation sequencing code is written by application programmers to achieve parallelization, then the application program can be executed in parallel, but the programming complexity and effort increase significantly

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidprogramming complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces a runtime system as an intermediary between the application program and the parallel execution environment. The runtime automatically generates invocation sequencing code based on producer dependency declarations, eliminating the need for programmers to manually write complex parallelization code while still achieving parallel execution capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The application program declares producer dependencies in a simplified manner, and the runtime system automatically handles the complex task of generating and managing invocation sequencing code. This self-service approach allows the system to automatically resolve the parallelization complexity without requiring expert programming knowledge

Inventive Principle:
Principle #25Self-service

2Reliability

If manual invocation sequencing code is written to manage producer dependencies, then execution sequencing can be controlled, but errors and inefficiencies increase

Engineering Contradiction:
Improveexecution sequencing correctnessVSAvoidprogramming errors
Core Design Contradiction:
ReliabilityVSObject-generated harmful factors

Solution Approach 1:

The runtime system automatically generates invocation sequencing code based on the declared producer dependencies, eliminating manual coding errors. The system self-sequences the execution of producers and their dependent methods, ensuring correctness without human intervention in the complex sequencing logic

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The runtime system continuously monitors producer execution status and dynamically adjusts invocation sequencing based on actual execution progress and dependency satisfaction. This feedback mechanism ensures that sequencing decisions are based on real-time system state, improving reliability

Inventive Principle:
Principle #23Feedback

3Ease of operation

If programmers manually manage dependencies between methods and instances, then execution control is achieved, but the burden on programmers increases

Engineering Contradiction:
Improvedependency management easeVSAvoidprogramming effort
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The runtime system acts as an intermediary that automatically manages the complex dependencies between producers, methods, and instances. Programmers only need to declare high-level producer dependencies, while the runtime handles the detailed tracking and sequencing of method invocations and instance creations

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The runtime system creates and manages copies of producer dependency information in its internal data structures, allowing it to automatically track and manage dependencies without requiring programmers to manually replicate this complex information management task

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9424050B2Parallelization and instrumentation in a producer graph oriented programming framework
Publication Date: 2016.08.23 MUREX
  • US9424050B2 patent drawing
  • US9424050B2 patent drawing
  • US9424050B2 patent drawing

AI summary

Embodiments of parallelization and/or instrumentation in a producer graph oriented programming framework have been presented. In one embodiment, a request to run an application program is received, wherein object-oriented source code of the application program includes methods and producer dependency declarations, wherein the producer dependency declaration for a given method identifies a set of zero or more producers with outputs that are an input to the given method, wherein a producer is at least an instance and a method associated with that instance. Further, execution of the application program may be parallelized based on dependency between producers of the application program using the runtime. In some embodiments, the application program is instrumented using the runtime.