[mvapich-discuss] Performance of MPI_Iallgatherv
Zehan Cui
zehan.cui at gmail.com
Tue Apr 1 03:28:49 EDT 2014
Hi,
I'm testing the non-blocking collective of MVAPICH2-2.0rc1.
I have two nodes with Infiniband to perform allgather on totally 128MB data.
I split the 128MB data into eight pieces, and perform computation and
MPI_Iallgatherv() on one piece of data each iteration, hoping that the
MPI_Iallgatherv() of last iteration can be overlapped with computation of
current iteration. A MPI_Wait() is called at the end of last iteration.
However, the total communication time (including the final wait time) even
exceeds the traditional blocking MPI_Allgatherv.
Following is the test pseudo-code and result.
===========================
Using MPI_Allgatherv:
for( i=0; i<8; i++ )
{
// computation
mytime( t_begin );
computation;
mytime( t_end );
comp_time += (t_end - t_begin);
// communication
t_begin = t_end;
MPI_Allgatherv();
mytime( t_end );
comm_time += (t_end - t_begin);
}
result:
comp_time = 7,454,219 us
comm_time = 399,854 us
--------------------------------------------
Using MPI_Iallgatherv:
for( i=0; i<8; i++ )
{
// computation
mytime( t_begin );
computation;
mytime( t_end );
comp_time += (t_end - t_begin);
// communication
t_begin = t_end;
MPI_Iallgatherv();
mytime( t_end );
comm_time += (t_end - t_begin);
}
// wait for non-blocking allgather to complete
mytime( t_begin );
for( i=0; i<8; i++ )
MPI_Wait;
mytime( t_end );
wait_time = t_end - t_begin;
result:
comp_time = 7,453,938 us
comm_time = 365,511 us
wait_time = 453,132 us
==============================
It seems that MPI_Iallgatherv() is more blocking than MPI_Allgather().
Does anyone have the same experience?
Thanks,
Zehan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cse.ohio-state.edu/pipermail/mvapich-discuss/attachments/20140401/555fe123/attachment.html>
More information about the mvapich-discuss
mailing list