MPI-2 One-Sided Communication via LAPI Active Messaging
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
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.
Data Source
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.


