SeqSBAIJ with cholesky

Julian julvar at tamu.edu
Wed Oct 25 11:47:44 CDT 2006


Hong,

Thanks for the reply. Can you please clarify some things:

I used MatCreateSeqSBAIJ to create the sbaij matrix. Does this mean that the
entire matrix is stored under one processor? Does the 'seq' in
MatCreateSeqSBAIJ stand for sequential, meaning "not parallel"?
If that is the case, can you tell me how I should write it so that, it
creates a parallel matrix if I'm using more than one processor(that would be
more efficient, right?), and create a sequential matrix if I am using only
one processor?

> I wrote matrix reordering for seqsbaij matrix format, but 
> found it has bug when apply cholesky factorization to it.
> Considering its performance, I feel that the matrix 
> reordering for sbaij matrix should be avoided, and replaced 
> by using aij matrix.
> 
> The matrix reordering for sbaij matrix requires reordering of 
> entire matrix data structure (rows and columns!), causing 
> wild data accessing and communication, and only gains saving 
> half of the original sparse matrix entries.
>             ^^^^^^^^^^^^^^^^^^^^^
> Using aij matrix format, the matrix reordering can be done eficiently.
> We provide icc and cholesky matrix factorizations for aij 
> format, e.g., preconditioners are stored in sbaij format 
> (half of matrix entries).
> Note, matrix factors are in general denser than the original 
> sparse matrix.

I will check out using the aij matrix but having to store almost double the
matrix entries seem inefficient to me. 
I just took a quick look at the MUMPS solver. It seems like they do have
support for distributed direct solving of symmetric matrices with ordering.
So, this kind of thing has been done before.. But I don't know about the
efficiency because I haven't use MUMPS before.. But I do have a symmetric
direct solver (using 1 processor) in my fem code that uses ordering and
right now it is a LOT faster that the symmetric solver in petsc. I'm
guessing that is because petsc does not support reordering. 

> icc/cholesky preconditioners save half of storage than ilu/lu 
> preconditioner and might be faster. If your have symmetric 
> matrix, use aij format for your matrix, and apply 
> icc/cholesky preconditioner.
> You can apply any symmetric ordering efficiently to the aij 
> matrix to reduce the fillings in matrix factorization.

Can you please clarify that? What do you mean by symmetric ordering?

> Let us know if you think differently,

I would certainly prefer symmetric solvers that can do reordering. But I'll
let you know what I come up with when I use aij with cholesky.

Thanks,
Julian.




More information about the petsc-users mailing list