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 

Reply via email to