Re: point to point confusion



Wow, that was fast ! And thanx a lot !
Howerer, in the meantime, i have got another problem. Is it possible to tell
when to use what modes of both blocking and non blocking com ? Is it correct
that non blocking is always faster than blocking ? When should i use non
blocking sync send rather that Isend ? How about ready and buffered in non
blocking com?

Tommy

"David Cronk" <cronk@xxxxxxxxxxxxxxxx> wrote in message
news:430377c2$1_2@xxxxxxxxxxxxxxx
>
>
> Tommy Strhaug wrote:
>> Hello,
>>
>> If we are talking about the standard blocking MPI_Send(...), there are as
>> far as i know of, two possibilities.
>> 1. The system offer no buffering and the Send does not return before the
>> Recv has finished.
>
> Correction, send does not return until the Recv has started.
>
>> 2. The system offer buffering, and the bessage are copied into the
>> buffer, and the send return right away and the message is trasfered to
>> the destination at a later time.
>
> Only if there is enough unused buffer space. Otherwise, it must block
> until either some buffer space is freed-up, or a matching receive is
> posted. Also, the standard does not say how to implement MPI. If the
> recv has already been posted, a good MPI is going to skip the buffering
> step and the call will not return until the message has been copied onto
> the wire, rather than into a buffer.
>
>>
>> My question is : is it possible to do better than 2? I mean, non blocking
>> communication and blocking is the same here, am i right ? At least
>> conserning only speed and not the possiblity of deadlocks.
>
> Since the implementors are free to handle message passing anyway they
> want, as long an the syntax and semantics match the standard, there are
> more than 2. Message size, buffer space, and other factors may affect how
> a particular implementation carries out blocking sends.
>
> And to answer your question, no, blocking and non-blocking are not the
> same. With non-blocking, the app can continue to do computation even if
> there is no buffer space for the message and a matching receive has not
> been posted. Once a matching receive has posted, the buffering step can
> be skipped, which may improve performance.
>
> I hope this helps.
>
> Dave.
>
>>
>> Tommy,
>>
>>
>
> --
> Dr. David Cronk, Ph.D. phone: (865) 974-3735
> Research Leader fax: (865) 974-8296
> Innovative Computing Lab http://www.cs.utk.edu/~cronk
> University of Tennessee, Knoxville


.



Relevant Pages

  • Re: Integer to "string" conversions
    ... because of the win/win of not having to marshal data into a temporary buffer ... to buffer this out at the page size or twice the page size. ... the blocking problem was to use pthreads. ... socket routines, let me know - but I highly recommend writing your own first ...
    (comp.lang.c)
  • Re: Socket weirdness
    ... I have a much better understanding now of blocking/non-blocking Sends, BeginSend, ACK and RST, and TCP/IP in general. ... It depending what is going on (i.e. how full the send buffer is). ... | did not wait for ACK, even if it was the "Blocking" type. ...
    (microsoft.public.dotnet.framework)
  • Re: point to point confusion
    ... Is it possible to tell when to use what modes of both blocking and non blocking com? ... Buffered can be useful if the system does not provide enough system buffer space. ... I generally recommend using non-blocking as early as the data is available. ...
    (comp.parallel.mpi)
  • Re: Socket weirdness
    ... It depending what is going on (i.e. how full the send buffer is). ... block for an ACK if it hasn't received one after a certain ... | did not wait for ACK, even if it was the "Blocking" type. ... So will non-blocking. ...
    (microsoft.public.dotnet.framework)
  • Re: point to point confusion
    ... If we are talking about the standard blocking MPI_Send, there are as far as i know of, two possibilities. ... If the recv has already been posted, a good MPI is going to skip the buffering step and the call will not return until the message has been copied onto the wire, rather than into a buffer. ... the app can continue to do computation even if there is no buffer space for the message and a matching receive has not been posted. ...
    (comp.parallel.mpi)