Hi,

I would like to implement a software that communication and computation are performed simultaneously. That is, while communication for the current data is done, the next data is computed overlapping with the communication.

I expected asynchronous MPI such as Iallgather() would make the communication and computation overlapped. But it seems like the communication is not started until I call MPI_Wait(). 

With a simple toy application, I compared the two cases. MPI_IAllgather + MPI_Wait() versus MPI_Allgather. The issue is that MPI_Wait() takes almost same time with MPI_Allgather. I can guess the communication is just started when I call MPI_Wait. 

My question is, could asynchronous MPI functions work background so that computing cores do other works while the communication is performed?

Thank you.

Best,
Sunwoo Lee