Multi-Processor Data Exchange Using Index-Based Executable Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvedata exchange control precisionVSAvoidcompilation time
Core Design Contradiction:
ReliabilityVSLoss of time

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.

Inventive Principle:
Principle #5Merging (Combining)

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.

Inventive Principle:
Principle #3Local quality

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

Engineering Contradiction:
Improvecompilation efficiencyVSAvoidcode execution control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If processors perform different operations based on their position, then data exchange synchronization is achieved, but requires complex processor-specific programming

Engineering Contradiction:
Improvesynchronization accuracyVSAvoidprogramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

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.

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

Data Source

PatentEP3973465B1Communication in a computer having multiple processors
Publication Date: 2025.12.24 GRAPHCORE LTD
  • EP3973465B1 patent drawingFigure 1
  • EP3973465B1 patent drawingFigure 1A
  • EP3973465B1 patent drawingFigure 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.