MPI-2 One-Sided Communication via LAPI Active Messaging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The initial implementation of MPI-2 one-sided communication did not effectively exploit the one-sided capability provided by LAPI, leading to inefficient synchronization and high overhead due to context switching and serialization in the two-sided communication model.

Innovation Solution

The method involves replacing MPCI calls with direct LAPI APIs, utilizing LAPI active messaging capabilities to support multiple data transfer types, including a new data transfer type for multi-packet headers, and using counters to synchronize RMA operations, eliminating message matching operations and context switching.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If MPCI send and receive functionality with responder capability is used for MPI-2 one-sided communication, then basic communication functionality is provided, but synchronization overhead is high due to thread activation and context switching

Engineering Contradiction:
Improvecommunication functionalityVSAvoidsynchronization overhead
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent extracts the responder capability from the communication path by implementing true one-sided RMA operations where the target process does not need to actively respond or activate threads. The origin process directly accesses the target's memory window without requiring MPCI responder thread activation, eliminating the context switching overhead while maintaining basic communication functionality.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism using LAPI's one-sided RMA primitives that mediate between MPI-2 operations and the underlying communication infrastructure. This intermediary layer allows the origin process to directly access target memory without requiring target process intervention, thereby eliminating the need for MPCI responder threads and reducing synchronization overhead.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If two-sided communication model is used, then message matching and response handling are supported, but serialization and context switching cause high overhead

Engineering Contradiction:
Improvemessage matching capabilityVSAvoidcommunication throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent inverts the traditional two-sided communication model by implementing true one-sided RMA where the origin process directly accesses target memory without requiring target process participation in the communication handshake. This inversion eliminates the need for message matching and response handling, removing serialization bottlenecks and context switching while maintaining adaptability through LAPI's flexible RMA interface.

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

Solution Approach 2:

The patent enables self-service communication where the origin process independently performs memory access operations on the target process's window without requiring target process assistance. The target process passively exposes its memory window while the origin process autonomously performs put, get, and accumulate operations, eliminating the need for message matching and response handling that cause serialization overhead.

Inventive Principle:
Principle #25Self-service

3Loss of time

If LAPI active messaging capabilities are used for MPI-2 one-sided communication, then synchronization overhead is reduced, but implementation complexity increases

Engineering Contradiction:
Improvesynchronization overheadVSAvoidimplementation complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent leverages LAPI's universal one-sided RMA interface that handles multiple communication operations (put, get, accumulate) through a unified mechanism. This multi-functional approach reduces synchronization overhead by eliminating the need for separate response handling code for each operation type, while the standardized LAPI interface abstracts away implementation complexity despite the advanced functionality.

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

Solution Approach 2:

The patent changes the fundamental parameter of the communication model from two-sided (requiring responder threads) to one-sided (direct memory access). This parameter change reduces synchronization overhead by eliminating thread activation, while the implementation complexity is managed through LAPI's standardized interface that provides consistent semantics across different operations and platforms.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS7694310B2Method for implementing MPI-2 one sided communication
Publication Date: 2010.04.06 X CORP
  • US7694310B2 patent drawing
  • US7694310B2 patent drawing
  • US7694310B2 patent drawing

AI summary

A method for implementing Message Passing Interface (MPI-2) one-sided communication by using Low-level Applications Programming Interface (LAPI) active messaging capabilities, including providing at least three data transfer types, one of which is used to send a message with a message header greater than one packet where Data Gather and Scatter Programs (DGSP) are placed as part of the message header; allowing a multi-packet header by using a LAPI data transfer type; sending the DGSP and data as one message; reading the DSGP with a header handler; registering the DSGP with the LAPI to allow the LAPI to scatter the data to one or more memory locations; defining two sets of counters, one counter set for keeping track of a state of a prospective communication partner, and another counter set for recording activities of local and Remote Memory Access (RMA) operations; comparing local and remote counts of completed RMA operations to complete synchronization mechanisms; and creating a mpci_wait_loop function.