Calling MatMPIAIJSetPreallocation again after MatSetFromOptions fixed the 
problem! Thanks.

KR, Lars

-----Oprindelig meddelelse-----
Fra: owner-petsc-users at mcs.anl.gov [mailto:owner-petsc-users at mcs.anl.gov] 
P? vegne af Jed Brown
Sendt: 30. maj 2008 14:31
Til: petsc-users at mcs.anl.gov
Emne: Re: SV: Slow MatSetValues

On Fri 2008-05-30 13:44, Lars Rindorf wrote:
> Hi everybody
> 
> Thanks for all the suggestions and help. The problem is of a bit different 
> nature. I use only direct solvers, so I give the options "-ksp_type preonly 
> -pc_type lu" to make a standard LU factorization. This works fine without any 
> problems. If I additionally set "-mat_type umfpack" to use umfpack then 
> MatSetValues is very, very slow (about 50 times slower). If, as a test, I 
> call MatAssemblyBegin and MatAssemblyEnd before MatSetValues, and only use 
> the lu (no umfpack) then the performance is very similarly slow.

I've seen this problem when preallocation information is lost by changing the 
matrix type.  Try putting MatSeqAIJSetPreallocation() and/or (it doesn't hurt 
to do both) MatMPIAIJSetPreallocation() after MatSetFromOptions().  This will 
preallocate for any matrix type that inherits from these two types (which I 
think is anything you might use).

Jed


Reply via email to