MatCreateMPIAIJ Pre-allocation Query

Tim Stitt timothy.stitt at ichec.ie
Sun Jun 17 11:28:13 CDT 2007


Thanks for that Matt...will check it out.

Incidentally, I need to pass a 64-bit integer to MatCreateMPIAIJ. Do I need to 
rebuild PETSc using a 64-bit integer option switch?

Tim. 

On Sunday 17 June 2007 17:07, Matthew Knepley wrote:
> On 6/17/07, Tim Stitt <timothy.stitt at ichec.ie> wrote:
> > Hi All,
> >
> > Currently I am using MatCreateMPIAIJ to create a distributed sparse
> > matrix for use in my parallel sparse eigensolver. If I understand things
> > correctly, it is important to specify the correct pre-allocation values
> > for (o_nz,d_nz) or (o_nnz, d_nnz) respectively to obtain optimum memory
> > usage per node.
> >
> > For information my matrix redistribution routine generates each row in
> > the sparse matrix (associated with a given node) "on-the-fly" and then
> > uses MatSetValues to apply the elements.
> >
> > My question is: does anyone have a standard code template for the
> > calculating the d_nz or d_nnz values (along with o_nz or o_nnz
> > respectively) so that optimum pre-allocation is obtained? Is there a
> > simple way of determining if a given non-zero value in a row is part of
> > the diagonal or off-diagonal regions for a given distributed topology?
> >
> > Any assistance gratefully received.
>
> Basically, you run through the construction algorithm once to calculate
> d_nnz and o_nnz, and then again to set values. You can see my code for
> doing it in preallocateOperator() in src/dm/mesh/mesh.c.
>
>    Matt
>
> > Thanks in advance,
> >
> > Tim.
> >
> > --
> > Dr. Timothy Stitt <timothy_dot_stitt_at_ichec.ie>
> > HPC Application Consultant - ICHEC (www.ichec.ie)
> >
> > Dublin Institute for Advanced Studies
> > 5 Merrion Square - Dublin 2 - Ireland
> >
> > +353-1-6621333 (tel) / +353-1-6621477 (fax) / +353-874195427 (mobile)

-- 
Dr. Timothy Stitt <timothy_dot_stitt_at_ichec.ie>
HPC Application Consultant - ICHEC (www.ichec.ie)

Dublin Institute for Advanced Studies
5 Merrion Square - Dublin 2 - Ireland

+353-1-6621333 (tel) / +353-1-6621477 (fax) / +353-874195427 (mobile)




More information about the petsc-users mailing list