SV: Slow MatSetValues
    Barry Smith 
    bsmith at mcs.anl.gov
       
    Fri May 30 22:09:17 CDT 2008
    
    
  
     This is a serious flaw in our user interface, I'm fixing it now  
and our next release will vastly simplify the
handling of external direct solvers and make this problem impossible.
    Barry
On May 30, 2008, at 7:31 AM, Jed Brown wrote:
> 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
    
    
More information about the petsc-users
mailing list