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
