[petsc-users] question on matrix preallocation

Michael Povolotskyi mpovolot at gmail.com
Thu Jul 11 16:15:07 CDT 2024


Thanks a lot, I'm using petsc since 2004

On 7/11/2024 5:09 PM, Barry Smith wrote:
>
>    The default behavior previously was the flip of the current 
> behavior. By the way, we also now have much better performance if you 
> do not preallocate (not as good as with perfect preallocation, but 
> much better than in ancient history; you simply do not preallocate to 
> get this behavior).
>
>   Barry
>
>
>> On Jul 11, 2024, at 4:51 PM, Michael Povolotskyi <mpovolot at gmail.com> 
>> wrote:
>>
>> Thanks a lot.
>>
>> Is this a new feature? It seems to me that 10 years ago the default 
>> behavior was different.
>>
>> Michael.
>>
>> On 7/11/2024 4:04 PM, Barry Smith wrote:
>>>
>>>  By default, if you preallocate but not enough, it will 
>>> automatically error unless you call 
>>> MatSetOption(mat,MAT_NEW_NONZERO_ALLOCATION_ERR,PETSC_FALSE);
>>>
>>>
>>>> On Jul 11, 2024, at 4:02 PM, Michael Povolotskyi 
>>>> <mpovolot at gmail.com> wrote:
>>>>
>>>> Thank you,
>>>>
>>>> let me clarify my question.
>>>>
>>>> Imagine that I have a sparse matrix, and the number of non zero 
>>>> entries that I specified is too small.
>>>>
>>>> I know that I can insert values in it but it will be slow.
>>>>
>>>> I remember there was a way to make PETSC to throw an error if a 
>>>> number of non zero elements per row was bigger that was 
>>>> preallocated. Then I could fix my algorithm. Is this functionality 
>>>> available with the current version?
>>>>
>>>> Michael.
>>>>
>>>> On 7/11/2024 3:55 PM, Barry Smith wrote:
>>>>>
>>>>>   MatGetInfo() is the programmatic interface used to get this 
>>>>> information.  You can also run a proggram with -info and grep for 
>>>>> malloc.
>>>>>
>>>>>   Barry
>>>>>
>>>>>
>>>>>> On Jul 11, 2024, at 1:55 PM, Michael Povolotskyi 
>>>>>> <mpovolot at gmail.com> wrote:
>>>>>>
>>>>>> This Message Is From an External Sender
>>>>>> This message came from outside your organization.
>>>>>> Hello,
>>>>>>
>>>>>> is there an option in PETSC that allows to check at run time if a sparse
>>>>>> matrix has been preallocated correctly? I remember there was something
>>>>>> like that is the older versions, but cannot find it now.
>>>>>>
>>>>>> The goal is to get rid of any possible time overhead due to dynamic
>>>>>> preallocation.
>>>>>>
>>>>>> Thank you,
>>>>>>
>>>>>> Michael.
>>>>>>
>>>>>>
>>>>>
>>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20240711/94679308/attachment-0001.html>


More information about the petsc-users mailing list