View
By topic
As outline
Fully expanded
Forum topics
compiler-infrastructure
arch-summaries
compiler-summaries
moc's
network-drivers
Presentations
Princeton Presentation
Simulator
Reading List
Design Examples
Architecture Discussion
Related Conferences
Downloads
DEPRECATED
DEPRECATED
Taxonomies
Articles
ninja
mpi-ptp
Model summary
MoC Spectrum
|
| |
MPI Point-to-point Semantics Michael Shilman, 22 Oct 1999
Message-Passing Interface (MPI) is a standard semantics and programming interface for message-passing on distributed multiprocessors. The standard supports operations for point-to-point communication, collective communication, process groups, communication contexts, and process topologies. This document summarizes and abstracts the point-to-point communications in MPI.
An MPI program uses the primitive operations send and receive for point-to-point communications. Each call can either be blocking or immediate (aka non-blocking). Blocking calls will block until the corresponding operation has begun. For example, a blocking send will complete when the corresponding receive has started. Non-blocking calls allow a client to initiate communication and asynchronously continue with some other computation. The client can then complete the communication either by blocking until the send-receive has finished or by periodically testing the status of the communication.
There are several communication modes that are specified by the sender: buffered, synchronous,
ready, and standard.
| buffered |
A buffered send operation can be started whether or not a matching receive has been posted. If no matching receive has been posted, the message will be buffered, allowing the send call to complete.
|
| synchronous |
A synchronous send operation can be started whether or not a matching receive has been posted. However, the send will complete successfully only if a matching receive is posted.
|
| ready |
A send that uses the ready mode my be started only if the matching receive is already posted. Otherwise the operation is erroneous and its outcome is undefined.
|
| standard |
Sending in standard mode leaves it up to the MPI to decide whether outgoing messages will be buffered. This gives MPI the flexibility to potentially optimize the communication.
|
MPI also provides a number of other ways to check the status of communication.
| probe |
The probe call allows receivers to query for the presence and size of incoming messages. It comes in blocking and immediate flavors.
|
| test |
The test call allows clients to query whether a given request has been completed.
|
| complete |
The complete call allows clients to block until a given immediate request has completed.
|
| |
|