[mpich-discuss] thread MPI calls
Rob Ross
rross at mcs.anl.gov
Tue Jul 28 17:11:51 CDT 2009
Long ago we kicked around this idea of having multiple queues for the
no-any-* cases, then switching back to a single queue only when one of
those showed up. Is this something we're doing in MPICH2 now?
Rob
On Jul 28, 2009, at 5:09 PM, Pavan Balaji wrote:
>
>> yes, we are using source, but we are using ANY_TAG. We can't try
>> ANY_SOURCE as
>> source is significant, unless I make chanages to the data package.
>
> I'd suggest that you either use both ANY_SOURCE and ANY_TAG, or
> neither. From an MPI implementation's perspective, always using
> ANY_SOURCE + ANY_TAG is best for performance, since all incoming
> messages will have a constant queue search time. On the other hand,
> if you don't use either of them, then it'll allow the MPI
> implementation to use multiple queues instead of a single queue,
> which reduces the search time quite a bit as well (constant time in
> most cases as well). Using one of them as a wild-card and the other
> as a non-wild-card is the worst-case scenario.
>
>> We can try SERIALIZED, but that will block our next strategy which
>> requires MULTIPLE.
>
> For now, this will at least tell us whether MPI's locks are the
> bottleneck or if there's some other bottleneck.
>
> If this does show up as a problem, we can try to profile your
> application with MPE and/or rlog (MPICH2's internal profiling tool).
> It'll give you a nice graphical output on the amount of time spent
> in each routine. Very useful for performance debugging.
>
> -- Pavan
>
> --
> Pavan Balaji
> http://www.mcs.anl.gov/~balaji
More information about the mpich-discuss
mailing list