[petsc-users] my code runs too slow

Satish Balay balay at mcs.anl.gov
Wed Jul 7 11:51:17 CDT 2010


>        total: nonzeros=1830, allocated nonzeros=29280
>        total number of mallocs used during MatSetValues calls =1830

There is something wrong with your preallocation or matrix
assembly. You should see zero mallocs for efficient assembly.

http://www.mcs.anl.gov/petsc/petsc-as/documentation/faq.html#efficient-assembly

satish


On Wed, 7 Jul 2010, Xuan YU wrote:

> Hi,
> 
> I finite difference Jacobian approximation for my TS model. The size of the
> vector is 2500. I got the following info with(-ts_view):
> 
> type: beuler
>  maximum steps=50
>  maximum time=50
>  total number of nonlinear solver iterations=647
>  total number of linear solver iterations=647
>  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=50
>    total number of function evaluations=51
>    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=1830, cols=1830
>              package used to perform factorization: petsc
>              total: nonzeros=1830, allocated nonzeros=1830
>              total number of mallocs used during MatSetValues calls =0
>                not using I-node routines
>      linear system matrix = precond matrix:
>      Matrix Object:
>        type=seqaij, rows=1830, cols=1830
>        total: nonzeros=1830, allocated nonzeros=29280
>        total number of mallocs used during MatSetValues calls =1830
>          not using I-node routines
> 
> 
> 50 output time step takes me 11.877s. So I guess there is something not
> appropriate with my Jacobian Matrix. Could you please tell me how to speed up
> my code?
> 
> Thanks!
> 
> Xuan YU
> xxy113 at psu.edu
> 
> 
> 
> 



More information about the petsc-users mailing list