[petsc-users] Customizeing MatSetValuesBlocked(...)

Jinquan Zhong jzhong at scsolutions.com
Wed Aug 8 13:37:33 CDT 2012

Dear PETSc folks,

I have an emerging need to resolve the performance issue in building sparse matrix in PETSc.

I am are currently having some performance issues in building the sparse matrix in PETSc.  I am trying to input the inverted matrix from ScaLAPACK into PETSc.  This matrix is partitioned into series of submatrices with indices identified as block-cyclically distributed pattern.

Here are the options I have tested in PETSc to build them into PETSc and their limitations:

1.       MatSetValue(s)(...) is very easy to use.  However, the assembling process is extremely slow and expensive;

2.       MatSetValuesBlocked(..) can speed up the assembly.  However, it is not well-fit for block-cyclically distributed matrices; and

3.       MatCreateMPIAIJwithArrays(...) seems to be promising.  However, it is not straightforward to use for block-cyclically distributed matrices.

4.       Customizeing MatSetValuesBlocked(...) such that we can specify the indices for (*mat->ops->setvaluesblocked)(...).  However, I have trouble to locate proper line for


The question is what other options you have to resolve this performance issue? From your experience, do you guys have a worked example to build PETSc sparse matrix from block-cyclically distributed matrices obtained from ScaLAPACK with good performance?

I appreciate your inputs on this issue.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120808/cb995c79/attachment.html>

More information about the petsc-users mailing list