|
From: tom f. <tf...@al...> - 2010-01-31 06:52:48
|
Matt Funk <mat...@gm...> writes:
> {
> <insert_a_suppression_name_here>
> Memcheck:Param
> write(buf)
> fun:__write_nocancel
> fun:ibv_cmd_create_cq
> fun:mthca_create_cq
> fun:ibv_create_cq@@IBVERBS_1.1
> fun:rdma_iba_hca_init
> fun:MPIDI_CH3I_RMDA_init
> fun:MPIDI_CH3_Init
> fun:MPID_Init
> fun:MPIR_Init_thread
> fun:PMPI_Init
> fun:main
> }
>
>
> is NOT suppressed by the following statement (in my suppression file):
>
> {
> name5
> Memcheck:Param
> ...
> fun:*
> ...
> fun:PMPI_Init
> ...
> fun:main
> }
Without checking, "..." probably means "one or more" functions, not
"zero or more" functions, as you seem to be using here.
"fun:*" seems a little silly, given the "..."s, as well.
-tom
|
|
From: Julian S. <js...@ac...> - 2010-01-31 09:12:57
|
On Sunday 31 January 2010, tom fogal wrote: > Matt Funk <mat...@gm...> writes: > > is NOT suppressed by the following statement (in my suppression file): It might be that it doesn't match because you deleted the "write(buf)" part. Debugging MPI apps with Valgrind is certainly possible, but you need to be a bit more careful than usual. See http://www.valgrind.org/docs/manual/mc-manual.html#mc-manual.mpiwrap If you have a network card mapped into user space, as is normally the case for high performance MPI implementations, you will need to use the --ignore-ranges= option to make Memcheck ignore accesses to the card, else you will get thousands of false errors. Although a better approach is to ask the MPI implementation just to use standard TCP/IP sockets and no shared memory. It's slower but it makes it easier to get a zero noise level. At least for OpenMPI, that may be possible by giving the flags "--mca btl tcp,self" to mpirun. J |