Data Flow Execution Engine for Parallel Computation Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

General-purpose computers are inefficient in executing fine-grained parallel instructions, leading to high energy consumption and poor performance, especially in applications like sparse matrix solvers, where thousands of processors are needed to synchronize, resulting in wasted time and energy due to contention among processors.

Innovation Solution

A data flow execution model is implemented using a processing element fabric that organizes computations based on spatial tags, managing contention through a queuing system and embedding single assignment programs in an abstract spatial lattice to optimize energy and time, allowing spatial separation of dependent computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If general purpose processors are used to execute fine-grained parallel instructions, then computational capability is provided, but energy consumption increases and performance decreases due to instruction management overhead

Engineering Contradiction:
Improvecomputational throughputVSAvoidenergy consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system segments computation into independent instruction tokens that can be executed in parallel across multiple processing elements. Each instruction token represents a discrete computational unit that can be independently scheduled and executed, enabling fine-grained parallelism while reducing instruction management overhead through decentralized execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces data tokens as intermediaries that carry spatial tag information between processing elements. These data tokens mediate the interaction between instructions and data, enabling efficient data movement and reducing the energy overhead associated with traditional memory access patterns in general purpose processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If thousands of processors are used concurrently for sparse matrix solvers, then computational power increases, but synchronization time and energy waste increase due to processor contention

Engineering Contradiction:
Improvecomputational powerVSAvoidsynchronization time
Core Design Contradiction:
PowerVSLoss of time

Solution Approach 1:

The system dynamically schedules instruction tokens across processing elements based on data availability and computational dependencies. This dynamic scheduling allows thousands of processors to operate concurrently without rigid synchronization barriers, as instructions are executed as soon as their data dependencies are satisfied, eliminating idle waiting time.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent performs preliminary organization of instructions into token-based units with embedded spatial tag information before execution. This preliminary structuring enables processing elements to independently determine execution order and data movement requirements, eliminating the need for continuous synchronization during execution and reducing overall synchronization time.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If traditional memory access patterns are used in parallel processors, then data storage is provided, but contention among processors increases leading to reduced performance

Engineering Contradiction:
Improvedata storage capacityVSAvoidexecution efficiency
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The system assigns spatial tags to data tokens that encode their origin and destination processing elements. This local quality information embedded in each data token enables processing elements to make localized decisions about data movement and execution without global coordination, reducing contention while maintaining efficient data storage and access patterns.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS20230334008A1Execution engine for executing single assignment programs with affine dependencies
Publication Date: 2023.10.19 STILLWATER SUPERCOMPUTING INC
  • US20230334008A1 patent drawing
  • US20230334008A1 patent drawing
  • US20230334008A1 patent drawing

AI summary

The execution engine is a new organization for a digital data processing apparatus, suitable for highly parallel execution of structured fine-grain parallel computations. The execution engine includes a memory for storing data and a domain flow program, a controller for requesting the domain flow program from the memory, and further for translating the program into programming information, a processor fabric for processing the domain flow programming information and a crossbar for sending tokens and the programming information to the processor fabric.