MatCreateMPIAIJ Pre-allocation Query

Tim Stitt timothy.stitt at ichec.ie
Sun Jun 17 10:33:02 CDT 2007


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.

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)




More information about the petsc-users mailing list