LAM/MPI logo

LAM/MPI Development Mailing List Archives

  |   Home   |   Download   |   Documentation   |   FAQ   |   all just in this list

From: Samuel Richard (samuel.richard_at_[hidden])
Date: 2005-12-14 02:33:32


Jeff Squyres wrote:

>On Dec 13, 2005, at 6:07 AM, Samuel Richard wrote:
>
>
>
>>I wonder who is in charge of buffering a received message when no
>>Recv has been posted yet ?
>>Is it a thread ?
>>or is my mpi program interrupted?
>>or is it handled by the kernel?
>>
>>
>
>It depends on the RPI that you're talking about. For example, with
>TCP sockets, both the sender and receiver's kernels will buffer
>data. Other devices have some measure of buffering as well, but in
>differing forms. GM, for example, has an event queue that
>effectively "receives" when we poll the queue for progress. But
>until we poll, the gm kernel driver and/or user-level library may be
>buffering the data.
>
>LAM/MPI itself also does some buffering. When unexpected messages
>arrive (i.e., when a message is received and no matching MPI receive
>has been posted), LAM will typically receive the whole message if
>it's small enough ("small enough" is defined differently for each
>RPI). For large messages (i.e., anything larger than "small
>enough"), we do a rendezvous protocol so that only the header is sent
>to the receiver. The actual message is not sent until the matching
>receive is posted.
>
>Does that help?
>
>

More precisely my question was for TCP RPI, when unexpected messages
arrive how does LAM/MPI does its buffering?
Is it a special thread that buffers while my program is computing or is
the program interrupted?