> I'm not sure what you mean by this statement.  If you add N asynchronous 
> requests and the speed is not decreased, that's a *good* thing, right?

My problem is that N asynchronous irecv does not *increase* the speed of 
receiving data compared to just 1 irecv.
I have multiple nodes sending large messages to the receiving node. But it 
seems that the multiple irecv are not overlapped.
The delay between the completion of different irecvs is the same as what I get 
when there is only 1 irecv.

I suspect that maybe sending many large messages to one node at (almost) the 
same time causes network congestion.
But I did not improve receive speed even if I reduce the network congestion by 
sending large messages at different times.

I know the problem depends on many things, but is eager to know how to fix it 
to improve the receiving speed.

Lei

-----邮件原件-----
发件人: users [mailto:users-boun...@open-mpi.org] 代表 Jeff Squyres (jsquyres)
发送时间: 2014年8月23日 20:03
收件人: Open MPI User's List
主题: Re: [OMPI users] Does multiple Irecv means concurrent receiving ?

On Aug 20, 2014, at 3:37 AM, Zhang,Lei(Ecom) <zhangle...@baidu.com> wrote:

> I have a performance problem with receiving. In a single master thread, I 
> made several Irecv calls:
>  
> Irecv(buf1, ..., tag, ANY_SOURCE, COMM_WORLD) 
> Irecv(buf2, ..., tag, ANY_SOURCE, COMM_WORLD) ...
> Irecv(bufn, ..., tag, ANY_SOURCE, COMM_WORLD)
>  
> all of which try to receive from any node for messages with the same tag.
>  
> Then, whenever any of the Irecv completes (using Testany), a separate thread 
> is dispatched to work on the received message.
> In my program, many nodes will send to this master thread.
>  
> However, I noticed that the speed of recv is almost unaffected no matter how 
> many Irecv calls were made.

I'm not sure what you mean by this statement.  If you add N asynchronous 
requests and the speed is not decreased, that's a *good* thing, right?

> It seems that multiple Irecv calls does not mean concurrently receiving from 
> many nodes.

That's a different question.

It depends on many factors, including your underlying network software and 
hardware.  If you post many long message Irecvs, for example, and multiple 
senders concurrently send matching messages, there will almost certainly be 
some overlap in the receive of messages between the different senders.

Is that what you are asking?

> By profiling the node running the master thread, I can see that the network 
> input bandwidth is quite low.

That could also be for many reasons.  Are you sending short messages?  Are you 
sending messages infrequently?  Is your network otherwise congested?  ...(etc.)?

--
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to: 
http://www.cisco.com/web/about/doing_business/legal/cri/

_______________________________________________
users mailing list
us...@open-mpi.org
Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/users
Link to this post: 
http://www.open-mpi.org/community/lists/users/2014/08/25140.php

Reply via email to