> On 10 Feb 2022, at 15:02, Stefano Zampini <[email protected]> wrote:
> 
> 
> 
>> On Feb 10, 2022, at 6:00 PM, Matthew Knepley <[email protected]> wrote:
>> 
>> On Thu, Feb 10, 2022 at 9:17 AM Medane TCHAKOROM 
>> <[email protected]> wrote:
>> Hello ,
>> 
>> Sorry if this question does not belong to this mailling list, i'am using 
>> Petsc , but with some
>> 
>> MPI parts code, when dealing with communication.
>> 
>> If a make two consecutive MPI_Isend requests, and if the destination 
>> processor has not yet receive the message inbetween the two calls, will the 
>> buffer be updated ? I mean if I send message "1" for the first request, then 
>> send "0" as the second message. Will the receiver receive "0" as message ? I 
>> not, how can I do to update the message ?
>> 
>> I believe that MPI guarantees in-order message delivery from a source to a 
>> target, so if you send 1 before 0, the receiver
>> should get them in that order. However, someone here should know for sure.
> 
> I don’t think so. You should use tags to flag the proper operation and wait 
> for it if you need the value to arrive.


Multiple messages that match the same receive are guaranteed not to overtake 
(modulo some technical conditions to do with wildcards and waitany, as well as 
threading). See 
https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node58.htm#Node58, and the 
discussion for semantics of nonblocking messages here 
https://www.mpi-forum.org/docs/mpi-3.1/mpi31-report/node65.htm#Node65

Lawrence

Reply via email to