[petsc-users] false-positive leak report in log_view?
Mohammad Mirzadeh
mirzadeh at gmail.com
Wed Aug 3 13:05:47 CDT 2016
On Wed, Aug 3, 2016 at 10:59 AM, Matthew Knepley <knepley at gmail.com> wrote:
> On Tue, Aug 2, 2016 at 12:40 PM, Mohammad Mirzadeh <mirzadeh at gmail.com>
> wrote:
>
>> I often use the memory usage information in log_view as a way to check on
>> memory leaks and so far it has worked perfect. However, I had long noticed
>> a false-positive report in memory leak for Viewers, i.e. destruction count
>> is always one less than creation.
>>
>
> Yes, I believe that is the Viewer being used to print this information.
>
That makes sense.
>
>
>> Today, I noticed what seems to be a second one. If you use VecView to
>> write the same DA to vtk, i.e. call VecView(A, vtk); twice, it also report
>> a memory leak for vectors, vecscatters, dm, etc. I am calling this a
>> false-positive since the code is valgrind-clean.
>>
>> Is this known/expected?
>>
>
> The VTK viewers have to hold everything they output until they are
> destroyed since the format does not allow immediate writing.
> I think the VTK viewer is not destroyed at the time of this output. Can
> you make a small example that does this?
>
Here's a small example that illustrates the issues
#include <petsc.h>
int main(int argc, char *argv[]) {
PetscInitialize(&argc, &argv, NULL, NULL);
DM dm;
DMDACreate2d(PETSC_COMM_WORLD, DM_BOUNDARY_NONE, DM_BOUNDARY_NONE,
DMDA_STENCIL_BOX,
-10, -10, PETSC_DECIDE, PETSC_DECIDE, 1, 1, NULL, NULL,
&dm);
// DMDASetUniformCoordinates(dm, -1, 1, -1, 1, 0, 0);
Vec sol;
DMCreateGlobalVector(dm, &sol);
VecSet(sol, 0);
PetscViewer vtk;
PetscViewerVTKOpen(PETSC_COMM_WORLD, "test.vts", FILE_MODE_WRITE, &vtk);
VecView(sol, vtk);
// VecView(sol, vtk);
PetscViewerDestroy(&vtk);
DMDestroy(&dm);
VecDestroy(&sol);
PetscFinalize();
return 0;
}
If you uncomment the second VecView you get reports for leaks in VecScatter
and dm. If you also uncomment the DMDASetUniformCoordinates, and use both
VecViews, you also get a leak report for Vecs ... its quite bizarre ...
> I have switched to HDF5 and XDMF due to the limitations of VTK format.
>
>
I had used XDMF + raw binary in the past and was satisfied with the result.
Do you write a single XDMF as a "post-processing" step when the simulation
is finished? If I remember correctly preview could not open xmf files as
time-series.
> Thanks,
>
> Matt
>
>
>> Here's the relevant bit from log_view:
>>
>> --- Event Stage 0: Main Stage
>>
>> Vector 8 7 250992 0.
>> Vector Scatter 2 0 0 0.
>> Distributed Mesh 2 0 0 0.
>> Star Forest Bipartite Graph 4 0 0 0.
>> Discrete System 2 0 0 0.
>> Index Set 4 4 83136 0.
>> IS L to G Mapping 2 0 0 0.
>> Viewer 2 1 784 0.
>>
>> ========================================================================================================================
>>
>>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20160803/5e8c113d/attachment-0001.html>
More information about the petsc-users
mailing list