Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

Subject: [OMPI users] MPI_Isend/MPI_Recv problem in a multi-thread program
From: ÕÔÓ¡ (yin_zhao_at_[hidden])
Date: 2012-12-05 06:20:04


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