[petsc-users] preallocation and matrix storage
Tabrez Ali
stali at geology.wisc.edu
Tue Jan 17 14:29:58 CST 2012
Hello
If we are not doing exact pre-allocation (I know this is despised by
PETSc developers) then it seems that we need to specify an nz (per row)
value of at least "max nonzeros in any row".
For example with nz=18 I do get 0 mallocs
[0] MatAssemblyEnd_SeqAIJ(): Matrix size: 5236 X 5236; storage space:
22728 unneeded,71520 used
[0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 0
[0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 18
But with nz=16 I get 10 mallocs
[0] MatAssemblyEnd_SeqAIJ(): Matrix size: 5236 X 5236; storage space:
12406 unneeded,71520 used
[0] MatAssemblyEnd_SeqAIJ(): Number of mallocs during MatSetValues() is 10
[0] MatAssemblyEnd_SeqAIJ(): Maximum nonzeros in any row is 18
So the question is that why is the number of mallocs 10 (with nz=16)
when the total storage space has been overestimated (because it says
"12406 unneeded")?
Or does "unneeded" mean something else?
Thanks in advance
Tabrez
More information about the petsc-users
mailing list