Graph Computation Component Folding via Virtual CPUs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graph-based computations often face inefficiencies due to high overhead and latency associated with multiple processes running concurrently, as each process incurs significant overhead, leading to increased resource usage and reduced scalability.

Innovation Solution

The approach of 'component folding' where multiple graph components are executed within a single process, eliminating the need for inter-process buffering and reducing context-switching, thereby improving performance by minimizing data movement and startup time while maintaining expressibility and ease of use.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple processes are used to execute graph components, then parallelism and modularity are improved, but overhead and resource consumption increase

Engineering Contradiction:
ImproveparallelismVSAvoidoverhead
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges multiple graph component executions into a single process by implementing a work stealing scheduler where one process manages multiple virtual CPUs and steals work from other processes' queues. This combines the benefits of parallelism through virtual CPUs while avoiding the overhead of multiple actual processes, as all operations occur within a single process context with shared memory access.

Inventive Principle:
Principle #5Merging (Combining)

2Productivity

If multiple processes are used to execute graph components, then concurrency is improved, but context-switching and latency increase

Engineering Contradiction:
ImproveconcurrencyVSAvoidcontext-switching
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent introduces virtual CPUs as an abstract dimension layer between the single physical process and multiple graph component executions. This allows the system to simulate multi-process concurrency without actual process context switches, as the virtual CPU switching occurs through software management within the single process rather than through operating system process context switches.

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

3Device complexity

If components are consolidated into fewer processes, then overhead is reduced, but expressibility and ease of use may be sacrificed

Engineering Contradiction:
ImproveoverheadVSAvoidexpressibility
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The patent creates a universal execution model where a single process can dynamically execute any graph component through the work stealing scheduler. The virtual CPU abstraction provides a unified interface for component execution, maintaining expressibility through the graph model while achieving overhead reduction through single-process execution. The system is versatile enough to handle any DAG-based computation graph.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP2021920B1Managing computing resources in graph-based computations
Publication Date: 2017.03.01 AB INITIO TECHNOLOGY LLC
  • EP2021920B1 patent drawing
  • EP2021920B1 patent drawing
  • EP2021920B1 patent drawing

AI summary

Executing graph-based computations includes: accepting a specification of a computation graph in which data processing elements are joined by linking elements; dividing the data processing elements into sets, at least one of the sets including multiple of the data processing elements; assigning to each set a different computing resource; and processing data according to the computation graph, including performing computations corresponding to the data processing elements using the assigned computing resources.