[mpich-discuss] multithreaded MPI_IProbe

Biddiscombe, John A. biddisco at cscs.ch
Fri Jul 13 08:40:58 CDT 2012

We have a problem caused by this ...

thread 0
  while (!flag) {
    MPI_Iprobe(MPI_ANY_SOURCE, msg->Tag, comm, &flag, &status);

and thread 1
    status = MPI_Send(msg->Data, msg->Length, MPI_UNSIGNED_CHAR, msg->Dest,
        msg->Tag, comm);

so thread 0 just polls for a message, and thread 1 sends one. We expect thread 1 to block until the message is received, but thread 0, is never returning a true flag so we can't receive it.

Is there a reason for this? Are we doing something wrong (multithreaded MPI_IProbe is not entirely safe), or have we found a bug of some kind?

using mpich2-1.4.1p1 on windows7

mpich2-1.5b2 on linux (fedora 17) and both show the same behaviour.

many thanks



John Biddiscombe,                        email:biddisco @.at.@ cscs.ch


CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07

Via Trevano 131, 6900 Lugano, Switzerland   | Fax:  +41 (91) 610.82.82

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20120713/807c604a/attachment.html>

More information about the mpich-discuss mailing list