[petsc-users] about speed

Barry Smith bsmith at mcs.anl.gov
Tue Jul 27 10:26:09 CDT 2010


On Jul 27, 2010, at 10:11 AM, Xuan YU wrote:

> 
> On Jul 27, 2010, at 10:47 AM, Barry Smith wrote:
> 
>> 
>>  What happens when you use sundials from PETSc. Use -ts_type sundials? Run also with -log_summary and compare the number of function evaluations, timesteps etc
>> 
> 
> I did use sundials from PETSc. I used Sundials directly. I though Petsc may much faster than sundails, so I tried Petsc. 

   But you can use sundials directly from PETSc and then you can make a comparison to see why sundials is much faster.

   Barry

> 
> 
> 
> 
>>  Without knowing more information about what sundials/cvode is doing there is no way to know why it is much faster. Could be larger time-steps, less function evaluations, etc. 
>> 
> 
> 
>>   Barry
>> 
>> On Jul 27, 2010, at 8:22 AM, Xuan YU wrote:
>> 
>>> 
>>> On Jul 26, 2010, at 9:51 PM, Barry Smith wrote:
>>> 
>>>> 
>>>> 1) The function evaluations are taking a lot of time; the problem is not with the Jacobian differencing it is that each function evaluation needed by the differencing is slow
>>>> 
>>> 
>>> When I use cvode solve the same preoblem, function evaluations takes 41.42% of total time. And the total time consumption is much less than Petsc.( 5.657seconds VS 2 minutes 33.726 seconds)
>>> 
>>> 
>>> 
>>> 
>>>> 2) There are a huge number of SNESFunctionEvaluations, much much more then I would expect, like 10 per nonlinear solve.
>>>> 
>>> 
>>> What is the possible reason for this case?
>>> 
>>> 
>>> 
>>>> Barry
>>>> 
>>>> 
>>>> On Jul 26, 2010, at 5:50 PM, Xuan YU wrote:
>>>> 
>>>>> 
>>>>> On Jul 26, 2010, at 3:53 PM, Barry Smith wrote:
>>>>> 
>>>>>> 
>>>>>> ./configure an optimized version of PETSc (that is with the ./configure flag of --with-debugging=0) and run with -log_summary to get a summary of where it is spending the time. This will give you a better idea of why it is taking so long.
>>>>> 
>>>>> Does my log summary means the finite difference Jacobian approximation is not good? Should I write analytic jacobian function(that will be a huge amount of work)?
>>>>> 
>>>>> 
>>>>> 
>>>>> <Picture 3.png>
>>>>> <Picture 4.png>
>>>>> 
>>>>> 
>>>>> <Picture 5.png>
>>>>>> 
>>>>>> Barry
>>>>>> 
>>>>>> On Jul 26, 2010, at 2:49 PM, Xuan YU wrote:
>>>>>> 
>>>>>>> Hi,
>>>>>>> 
>>>>>>> I am using TS solving a nonlinear problem. I created an approximate data structure for Jacobian matrix to be used with matcoloring, my MatFDColoringView is like this:
>>>>>>> <Picture 1.png>
>>>>>>> 
>>>>>>> But the speed of code is too slow than what I expected. Only 10 time step costs 11seconds!
>>>>>>> 
>>>>>>> What's wrong with my code? How can I speed up?
>>>>>>> 
>>>>>>> Thanks!
>>>>>>> 
>>>>>>> This is the ts_view result.
>>>>>>> 
>>>>>>> TS Object:
>>>>>>> type: beuler
>>>>>>> maximum steps=100
>>>>>>> maximum time=10
>>>>>>> total number of nonlinear solver iterations=186
>>>>>>> total number of linear solver iterations=423
>>>>>>> SNES Object:
>>>>>>> type: ls
>>>>>>> line search variant: SNESLineSearchCubic
>>>>>>> alpha=0.0001, maxstep=1e+08, minlambda=1e-12
>>>>>>> maximum iterations=50, maximum function evaluations=10000
>>>>>>> tolerances: relative=1e-08, absolute=1e-50, solution=1e-08
>>>>>>> total number of linear solver iterations=1
>>>>>>> total number of function evaluations=19
>>>>>>> KSP Object:
>>>>>>> type: gmres
>>>>>>>   GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
>>>>>>>   GMRES: happy breakdown tolerance 1e-30
>>>>>>> maximum iterations=10000, initial guess is zero
>>>>>>> tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
>>>>>>> left preconditioning
>>>>>>> using PRECONDITIONED norm type for convergence test
>>>>>>> PC Object:
>>>>>>> type: ilu
>>>>>>>   ILU: out-of-place factorization
>>>>>>>   0 levels of fill
>>>>>>>   tolerance for zero pivot 1e-12
>>>>>>>   using diagonal shift to prevent zero pivot
>>>>>>>   matrix ordering: natural
>>>>>>>   factor fill ratio given 1, needed 1
>>>>>>>     Factored matrix follows:
>>>>>>>       Matrix Object:
>>>>>>>         type=seqaij, rows=1838, cols=1838
>>>>>>>         package used to perform factorization: petsc
>>>>>>>         total: nonzeros=8464, allocated nonzeros=8464
>>>>>>>         total number of mallocs used during MatSetValues calls =0
>>>>>>>           not using I-node routines
>>>>>>> linear system matrix = precond matrix:
>>>>>>> Matrix Object:
>>>>>>>   type=seqaij, rows=1838, cols=1838
>>>>>>>   total: nonzeros=8464, allocated nonzeros=9745
>>>>>>>   total number of mallocs used during MatSetValues calls =37
>>>>>>>     not using I-node routines
>>>>>>> 
>>>>>>> 
>>>>>>> Xuan YU
>>>>>>> xxy113 at psu.edu
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>>> Xuan YU
>>>>> xxy113 at psu.edu
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>> 
>>>> 
>>> 
>> 
>> 
> 
> Xuan YU (俞烜)
> xxy113 at psu.edu
> 
> 
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20100727/762731c2/attachment.htm>


More information about the petsc-users mailing list