On Apr 24, 2013, at 10:24 AM, Thomas Watson <exascale.sys...@gmail.com> wrote:

> I still have a couple of questions to ask:
> 
> 1. In both MPI_THREAD_FUNNELED and MPI_THREAD_SERIALIZED modes, the MPI calls 
> are serialized at only one thread (in the former case, only the rank main 
> thread can make MPI calls, while in the latter case the threads need to be 
> coordinated so that only one thread makes MPI calls at a time). So are there 
> any performance implications associated with choosing between FUNNELED or 
> SERIALIZED?

In Open MPI, no.

> 2. My current code uses many MPI collective calls (gather/scatter/broadcast, 
> etc.). It seems that these collective calls have some negative impact on 
> performance because ALL MPI processes need to wait on each of these calls. I 
> would like to explore the idea of decoupling computation from MPI 
> communication - so if one thread of each MPI rank is blocked at a MPI call, 
> the other threads can still make progress. I am wondering if I could still 
> make MPI calls from the other non-blocked threads using  MPI_THREAD_FUNNELED 
> or MPI_THREAD_SERIALIZED mode (assuming that the blocked thread is the main 
> thread in the rank)?

MPI-3 introduced the concept of non-blocking collectives (e.g., MPI_Igather).  
Open MPI 1.7.x has preliminary versions of these, but the implementations 
concentrated on correctness: they haven't been optimized yet.  You might need 
to check how well MPI_Gather performs in a separate thread vs. MPI_Igather.

Also, be aware that not all collectives are synchronizing.  Depending on the 
back-end algorithm that is used to implement any given collective, one MPI 
process may return much earlier from a collective call than one of its peers in 
the same collective call.  For example, with MPI_Gather of a short message, all 
non-root processes might do an eager send and return more-or-less immediately.  
The root will need to block, however, until all messages are received.

Make sense?

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


Reply via email to