[petsc-dev] How can we improve log_view about objects created and destroyed?

Barry Smith bsmith at mcs.anl.gov
Thu Sep 7 16:00:39 CDT 2017


  Example that produces this problem?

> On Sep 1, 2017, at 2:42 AM, Stefano Zampini <stefano.zampini at gmail.com> wrote:
> 
> As it is now, if you create any object and use PetscObjectRegisterDestroy, the output from log_view may be misleading, as it will show something like this
> 
> 
> Memory usage is given in bytes:
> 
> Object Type          Creations   Destructions     Memory  Descendants' Mem.
> Reports information only for process 0.
> 
> --- Event Stage 0: Main Stage
> 
>            Index Set   237            237       310852     0.
>    IS L to G Mapping    53             35        75260     0.
>    Application Order     2              2         2352     0.
>               Vector   617            582      1312048     0.
>       Vector Scatter    41             23        15088     0.
> .....
> 
> 
> In this example, the objects registered for destroy where also composed with l2g maps and scatters. 
> So the user may think of having memory leaks somewhere. But running with -malloc_dump (or  under valgrind --leak-check=full) the output is clean.
> This is because PetscObjectRegisterDestroyAll is called after PetscLogView in PetscFinalize().
> 
> What if the reason to call PetscObjectRegisterDestroyAll after PetscLogView? Just for having PETSC_VIEWER_STDOUT_WORLD available?
> 
> 
> -- 
> Stefano



More information about the petsc-dev mailing list