[mpich-discuss] Re: MPI_Brecv vs multiple MPI_Irecv

Darius Buntinas buntinas at mcs.anl.gov
Wed Aug 27 10:23:35 CDT 2008


Well, what would it mean to do a buffered receive?

This?
   buf = malloc(BUF_SZ);
   MPI_Irecv(buf,...);
   MPI_Wait(...);
   memcpy(recv_ptr, buf, BUF_SZ);

What would be the benefit?

-d

On 08/27/2008 10:13 AM, Robert Kubrick wrote:
> I just found out that the standard actually doesn't have an MPI_Brecv call.
> Any reason why the recv can not buffer messages in a user-provided 
> memory space, as per MPI_Battach/MPI_Bsend?
> 
> On Aug 26, 2008, at 4:17 PM, Robert Kubrick wrote:
> 
>> From a performance point of view, which one is better:
>>
>> MPI_Battach(10*sizeof(MSG))
>> MPI_Brecv()
>>
>> or
>>
>> MPI_recv_init()
>> MPI_recv_init()
>> MPI_recv_init()
>> ... /* 10 recv handlers */
>> MPI_Start(all recv)
>> MPI_Waitany()
>>
>>
>> I understand MPI_Brecv will require an extra message copy, from the 
>> attached buffer to the MPI_Brecv() buffer. I'd like to know if there 
>> other differences between the two methods.
>>
>> Thanks,
>> Rob
> 




More information about the mpich-discuss mailing list