Multi-Fabric Progress Execution with Latency Prioritization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-fabric environments, combining different MPI devices with varying latency characteristics poses challenges in achieving optimal performance, as existing methods to accommodate latency differences are cumbersome and prone to unpredictable results.

Innovation Solution

A method that pragmatically truncates multi-fabric processes by prioritizing the fastest fabric, using fabric-specific progress modules, and strategically yielding the CPU to ensure predictable latency and bandwidth retention while adhering to MPI standards, allowing for efficient progress across all fabrics.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If adaptive calling of fabric progress processes is used to accommodate latency differences, then performance can be optimized for specific message frequencies, but the system becomes cumbersome and produces unpredictable results

Engineering Contradiction:
Improveperformance optimizationVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent changes the parameter of fabric progress process calling from adaptive (complex) to fixed ordered (simple). By establishing a predetermined calling order based on fabric latency characteristics and calling each fabric's progress process in that fixed sequence, the system achieves predictable performance without the complexity of adaptive adjustment mechanisms.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

Instead of adaptively adjusting which fabrics to call based on current message frequencies (complex adaptive approach), the patent inverts the approach by using a fixed predetermined order based on latency characteristics. This inversion from adaptive to fixed simplifies the system while maintaining predictability.

Inventive Principle:
Principle #13The other way round (Inversion)

2Productivity

If CPU yielding is used to allow other processes to proceed, then multiprocessing efficiency improves, but overall latency may increase due to context switching

Engineering Contradiction:
Improvemultiprocessing efficiencyVSAvoidoverall latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies partial CPU yielding by yielding only after processing the fastest fabric and only when necessary to allow other processes to proceed. This partial action (yielding at specific points rather than continuously) maintains multiprocessing efficiency while minimizing the latency impact of context switching.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If all fabric progress processes are called equally, then all fabrics make progress, but the fastest fabric's latency advantage is lost and overall performance decreases

Engineering Contradiction:
Improveprogress assuranceVSAvoidoverall latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies local quality by treating different fabrics differently based on their latency characteristics. The fastest fabric is processed first with priority, ensuring its latency advantage is utilized, while slower fabrics are processed in the predetermined order. This differentiated approach maintains progress assurance for all fabrics while optimizing overall latency.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS7567557B2Method, system and apparatus for multifabric pragmatically truncated progress execution
Publication Date: 2009.07.28 INTEL CORP
  • US7567557B2 patent drawing
  • US7567557B2 patent drawing
  • US7567557B2 patent drawing

AI summary

A process, system and device to generate an ordered list based on latency for an operation having many different fabric types. To execute the operation for a first fabric having least latency of other fabrics while progress is made executing the operation for the first fabric and to execute the operation for a second fabric if progress stalls in executing the first fabric. The first fabric has less execution latency than the second fabric.