Hi,

Try waiting on all gathers at the same time, not one by one (this is
what non blocking collectives are made for!)

Cheers,

Matthieu

2014-04-05 10:35 GMT+01:00 Zehan Cui <zehan....@gmail.com>:
> Hi,
>
> I'm testing the non-blocking collective of OpenMPI-1.8.
>
> 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) is
> similar with that of the traditional blocking MPI_Allgatherv, even slightly
> higher.
>
>
> Following is the test pseudo-code, the source code are attached.
>
> ===========================
>
> 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);
> }
> --------------------------------------------
>
> 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;
>
> ==============================
>
> The results of Allgatherv is:
> [cmy@gnode102 test_nbc]$ /home3/cmy/czh/opt/ompi-1.8/bin/mpirun -n 2 --host
> gnode102,gnode103 ./Allgatherv 128 2 | grep time
> Computation time  :     8481279 us
> Communication time:     319803 us
>
> The results of Iallgatherv is:
> [cmy@gnode102 test_nbc]$ /home3/cmy/czh/opt/ompi-1.8/bin/mpirun -n 2 --host
> gnode102,gnode103 ./Iallgatherv 128 2 | grep time
> Computation time  :     8479177 us
> Communication time:     199046 us
> Wait time:              139841 us
>
>
> So, does this mean that current OpenMPI implementation of MPI_Iallgatherv
> doesn't support offloading of collective communication to dedicated cores or
> network interface?
>
> Best regards,
> Zehan
>
>
>
>
>
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users



-- 
Information System Engineer, Ph.D.
Blog: http://matt.eifelle.com
LinkedIn: http://www.linkedin.com/in/matthieubrucher
Music band: http://liliejay.com/

Reply via email to