[mpich-discuss] Fwd: [petsc-dev] MPICH from --download-mpich reports inconsistent allocs/frees with valgrind
Raffenetti, Kenneth J.
raffenet at mcs.anl.gov
Thu Jul 25 16:29:22 CDT 2019
Hi Patrick,
Thanks for the report. I am able to reproduce similar behavior on my
machine. I suspect our valgrind client request integration needs fixing.
I have created an issue on github
https://github.com/pmodels/mpich/issues/3945.
Ken
On 7/23/19 8:19 AM, Patrick Sanan via discuss wrote:
> I'm trying to track down the cause of an inconsistency in valgrind's
> heap allocation analysis.
>
> This arose when using the MPICH downloaded by PETSc. To reproduce, I run
> the following and note that the number of allocations and frees are
> different (yet all blocks are reported free).
>
> printf "#include<mpi.h>\nint main(int a,char
> **b){MPI_Init(&a,&b);MPI_Finalize();}" > t.c &&
> $PETSC_DIR/$PETSC_ARCH/bin/mpicc t.c && valgrind ./a.out
>
> ==8578== Memcheck, a memory error detector
> ==8578== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
> ==8578== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
> ==8578== Command: ./a.out
> ==8578==
> ==8578==
> ==8578== HEAP SUMMARY:
> ==8578== in use at exit: 0 bytes in 0 blocks
> ==8578== total heap usage: *1,979 allocs, 1,974 frees*, 4,720,483
> bytes allocated
> ==8578==
> ==8578== All heap blocks were freed -- no leaks are possible
> ==8578==
> ==8578== For counts of detected and suppressed errors, rerun with: -v
> ==8578== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
>
> The above was generated on Ubuntu 18.04.2 LTS, using MPICH 3.3b1 as
> configured in the attached config.log (which was done automatically for
> me by PETSc master).
>
> ---------- Forwarded message ---------
> Von: *Smith, Barry F.* <bsmith at mcs.anl.gov <mailto:bsmith at mcs.anl.gov>>
> Date: Mo., 22. Juli 2019 um 20:24 Uhr
> Subject: Re: [petsc-dev] MPICH from --download-mpich reports
> inconsistent allocs/frees with valgrind
> To: petsc-dev <petsc-dev at mcs.anl.gov <mailto:petsc-dev at mcs.anl.gov>>
> Cc: Patrick Sanan <patrick.sanan at gmail.com
> <mailto:patrick.sanan at gmail.com>>, Balay, Satish <balay at mcs.anl.gov
> <mailto:balay at mcs.anl.gov>>
>
>
>
> Bug report to MPICH.
>
> > On Jul 22, 2019, at 1:22 PM, Balay, Satish via petsc-dev
> <petsc-dev at mcs.anl.gov <mailto:petsc-dev at mcs.anl.gov>> wrote:
> >
> > Hm - I don't think we were monitoring the leaks via valgrind that
> closely.
> >
> > Looking at my old mpich install - I don't see a problem - so likely
> > its an issue with newer versions of mpich.
> >
> > Satish
> >
> > -------
> > balay at sb /home/balay/tmp
> > $ mpichversion
> > MPICH Version: 3.3
> > MPICH Release date: Wed Nov 21 11:32:40 CST 2018
> > MPICH Device: ch3:sock
> > MPICH configure: --prefix=/home/balay/soft/mpich-3.3
> MAKE=/usr/bin/gmake --libdir=/home/balay/soft/mpich-3.3/lib CC=gcc
> CFLAGS=-fPIC -g -O AR=/usr/bin/ar ARFLAGS=cr CXX=g++ CXXFLAGS=-g -O
> -fPIC F77=gfortran FFLAGS=-fPIC -g -O FC=gfortran FCFLAGS=-fPIC -g -O
> --enable-shared --with-device=ch3:sock --with-pm=hydra --enable-fast=no
> --enable-error-messages=all --enable-g=meminit
> > MPICH CC: gcc -fPIC -g -O -O0
> > MPICH CXX: g++ -g -O -fPIC -O0
> > MPICH F77: gfortran -fPIC -g -O -O0
> > MPICH FC: gfortran -fPIC -g -O -O0
> > MPICH Custom Information:
> > balay at sb /home/balay/tmp
> > $ printf "#include<mpi.h>\nint main(int
> a,char**b){MPI_Init(&a,&b);MPI_Finalize();}" > t.c && mpicc t.c &&
> valgrind ./a.out
> > ==9024== Memcheck, a memory error detector
> > ==9024== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
> > ==9024== Using Valgrind-3.15.0 and LibVEX; rerun with -h for
> copyright info
> > ==9024== Command: ./a.out
> > ==9024==
> > ==9024==
> > ==9024== HEAP SUMMARY:
> > ==9024== in use at exit: 0 bytes in 0 blocks
> > ==9024== total heap usage: 1,886 allocs, 1,886 frees, 4,884,751
> bytes allocated
> > ==9024==
> > ==9024== All heap blocks were freed -- no leaks are possible
> > ==9024==
> > ==9024== For lists of detected and suppressed errors, rerun with: -s
> > ==9024== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
> > balay at sb /home/balay/tmp
> >
> >
> >
> > On Mon, 22 Jul 2019, Patrick Sanan via petsc-dev wrote:
> >
> >> It was pointed out to me that valgrind memcheck reports inconsistent
> heap
> >> usage information when running PETSc examples. All blocks are reported
> >> freed, yet the number of allocations and frees are different. My
> guess as
> >> to what's going on is that this is an MPICH issue, as I can
> reproduce the
> >> behavior with a minimal MPI program.
> >>
> >>> From the PETSc perspective, is this a known issue? I'm wondering
> if this
> >> inconsistency was always there, whether it's worth looking into
> more, etc.
> >>
> >> Here's a 1-liner to reproduce, using a PETSc master build with
> >> --download-mpich (though note that this doesn't use anything from PETSc
> >> except the MPICH it builds for you).
> >>
> >> printf "#include<mpi.h>\nint main(int a,char
> >> **b){MPI_Init(&a,&b);MPI_Finalize();}" > t.c &&
> >> $PETSC_DIR/$PETSC_ARCH/bin/mpicc t.c && valgrind ./a.out
> >>
> >> ==14242== Memcheck, a memory error detector
> >> ==14242== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward
> et al.
> >> ==14242== Using Valgrind-3.13.0 and LibVEX; rerun with -h for
> copyright info
> >> ==14242== Command: ./a.out
> >> ==14242==
> >> ==14242==
> >> ==14242== HEAP SUMMARY:
> >> ==14242== in use at exit: 0 bytes in 0 blocks
> >> ==14242== total heap usage: *1,979 allocs, 1,974 frees*, 4,720,483
> bytes
> >> allocated
> >> ==14242==
> >> ==14242== All heap blocks were freed -- no leaks are possible
> >> ==14242==
> >> ==14242== For counts of detected and suppressed errors, rerun with: -v
> >> ==14242== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
> >>
> >
>
>
> _______________________________________________
> 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