Note there is no progress thread in openmpi 1.10 from a pragmatic point of view, that means that for "large" messages, no data is sent in MPI_Isend, and the data is sent when MPI "progresses" e.g. call a MPI_Test, MPI_Probe, MPI_Recv or some similar subroutine. in your example, the data is transferred after the first usleep completes.
that being said, it takes quite a while, and there could be an issue. what if you use MPI_Send instead () ? what if you send/Recv a large message first (to "warmup" connections), MPI_Barrier, and then start your MPI_Isend ? Cheers, Gilles On Thursday, May 5, 2016, Zhen Wang <tod...@gmail.com> wrote: > Hi, > > I'm having a problem with Isend, Recv and Test in Linux Mint 16 Petra. The > source is attached. > > Open MPI 1.10.2 is configured with > ./configure --enable-debug --prefix=/home/<me>/Tool/openmpi-1.10.2-debug > > The source is built with > ~/Tool/openmpi-1.10.2-debug/bin/mpiCC a5.cpp > > and run in one node with > ~/Tool/openmpi-1.10.2-debug/bin/mpirun -n 2 ./a.out > > The output is in the end. What puzzles me is why MPI_Test is called so > many times, and it takes so long to send a message. Am I doing something > wrong? I'm simulating a more complicated program: MPI 0 Isends data to MPI > 1, computes (usleep here), and calls Test to check if data are sent. MPI 1 > Recvs data, and computes. > > Thanks in advance. > > > Best regards, > Zhen > > MPI 0: Isend of 0 started at 20:32:35. > MPI 1: Recv of 0 started at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:35. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:36. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:37. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:38. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 1: Recv of 0 finished at 20:32:39. > MPI 0: MPI_Test of 0 at 20:32:39. > MPI 0: Isend of 0 finished at 20:32:39. > >