Data Flow Execution Engine for Parallel Computation Contention
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


