[petsc-dev] [petsc-users] MatPreallocatorPreallocate segfault with PETSC 3.16

Stefano Zampini stefano.zampini at gmail.com
Tue Feb 1 09:59:54 CST 2022


Il giorno mar 1 feb 2022 alle ore 18:34 Jed Brown <jed at jedbrown.org> ha
scritto:

> Patrick Sanan <patrick.sanan at gmail.com> writes:
>
> > Am Di., 1. Feb. 2022 um 16:20 Uhr schrieb Jed Brown <jed at jedbrown.org>:
> >
> >> Patrick Sanan <patrick.sanan at gmail.com> writes:
> >>
> >> > Sorry about the delay on this. I can reproduce.
> >> >
> >> > This regression appears to be a result of this optimization:
> >> > https://gitlab.com/petsc/petsc/-/merge_requests/4273
> >>
> >> Thanks for tracking this down. Is there a reason to prefer preallocating
> >> twice
> >>
> >>    ierr =
> >> MatPreallocatorPreallocate(preallocator,PETSC_TRUE,A);CHKERRQ(ierr);
> >>    ierr =
> >>
> MatPreallocatorPreallocate(preallocator,PETSC_TRUE,A_duplicate);CHKERRQ(ierr);
> >>
> >> versus using MatDuplicate() or MatConvert()?
> >>
>

Jed

this is not the point. Suppose you pass around only a preallocator, but do
not pass around the matrices. Reusing the preallocator should be allowed.

>
> > Maybe if your preallocation is an overestimate for each of two different
> > post-assembly non-zero structures in A and A_duplicate?
>
> Even then, why not preallocate A and duplicate immediately, before
> compressing out zeros?
>


-- 
Stefano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220201/2015926c/attachment.html>


More information about the petsc-dev mailing list