Hi Allen,
Sorry for the confusion, your application doesn't use non-blocking
communications, so the receive buffers are still valid after you call
MPI_Recv_init, that's why the first two printf didn't complain. But in
MPI_Wait, it still checks the buffer, and make it invalid after packing
Hi Shiqing:
That is very clever to invalidate the buffer memory until the comm
completes! However, I guess I'm still confused by my results. Lines 30
and 31 identified by valgrind are the lines after the Wait, and, if I
comment out the prints before the Wait, I still get the valgrind errors
on the
Hi Allen,
The invalid reads come from line 30 and 31 of your code, and I guess
they are the two 'printf's before MPI_Wait.
In Open MPI, when memchecker is enabled, OMPI marks the receive buffer
as invalid internally, immediately after receive starts for MPI semantic
checks, in this case, it
Hi:
I'm trying to use the memchecker/valgrind capability of OpenMPI 1.3.3 to
help debug my MPI application. I noticed a rather odd thing: After
Waiting on a Recv Request, valgrind declares my receive buffer as
invalid memory. Is this just a fluke of valgrind, or is OMPI doing
something internally?