Ring Allreduce Processing with Double Buffer Overlap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The ring allreduce method in computing systems is not optimal in terms of network bandwidth utilization due to data dependency constraints, which prevent overlap of communication and computation steps, leading to inefficiencies in processing large messages.

Innovation Solution

Implementing a double buffer technique that splits messages into 2*N chunks, allowing each node to transmit one chunk while reducing another, thereby overlapping communication and computation steps and improving bandwidth utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the ring allreduce method is used with data dependency constraints, then the communication steps can be performed sequentially, but the network bandwidth utilization deteriorates due to no overlap between communication and computation

Engineering Contradiction:
Improvedata dependency constraint satisfactionVSAvoidnetwork bandwidth utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the message into multiple chunks (specifically 2*N chunks where N is the number of nodes) and processes them in parallel. Each node works on different chunks simultaneously, allowing communication and computation to overlap. This segmentation resolves the contradiction by enabling parallel processing while maintaining data dependency constraints through structured chunk distribution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by pre-dividing the message into chunks and preparing the reduction operation schedule before actual execution. Nodes prepare their computation tasks in advance based on the predetermined chunk assignment, allowing communication and computation to overlap during execution without violating data dependencies.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If communication and computation steps are performed sequentially due to data dependencies, then data correctness is maintained, but the processing time increases due to no overlap

Engineering Contradiction:
Improvedata correctnessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

By segmenting the message into 2*N chunks and assigning different chunks to different nodes for simultaneous processing, the patent achieves time overlap between communication and computation. Node i processes chunk 2*i while receiving data for chunk 2*i+1, maintaining correctness through structured data flow while reducing total processing time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent ensures continuous useful action by overlapping communication and computation operations. While one node is receiving data for a chunk, another node is simultaneously processing a different chunk, eliminating idle waiting time and maintaining continuous productive activity throughout the allreduce operation.

Inventive Principle:
Principle #20Continuity of useful action

3Power

If only one core is dedicated to each MPI operation, then computing capability is preserved, but the network bandwidth utilization deteriorates due to limited parallel processing

Engineering Contradiction:
Improvecomputing capabilityVSAvoidnetwork bandwidth utilization
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent segments the MPI operation into multiple parallel chunk processing tasks that can be handled by different cores simultaneously. Each core processes different chunks of the message in parallel, increasing network bandwidth utilization while preserving overall computing capability through distributed processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial action by having each core handle only the specific chunks assigned to it rather than the entire message, allowing multiple cores to work in parallel on different portions of the data. This partial processing approach increases bandwidth utilization while each core maintains adequate computing capability for its assigned task.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS20230315654A1Method of ring allreduce processing
Publication Date: 2023.10.05 INTEL CORP
  • US20230315654A1 patent drawing
  • US20230315654A1 patent drawing
  • US20230315654A1 patent drawing

AI summary

A method of performing ring allreduce operations is disclosed. The method includes sending a chunk of a message in a receive buffer at a current index of a send buffer to a next node in a virtual ring of nodes, receiving a chunk of the message from a previous node in the virtual ring of nodes and store the chunk at the current index of the receive buffer, and reducing a chunk in a send buffer at a previous index of the receive buffer and a chunk in the receive buffer at a previous index of the receive buffer and storing a result at the previous index of the receive buffer. The method includes repeating the sending, receiving and storing, and reducing and storing steps until all chunks of the message are reduced, and sending reduced chunks to the next node and receive reduced chunks from the previous node.