Graph-Based Computation Service Processing with Concurrent Subgraph Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graph-based computation systems face challenges in efficiently processing multiple concurrent service requests and data flows, as they often require sequential processing and lack effective methods for concurrent execution of subgraphs, leading to inefficiencies in handling diverse processing times and orders of responses.

Innovation Solution

The system processes service requests and data flows by identifying and executing applicable subgraphs concurrently, using a computation graph to manage inputs and outputs, and employing techniques like pipeline parallelism, component parallelism, and data parallelism to handle multiple requests and work elements simultaneously, allowing for flexible ordering of responses without requiring multi-threaded processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If sequential processing is used in graph-based computation systems, then system complexity is reduced and ease of operation is improved, but productivity and processing speed deteriorate due to inability to handle multiple concurrent service requests efficiently

Engineering Contradiction:
Improveprocessing speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The computation graph is divided into multiple subgraphs that can be executed independently and concurrently. Each subgraph represents a distinct computational unit that can be processed in parallel by different threads, enabling simultaneous handling of multiple service requests while maintaining manageable complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically determines which subgraphs can be executed concurrently based on data dependencies and resource availability. The execution engine adapts the processing strategy in real-time, switching between sequential and parallel execution modes as needed, thereby improving productivity without requiring complex static configuration

Inventive Principle:
Principle #15Dynamics

2Productivity

If concurrent execution of subgraphs is implemented, then productivity and handling of diverse processing times is improved, but device complexity and scheduling difficulty worsen

Engineering Contradiction:
Improveconcurrent processing capabilityVSAvoidscheduling complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system performs preliminary analysis of the computation graph to identify independent subgraphs that can be executed concurrently before actual processing begins. Dependency relationships are pre-computed and stored, allowing the execution engine to quickly determine parallel execution opportunities without complex real-time scheduling decisions

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

An execution engine acts as an intermediary between the computation graph definition and the actual processing threads. This intermediary manages the complexity of concurrent execution by handling thread creation, coordination, and synchronization, while presenting a simplified interface to both the graph definition and the underlying processing operations

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of time

If multiple service requests are processed sequentially, then system simplicity is maintained, but loss of time and efficiency increase due to inability to utilize available processing resources

Engineering Contradiction:
Improveprocessing timeVSAvoidoperational simplicity
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The system maintains continuous useful action by keeping multiple processing threads active simultaneously, each working on different subgraphs or service requests. Rather than idle waiting between sequential operations, the system continuously processes multiple independent computational units in parallel, maximizing resource utilization and reducing total processing time

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8572236B2Distributing services in graph-based computations
Publication Date: 2013.10.29 AB INITIO TECHNOLOGY LLC
  • US8572236B2 patent drawing
  • US8572236B2 patent drawing
  • US8572236B2 patent drawing

AI summary

A service request is processed according to a computation graph associated with the service by receiving inputs for the computation graph from a service client, providing the inputs to the computation graph as records of a data flow, receiving output from the computation graph, and providing the output to the service client.Data flows are processed concurrently in a graph-based computation by potentially concurrent execution of different types of requests, potentially concurrent execution of similar request types, and/or potentially concurrent execution of work elements within a request.