[petsc-users] about speed

Xuan YU xxy113 at psu.edu
Tue Jul 27 08:22:33 CDT 2010


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
>>
>>
>>
>>
>
>



More information about the petsc-users mailing list