[petsc-users] Can I eliminate all mallocs in parallel matrix assembly?

Matthew Knepley knepley at gmail.com
Wed Oct 16 10:18:01 CDT 2013


On Wed, Oct 16, 2013 at 10:10 AM, Markus Berndt <berndt at lanl.gov> wrote:

> I am setting MAT_NEW_NONZERO_ALLOCATION_ERR to PETSC_FALSE, the PETSc
> version is 3.3-p6.
>
> Thanks for clarifying this. Just to make sure I understand correctly, by
> providing the correct values in d_nnz and o_nnz I should always be able to
> avoid any mallocs in matrix assembly?
>

Yes.

   Matt


> I will dig in with a debugger as you suggest
>
> Thanks
>
> - Markus
>
>
> On 10/16/2013 08:57 AM, Jed Brown wrote:
>
>> Markus Berndt <berndt at lanl.gov> writes:
>>
>>  I am trying to minimize the memory footprint of an application by
>>> specifying exactly how many nonzeros are needed per row of the matrix. I
>>> am pretty sure that I am correctly calculating these memory requirements
>>> for the diagonal and off diagonal parts of the parallel matrix (I am
>>> using MatCreateAIJ).
>>>
>> Either you have called another function later that clears the
>> preallocation information or the information you provided is incorrect.
>>
>> What version of PETSc are you using?  We currently set
>> MAT_NEW_NONZERO_ALLOCATION_ERR by default so you should get an error
>> when a new nonzero triggers allocation.  You can catch that in a
>> debugger and figure out why there are more nonzeros than you allocated
>> for.
>>
>
> --
> Markus Berndt - CCS-2 - LANL - 505-665-4711
>
>


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


More information about the petsc-users mailing list