Sliding Window Parallelization for Multi-Core Elephant Flows

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Multi-core computing environments face challenges in efficiently processing elephant flows due to single-threaded limitations, synchronization primitives that introduce latency and overhead, and scalability issues with increasing hardware resources, particularly in high-throughput network deployments like 5G and 6G.

Innovation Solution

Implementing lockless parallelization of sequence number generation for sliding window protocols, partitioning incoming packet flows into finer-granularity sub-flows, and managing these sub-flows independently without synchronization primitives, utilizing multi-core processor circuitry like IPUs and smart NICs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If single-threaded processing is used for elephant flows, then implementation is simple, but processing throughput is limited

Engineering Contradiction:
Improveprocessing throughputVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides a single elephant flow into multiple sub-flows, each processed by a separate processing thread. This segmentation allows parallel processing of packet sequences, thereby increasing overall throughput while maintaining manageable complexity through structured flow division and independent sequence number spaces for each sub-flow.

Inventive Principle:
Principle #1Segmentation

2Reliability

If synchronization primitives are used for multi-threaded processing, then coordination is achieved, but latency and overhead increase

Engineering Contradiction:
Improvecoordination reliabilityVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts the sequence number management function from the main data processing path and implements it independently for each sub-flow. By giving each processing thread its own sequence number space and managing sequence numbers independently without shared state, the patent eliminates the need for synchronization primitives like locks and semaphores, thereby removing the associated latency and overhead while maintaining coordination reliability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If hardware resources are increased, then processing capacity should improve, but scalability is limited by single-threaded architecture

Engineering Contradiction:
Improveprocessing capacityVSAvoidscalability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements a dynamic multi-threaded architecture where the number of processing threads can be adjusted based on available hardware resources and flow characteristics. Each thread independently processes sub-flows with dedicated sequence number spaces, allowing the system to scale efficiently by adding more threads and corresponding hardware resources without being constrained by single-threaded architectural limitations.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12470489B2Methods and apparatus for performance scaling with parallel processing of sliding window management on multi-core architecture
Publication Date: 2025.11.11 INTEL CORP
  • US12470489B2 patent drawing
  • US12470489B2 patent drawing
  • US12470489B2 patent drawing

AI summary

Methods, apparatus, and articles of manufacture have been disclosed for performance scaling with parallel processing of sliding window management on multi-core architecture. An example apparatus includes at least one memory, instructions in the apparatus, and processor circuitry to at least one of execute or instantiate the instructions to partition a packet flow into two or more sub flows based on a packet flow distribution configuration, the two or more sub flows associated respectively with two or more sliding windows that are able to slide in parallel, provide the two or more sub flows to a buffer to schedule distribution of the two or more sub flows, dequeue the two or more sub flows from the buffer to one or more hardware cores, and transmit the two or more sub flows to a destination device.