> On Mar 25, 2017, at 10:48 PM, Bodhisatta Pramanik <[email protected]> wrote: > > Try -st_pc_type gamg: > > Doing this with the existing eigensolver,linear solver : ./RunPart -eps_type > jd -eps_nev 3 -st_ksp_type cg -st_ksp_rtol 0.001 -eps_tol 0.001 -st_pc_type > gamg -eps_smallest_real results in the following issues:- > PETSC ERROR: Object is in wrong state > PETSC ERROR: Must call EPSSolve() first: Parameter #1
I cannot explain this. A different preconditioner with nothing else changed shouldn't cause any problem like this. Send all the output in the error message. > > Try -st_pc_type sor > > Doing this again with the existing eigensolver,linear solver returns me the > eigenvalues but it takes more time. (106 seconds) for a Laplacian matrix of > 200K size. The bjacobi was giving me the same eigenvalues but in 60 seconds. Ok, this is reasonable. > > > Run with -log_view to see where the computation is taking the most time: Send the output from -log_view > > EPSSolve and KSPSolve take the most time to finish computation. > > Since the matrix is symmetric are you using the sbaij format instead of AIJ? > > I am using the sbaij format but with block size 1. I guess that is equivalent > to the AIJ format itself. Ok. Since it only stores half the matrix it requires less memory and because of the way it does the MatMult and MatSolve it can be a tiny bit faster. Barry > > > Thanks, > Bodhi > > > > > On Sat, Mar 25, 2017 at 10:22 PM, Barry Smith <[email protected]> wrote: > > > On Mar 25, 2017, at 8:52 PM, Bodhisatta Pramanik <[email protected]> > > wrote: > > > > Hi, > > > > I apologize for the slepc question. I could not find any user lists so I'm > > hoping someone on here might be able to offer some guidance. > > > > Problem Definition: > > I am working on a graph partitioning problem. I have the laplacian of a > > large graph(500,000 nodes) and am interested in extracting its global > > information in order to find good partitioning. An approach is to compute > > the first few(4-5) eigenvalues and use that information to formulate the > > partition algorithm. > > > > I am leveraging the EPS solvers of the Slepc library. It appears that the > > Jacobi-davidson eigen solver gives me the eigenvalues in the shortest > > period of time compared to others (Krylov-Schur, Rayleigh quotient, > > Lanczos, etc). I use this eigensolver with the conjugate gradient linear > > solver and the block-jacobi preconditioner. So this is what I am basically > > passing through the command line: > > > > ./RunPart -eps_type jd -eps_nev 4 -st_ksp_type cg -st_ksp_rtol 0.001 > > -eps_tol 0.001 -st_pc_type bjacobi -eps_smallest_real > > Try -st_pc_type gamg > > One one process default bjacobi results in ILU which is not a great > preconditioner. > > Also try -st_pc_type sor > > > > > Question: > > The time it takes to compute the first 4-5 eigenvectors of a matrix of size > > (200k) is near about 60 seconds. CPU config: Intel Xeon 2GHz. I am using a > > single processor to run my code. Is there any way I can gain major speedup > > than what I am getting? > > Run with -log_view to see where the computation is taking the most time. > > > > > Is it possible to obtain the eigenvalues inside 10-15 seconds of such huge > > matrices even if I do not use multiple processor?? > > > > Can someone provide me with some valuable guidance?? > > Since the matrix is symmetric are you using the sbaij format instead of > AIJ? > > > > > Thanks, > > Bodhi > > > > > -- > Bodhisatta Pramanik, > Graduate Student, > Department of Electrical and Computer Engineering, > 301 Durham, > Iowa State University, > Ames,Iowa 50011, > [email protected] > 515-735-6300
