[mpich-discuss] MPI_Iprobe bug in MPICH for BGQ?

Antonio J. Peña apenya at anl.gov
Thu Nov 20 16:50:06 CST 2014


 

Hi Florin,

 

I don’t think you’re hitting any bug, and I’d say both behaviors are
correct. Note that when you do a sleep the MPI implementation is not making
any progress, so if the Isend call didn’t push the message immediately to
the network, which is likely to be more the case on an HPC network than on a
socket-based one, the sleep is unproductive, and so the Iprobe returns
nothing arrived.

 

Best,

  Toni

--------------------------------------------------------------

Antonio J. Peña

Postdoctoral Appointee

Mathematics and Computer Science Division (MCS)

Argonne National Laboratory

9700 S. Cass Avenue

Argonne, IL 60439

Building 340 - Office 3148

apenya at mcs.anl.gov

(+1) 630-252-7928

 

From: Isaila, Florin D. [mailto:fisaila at mcs.anl.gov] 
Sent: Thursday, November 20, 2014 4:20 PM
To: mpich-discuss at mcs.anl.gov
Subject: [mpich-discuss] MPI_Iprobe bug in MPICH for BGQ?

 

Hi, 

when I run the program from below on 1 node on BGQ (Vesta), the message is
not received (flag is 0). However on a Ubuntu, the message is received (flag
is non-zero). 

If I add another Iprobe (uncomment the Iprobe in the code below) the message
is received on both BGQ and Ubuntu. Note that the program sleeps for 1
second after the Isend. Is it a bug? 

This happens for both MPICH-3.1.3 and MPICH-3.1.


#include "mpi.h"
#include <stdio.h>
#include <unistd.h>

int main(int argc, char **argv)
{
  int send_int, recv_int, tag, flag;
  MPI_Status status;
  MPI_Request req;

  MPI_Init(&argc, &argv);

  tag = 0;
  send_int = 100;
  MPI_Isend(&send_int, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req );
  sleep(1);

  MPI_Iprobe(MPI_ANY_SOURCE , MPI_ANY_TAG, MPI_COMM_WORLD, &flag, &status );
  //MPI_Iprobe(MPI_ANY_SOURCE , tag, MPI_COMM_WORLD, &flag, &status );
  if (flag) {
    MPI_Recv( &recv_int, 1, MPI_INT, MPI_ANY_SOURCE, tag, MPI_COMM_WORLD,
&status);
    printf("Received = %d\n", recv_int);
  }
  else
    printf("Message not received yet");

  MPI_Waitall(1, &req, MPI_STATUSES_IGNORE);

  MPI_Finalize();
  return 0;
}

Thanks
Florin

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mpich.org/pipermail/discuss/attachments/20141120/3e90d4d5/attachment.html>
-------------- next part --------------
_______________________________________________
discuss mailing list     discuss at mpich.org
To manage subscription options or unsubscribe:
https://lists.mpich.org/mailman/listinfo/discuss


More information about the discuss mailing list