On Wed, Oct 16, 2013 at 10:10 AM, Markus Berndt <[email protected]> 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 <[email protected]> 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
