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

Brad Aagaard baagaard at usgs.gov
Mon Mar 27 15:07:48 CDT 2017


Hong,

Yep that was it.

Thanks,
Brad


On 03/27/2017 12:57 PM, Hong wrote:
>
>
> Brad:
> You must call MatDestroySubMatrices(), not MatDestroyMatrices().
> See petsc/src/mat/examples/tests/ex54.c
>
> I'll add it to the help menu of MatCreateSubMatrices().
>
> Hong
>
>
>
>     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
>
>
>




More information about the petsc-dev mailing list