Preallocating Matrix

Andreas Grassl Andreas.Grassl at
Mon Apr 27 13:08:14 CDT 2009

Satish Balay schrieb:
> Not sure what you mean by "numbers of zero per row"

I actually meant "number of nonzeros per row", but providing the nnz[]-array to
MatSeqAIJSetPreallocation brought only very little speed-up, by the same factor
as preallocating just with nz.

I suppose that I have to provide already the assembled sparse matrix to the
PETSc-routines instead of calculating it element by element, as long as I don't
distribute this calculation over many cpu's.



> Do you mean "number of zeros per row" or "column indices of zeros for
> each row"?. Either way - you should be able to write a single loop
> over this thingy - to compute the required nnz[]
> Satish
> On Thu, 23 Apr 2009, Andreas Grassl wrote:
>> Hello,
>> I'm assembling large matrices giving just the numbers of zero per row and
>> wondering if it is possible to extract the nonzero-structure in array-format it
>> can be fed again into
>> MatSeqAIJSetPreallocation(Mat B,PetscInt nz,const PetscInt nnz[])
>> to detect the bottleneck?
>> cheers
>> ando

 /"\                               Grassl Andreas
 \ /    ASCII Ribbon Campaign      Uni Innsbruck Institut f. Mathematik
  X      against HTML email        Technikerstr. 13 Zi 709
 / \                               +43 (0)512 507 6091

More information about the petsc-users mailing list