Hi, OpenMPI-1.7.1 is announce support MPI-3 functionality such as non-blocking collectives.
I have test MPI_Iallgatherv on a 8-node cluster, however, I got bad performance. The MPI_Iallgatherv block the program for even longer time than traditional 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 = 811,630 us comm_time = 342,284 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 = 817,397 us comm_time = 1,183,511 us wait_time = 1,294,330 us ============================== >From the result, we can tell that MPI_Iallgatherv block the program for 1,183,511 us, much longer than that of MPI_Allgatherv, which is 342,284 us. Even worse, it still take 1,294,330 us to wait for the non-blocking MPI_Iallgatherv to finish. - Zehan Cui