Search: 
 
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
Home
People
Publications
Multiprocessor Architecture Watch
Concurrency Abstraction Watch
Laboratory
 
Modern Embedded Systems: Compilers, Architectures, and Languages
Forum
Models of computation
Previous topic  |  This topic  |  Next topic
Previous article  |  This article  |  Next article

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.

 
Previous topic  |  This topic  |  Next topic
Previous article  |  This article  |  Next article
Send feedback to mescal@gigascale.org
You are not logged in
©1998-2008 GSRC