Multi-Processor Data Exchange Using Index-Based Executable Code
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Compiling separate executable code for each processor in a computer with multiple processors increases compilation time significantly, making it undesirable for efficient data exchange between processors, particularly in machine learning applications.
Innovation Solution
Implement a single set of executable computer code with index values to determine the operations performed by each processor for data exchange, allowing processors to perform appropriate operations at different times without requiring separate code compilation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If separate executable code is compiled for each processor, then data exchange operations can be precisely controlled for each processor, but compilation time increases significantly
Solution Approach 1:
The patent merges the compilation process by using a single executable code image for all processors instead of compiling separate code for each processor. The single code image contains operations that are selectively executed by different processors based on their processor ID, thereby reducing compilation time while maintaining precise control over data exchange operations.
Solution Approach 2:
The patent applies local quality by incorporating processor-specific logic within the single executable code image. Each processor identifies itself using its processor ID and selectively executes operations based on whether the operation targets its local data or remote data. This allows precise control tailored to each processor's role without requiring separate code compilation.
2Productivity
If a single set of executable code is used for all processors, then compilation time is reduced, but control over processor-specific data exchange operations becomes more complex
Solution Approach 1:
The patent introduces dynamic control within the single executable code image by using processor ID-based conditional execution. Each processor dynamically determines which operations to execute based on its own ID and the operation parameters. This dynamic approach allows the system to maintain simple compilation while achieving processor-specific control through runtime decision-making.
Solution Approach 2:
The patent uses the processor ID as an intermediary mechanism to bridge the gap between the single executable code image and processor-specific operations. The processor ID acts as a mediator that enables each processor to identify whether it should execute a particular operation or pass it to another processor, thereby simplifying the control mechanism while maintaining precision.
3Reliability
If processors perform different operations based on their position, then data exchange synchronization is achieved, but requires complex processor-specific programming
Solution Approach 1:
The patent applies universality by designing a single executable code image that can perform multiple functions across different processors. The same code image is loaded into all processors, and each processor universally executes operations by determining relevance through its processor ID. This universal approach achieves synchronization accuracy while reducing programming complexity compared to compiling separate code for each processor.
Data Source
Figure 1
Figure 1A
Figure 2
AI summary
A computer comprising a plurality of processors, each of which are configured to perform operations on data during a compute phase for the computer and, following a pre-compiled synchronisation barrier, exchange data with at least one other of the processors during an exchange phase for the computer, wherein of the processors in the computer is indexed and the data exchange operations carried out by each processor in the exchange phase depend upon its index value.