[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