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.
>
>

Reply via email to