I noticed that not all my MPI_Isend/MPI_IRecv were being executed. I think it may perhaps be either the order in which I do my send and receive or the fact that the code doesn\'
For every call to a non-blocking MPI call, there has to be a corresponding wait. You are missing one wait per process.