[petsc-users] PCFieldSplit with MatNest

Manuel Colera Rico m.colera at upm.es
Wed Mar 13 11:04:28 CDT 2019


After adding that line the problem gets fixed.

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 
> <mailto: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 <mailto: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
>         <mailto: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>
>         <mailto: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/>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20190313/34766afd/attachment.html>


More information about the petsc-users mailing list