[petsc-users] about speed
Barry Smith
bsmith at mcs.anl.gov
Mon Jul 26 20:51:16 CDT 2010
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
2) There are a huge number of SNESFunctionEvaluations, much much more then I would expect, like 10 per nonlinear solve.
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
>
>
>
>
More information about the petsc-users
mailing list