[petsc-users] about speed

Xuan YU xxy113 at psu.edu
Tue Jul 27 10:11:55 CDT 2010


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.




>  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/97435db0/attachment-0001.htm>


More information about the petsc-users mailing list