Hi all,
I have a MPI_Isend/MPI_Recv problem in a multi-thread program.
In the program:
The first machine has one thread does some computation and call MPI_Isend
to send buffer to the second machine, and another thread is always trying
toMPI_Recv data from the second machine. And the first thread will MPI_Wait its
last MPI_Isend to complete before call MPI_Isend again.
The second machine does the exact same thing.
Then I got the result that :
The first machine:
Thread 0 : MPI_Isend data to the second machine successfully. but blocked
in MPI_Wait because last MPI_Isend did not complete.
Thread 1 : try to MPI_Recv data from the second machine, but no data and it
blocked.
The second machine:
Thread 0 : MPI_Isend data to the first machine successfully. but blocked in
MPI_Wait because last MPI_Isend did not complete.
Thread 1 : try to MPI_Recv data from the first machine, but no data and it
blocked.
Does anyone have any ideas? I appreciated it very much, because I have
tracked the problem for two days but no progress.
Eason Zhao