Newsgroups: comp.parallel.mpi
From: salo@mrjones.engr.sgi.com (Eric Salo)
Subject: Re: How are MPI_Send and MPI_Isend implemented in MPICH?
Organization: Silicon Graphics, Inc.  Mountain View, CA
Date: 30 May 1995 01:38:52 GMT
Message-ID: <3qdsvc$pss@fido.asd.sgi.com>

> According to what you said above and the MPI standard, is it true that
> 
> 1. If there is a recv() posted, MPI_Send() sends directly to recv() and
>    then return, while MPI_Isend() returns immediately. Internally,
>    send() sends data to recv().
> 2. If there is no recv() posted, MPI_Send() buffers it locally (or at
>    remote end?) and then return, while MPI_Isend() return immediately.
>    Internally, send() buffers the data locally (or at remote end)??
> 
> Please correct it (or comment). Thanks!!

Not quite. MPI_Isend() always returns. MPI_Send() always returns if a
receive is posted. If a receive is not posted, MPI_Send() may or may not
wait until the receive is posted before returning. Whether and where data
is buffered are completely up to individual implementations to decide.

This is all explained fully in section 3.4 of the MPI Standard.


Eric Salo         Silicon Graphics Inc.             "Do you know what the
(415)390-2998     2011 N. Shoreline Blvd, 7L-802     last Xon said, just
salo@sgi.com      Mountain View, CA   94043-1389     before he died?"

