[petsc-users] Performance improvement (finite element model + slepc)

Jose E. Roman jroman at dsic.upv.es
Thu Jun 19 03:32:38 CDT 2014


El 18/06/2014, a las 22:37, jifeng zhao escribió:

> Hello,
> 
> I am a new user to Petsc + Slepc. I am trying to extract natural frequency of a finite element model using Slepc. The way I do is 
> 
> 1. Use other software (Abaqus) to assembly the stiffness and mass matrix.
> 2. Use Slepc to solve a generalized eigenvalue problem. K x = lamda M x
> with K, M being stiffness and mass matrix.
> 
> I wrote my petsc/slepc code based on the examples on slepc web. They all compiled and working correctly.
> 
> The question I am raising here is what solvers (solver combinations) should I use to be most efficient?   
> 
> Right now I am using "bcgsl" (BiCGSTAB) solver for KSP linear solvers, "JD" jacobian-davison for eigen solver, and "bjacobi" (block jacobian) for my preconditioner. It works, but I need it to be more efficient to solver big problem (millions of degrees of freedom). I am not an expert on knowing how these solvers are different at all!
> 
> Is there anybody who has extracted eigenvalues of a Finite element model using Slepc? How can I possibly improve the performance? 
> 
> Thank you!
> 
> PS: my running command reads like:
> ./eigen_solver -f1 petsc_stiff1.dat -f2 petsc_mass1.dat -eps_nev 40 -eps_target 0.0 -eps_type jd -st_type precond -st_ksp_type bcgsl -st_pc_type bjacobi -st_ksp_rtol 0.001 -eps_tol 1e-5 -eps_harmonic
> 
> -- 
> Jifeng Zhao
> PhD candidate at Northwestern University, US
> Theoretical and Applied Mechanics Program

For not-too-difficult problems, GD will be faster than JD. The options for tuning Davidson solvers are described here: http://dx.doi.org/10.1145/2543696
You can also try a preconditioner provided by an external package such as Hypre or pARMS.

Alternatively, you can try with Krylov-Schur and exact shift-and-invert (with a parallel external solver such as MUMPS).

Jose



More information about the petsc-users mailing list