[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