[petsc-dev] MatCreateSubMatrices in parallel with n=0 on a process causes memory leak

Hong hzhang at mcs.anl.gov
Mon Mar 27 14:57:35 CDT 2017

You must call MatDestroySubMatrices(), not MatDestroyMatrices().
See petsc/src/mat/examples/tests/ex54.c

I'll add it to the help menu of MatCreateSubMatrices().


> In PyLith we call MatCreateSubMatrices() and MatDestroyMatrices() with
> potentially different numbers of submatrices on each process. If each
> process has a nonzero number of submatrices things appear to be working
> fine. If a process has zero submatrices, I am getting a memory leak on that
> process (as reported by -malloc_dump). I did not get this behavior with
> PETSc 3.7.2 and earlier with MatGetSubMatrices() and MatDestroyMatrices().
> Do I need to do something special when calling MatCreateSubMatrices() or
> MatDestroyMatrices() when the number of submatrices on a process is zero?
> The log with the petsc log summary and malloc dump output is attached.
> Thanks,
> Brad
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20170327/16fdd196/attachment.html>

More information about the petsc-dev mailing list