[petsc-users] PCFieldSplit with MatNest

Matthew Knepley knepley at gmail.com
Wed Mar 13 11:10:00 CDT 2019


On Wed, Mar 13, 2019 at 12:04 PM Manuel Colera Rico <m.colera at upm.es> wrote:

> After adding that line the problem gets fixed.
>
> Junchao, I submitted a PR against maint for this as you.

  Thanks,

    Matt

> Regards,
>
> Manuel
>
> ---
> On 3/13/19 3:13 PM, Zhang, Junchao wrote:
>
> Manuel,
>   Could you try to add this line
>      sbaij->free_imax_ilen = PETSC_TRUE;
>  after line 2431 in
> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>
>  PS: Matt, this bug looks unrelated to my VecRestoreArrayRead_Nest fix.
>
> --Junchao Zhang
>
>
> On Wed, Mar 13, 2019 at 9:05 AM Matthew Knepley <knepley at gmail.com> wrote:
>
>> On Wed, Mar 13, 2019 at 9:44 AM Manuel Colera Rico via petsc-users <
>> petsc-users at mcs.anl.gov> wrote:
>>
>>> Yes:
>>>
>>> [ 0]8416 bytes MatCreateSeqSBAIJWithArrays() line 2431 in
>>> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>>> [ 0]8416 bytes MatCreateSeqSBAIJWithArrays() line 2431 in
>>> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>>> [ 0]4544 bytes MatCreateSeqSBAIJWithArrays() line 2431 in
>>> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>>> [ 0]4544 bytes MatCreateSeqSBAIJWithArrays() line 2431 in
>>> /opt/PETSc_library/petsc-3.10.4/src/mat/impls/sbaij/seq/sbaij.c
>>>
>>
>> Junchao, do imax and ilen get missed in the Destroy with the user
>> provides arrays?
>>
>>
>> https://bitbucket.org/petsc/petsc/src/06a3e802b3873ffbfd04b71a0821522327dd9b04/src/mat/impls/sbaij/seq/sbaij.c#lines-2431
>>
>>     Matt
>>
>>
>>> I have checked that I have destroyed all the MatNest matrices and all
>>> the submatrices individually.
>>>
>>> Manuel
>>>
>>> ---
>>>
>>> On 3/13/19 2:28 PM, Jed Brown wrote:
>>> > Is there any output if you run with -malloc_dump?
>>> >
>>> > Manuel Colera Rico via petsc-users <petsc-users at mcs.anl.gov> writes:
>>> >
>>> >> Hi, Junchao,
>>> >>
>>> >> I have installed the newest version of PETSc and it works fine. I just
>>> >> get the following memory leak warning:
>>> >>
>>> >> Direct leak of 28608 byte(s) in 12 object(s) allocated from:
>>> >>       #0 0x7f1ddd5caa38 in __interceptor_memalign
>>> >> ../../../../gcc-8.1.0/libsanitizer/asan/asan_malloc_linux.cc:111
>>> >>       #1 0x7f1ddbef1213 in PetscMallocAlign
>>> >>
>>> (/opt/PETSc_library/petsc-3.10.4/mcr_20190313/lib/libpetsc.so.3.10+0x150213)
>>> >>
>>> >> Thank you,
>>> >>
>>> >> Manuel
>>> >>
>>> >> ---
>>> >>
>>> >> On 3/12/19 7:08 PM, Zhang, Junchao wrote:
>>> >>> Hi, Manuel,
>>> >>>    I recently fixed a problem in VecRestoreArrayRead. Basically, I
>>> >>> added VecRestoreArrayRead_Nest. Could you try the master branch of
>>> >>> PETSc to see if it fixes your problem?
>>> >>>    Thanks.
>>> >>>
>>> >>> --Junchao Zhang
>>> >>>
>>> >>>
>>> >>> On Mon, Mar 11, 2019 at 6:56 AM Manuel Colera Rico via petsc-users
>>> >>> <petsc-users at mcs.anl.gov <mailto:petsc-users at mcs.anl.gov>> wrote:
>>> >>>
>>> >>>      Hello,
>>> >>>
>>> >>>      I need to solve a 2*2 block linear system. The matrices A_00,
>>> A_01,
>>> >>>      A_10, A_11 are constructed separately via
>>> >>>      MatCreateSeqAIJWithArrays and
>>> >>>      MatCreateSeqSBAIJWithArrays. Then, I construct the full system
>>> matrix
>>> >>>      with MatCreateNest, and use MatNestGetISs and PCFieldSplitSetIS
>>> to
>>> >>>      set
>>> >>>      up the PC, trying to follow the procedure described here:
>>> >>>
>>> https://www.mcs.anl.gov/petsc/petsc-current/src/snes/examples/tutorials/ex70.c.html
>>> .
>>> >>>
>>> >>>      However, when I run the code with Leak Sanitizer, I get the
>>> >>>      following error:
>>> >>>
>>> >>>
>>> =================================================================
>>> >>>      ==54927==ERROR: AddressSanitizer: attempting free on address
>>> which
>>> >>>      was
>>> >>>      not malloc()-ed: 0x627000051ab8 in thread T0
>>> >>>           #0 0x7fbd95c08f30 in __interceptor_free
>>> >>>      ../../../../gcc-8.1.0/libsanitizer/asan/asan_malloc_linux.cc:66
>>> >>>           #1 0x7fbd92b99dcd in PetscFreeAlign
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x146dcd)
>>> >>>           #2 0x7fbd92ce0178 in VecRestoreArray_Nest
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x28d178)
>>> >>>           #3 0x7fbd92cd627d in VecRestoreArrayRead
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x28327d)
>>> >>>           #4 0x7fbd92d1189e in VecScatterBegin_SSToSS
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x2be89e)
>>> >>>           #5 0x7fbd92d1a414 in VecScatterBegin
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x2c7414)
>>> >>>           #6 0x7fbd934a999c in PCApply_FieldSplit
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa5699c)
>>> >>>           #7 0x7fbd93369071 in PCApply
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0x916071)
>>> >>>           #8 0x7fbd934efe77 in KSPInitialResidual
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa9ce77)
>>> >>>           #9 0x7fbd9350272c in KSPSolve_GMRES
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xaaf72c)
>>> >>>           #10 0x7fbd934e3c01 in KSPSolve
>>> >>>
>>> (/opt/PETSc_library/petsc/manuel_OpenBLAS_petsc/lib/libpetsc.so.3.8+0xa90c01)
>>> >>>
>>> >>>      Disabling Leak Sanitizer also outputs an "invalid pointer"
>>> error.
>>> >>>
>>> >>>      Did I forget something when writing the code?
>>> >>>
>>> >>>      Thank you,
>>> >>>
>>> >>>      Manuel
>>> >>>
>>> >>>      ---
>>> >>>
>>>
>>
>>
>> --
>> 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
>>
>> https://www.cse.buffalo.edu/~knepley/
>> <http://www.cse.buffalo.edu/~knepley/>
>>
>

-- 
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

https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190313/edad3795/attachment-0001.html>


More information about the petsc-users mailing list