[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