[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