[petsc-dev] Performance of Petsc Cholesky vs LU

Dave Nystrom Dave.Nystrom at tachyonlogic.com
Fri Dec 2 17:20:41 CST 2011


Hi Jed,

I tried your suggestion below and it made a huge improvement.  Instead of
taking about 6x as long per linear solve as using LU, it now takes between
35% to 80% longer than LU depending on which of the different linear solves
I'm measuring.  So that is a big improvement.  Is there a reason why cholesky
is not roughly the same as LU or perhaps a bit faster?

On a different note, all of my linear systems are sparse banded systems as a
result of the problem being discretized on a 2d structured grid.  When I
input the matrix elements to petsc, does petsc do any sort of analysis to
figure out that my system is a sparse banded system?  Does petsc do the LU or
Cholesky solve using other packages such as lapack or mkl/acml to do the band
solve?  If not, would it be more reasonable for me to also interface my code
to lapack and/or mkl/acml for the occasions where a direct band solve makes
sense?

Thanks,

Dave Nystrom writes:
 > Jed Brown writes:
 >  > On Tue, Nov 29, 2011 at 23:53, Dave Nystrom <dnystrom1 at comcast.net> wrote:
 >  > 
 >  > > I have a resistive mhd code that I have recently interfaced to petsc which
 >  > > has 7 linear solves that are all symmetric.  I recently tried using -pc_type
 >  > > cholesky -ksp_type preonly for a run and found that it was taking about 6
 >  > > times as long per linear solve as when I was using -pc_type lu -ksp_type
 >  > > preonly.
 >  > 
 >  > Try -pc_factor_mat_ordering_type nd
 >  > 
 >  > > I was wondering if that was reasonable behavior.  I would not have
 >  > > thought that using a cholesky direct solve would take longer than an LU
 >  > > direct solve in petsc for the serial case and was hoping it would be
 >  > > faster.  Does this behavior seem reasonable?
 >  > 
 >  > Try this:
 >  > 
 >  > -pc_type cholesky -pc_factor_mat_ordering_type nd
 > 
 > Thanks.  I'll give this a try and report back on the results.
 > 
 >  > Barry, why is natural ordering still the default for Cholesky? It is so
 >  > slow that it is worthless.



More information about the petsc-dev mailing list