[mpich-discuss] MPI_Isend/MPI_Irecv on shared memory

Pavan Balaji balaji at mcs.anl.gov
Mon Dec 26 23:42:13 CST 2011


On 12/02/2011 01:07 AM, Yiannis Papadopoulos wrote:
> I see. As I mentioned I cannot share the actual code that I'm encountering this
> issue and writing an example that exposes this issue is not that trivial.
>
> My code is consisted only of Isends/Irecvs. The Irecvs are posted with
> MPI_ANY_SOURCE. The Isends are to random ranks and there are multiple Isends to
> each rank.
>
> I used to have a single queue where I would put the pending MPI_Requests for the
> Isends and MPI_Test them one by one, until one returned false. By changing that
> to a hashtable of queues of MPI_Requests, where the key is the rank, and
> MPI_Testing if the first Isend of each rank has completed, I managed to greatly
> improve the performance (since messages would just get stuck in the single queue
> implementation).
>
> Is the behaviour of MPI_Test documented somewhere or are there any
> benchmarks/models to guide me when it's beneficial to use MPI_Test, MPI_Testsome
> etc? Unfortunately, any blocking operation is strictly forbidden.

I'm not quite sure what documentation you are looking for?  If you are 
looking for multiple request completions, you should use MPI_Testsome; 
for a single request use MPI_Test.

  -- Pavan

-- 
Pavan Balaji
http://www.mcs.anl.gov/~balaji


More information about the mpich-discuss mailing list