Definition
MPI_Iallgather is the non-blocking version of MPI_Allgather; it collects data from all processes in a given communicator and stores the gathered data in the receive buffer of each process. Unlike MPI_Allgather however, it will not wait for the collection to complete and will return immediately instead. The user must therefore check for completion with MPI_Wait or MPI_Test before the buffers passed can be safely reused. MPI_Iallgather is a collective operation; all processes in the communicator must invoke this routine. Other variants of MPI_Iallgather are MPI_Igather, MPI_Igatherv and MPI_Iallgatherv. Refer to MPI_Allgather to see the blocking counterpart of MPI_Iallgather.
int MPI_Iallgather(void* buffer_send,
int count_send,
MPI_Datatype datatype_send,
void* buffer_recv,
int count_recv,
MPI_Datatype datatype_recv,
MPI_Comm communicator,
MPI_Request* request);