[petsc-users] Slepc: Computing first 4 smallest eigenvalues and eigenvectors of a large graph Laplacian

Bodhisatta Pramanik bodhi91 at iastate.edu
Sat Mar 25 23:42:07 CDT 2017


Let me get back to you. Thanks a lot.

On Sat, Mar 25, 2017 at 11:15 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:

>
>    First set a new PETSC_ARCH say arch-opt and ./configure with the
> additional argument --with-debugging=0 then recompile PETSc with the new
> PETSC_ARCH and recompile your code then send the new -log_view output.
>
>    Barry
>
>
>       ##########################################################
>       #                                                        #
>       #                          WARNING!!!                    #
>       #                                                        #
>       #   This code was compiled with a debugging option,      #
>       #   To get timing results run ./configure                #
>       #   using --with-debugging=no, the performance will      #
>       #   be generally two or three times faster.              #
>       #                                                        #
>       ##########################################################
>
>
> > On Mar 25, 2017, at 11:08 PM, Bodhisatta Pramanik <bodhi91 at iastate.edu>
> wrote:
> >
> >
> > Send all the output in the error message:
> >
> > [0]PETSC ERROR: --------------------- Error Message
> --------------------------------------------------------------
> > [0]PETSC ERROR: Object is in wrong state
> > [0]PETSC ERROR: Must call EPSSolve() first: Parameter #1
> > [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html
> for trouble shooting.
> > [0]PETSC ERROR: Petsc Release Version 3.7.5, Jan, 01, 2017
> > [0]PETSC ERROR: ./RunPart on a arch-linux2-c-debug named
> research-5.ece.iastate.edu by bodhi91 Sat Mar 25 22:33:56 2017
> > [0]PETSC ERROR: Configure options --with-cc=gcc --with-css=g++
> -with-fc=gfortran --download-fblaslapack --download-mpich
> > [0]PETSC ERROR: #10468 EPSComputeError() line 643 in
> /tmp/Bodhi/slepc-3.7.3/src/eps/interface/epssolve.c
> >          0.000000     2.0795e-317
> >
> >
> > Send the output from -log_view:
> >          I have attached the .txt file: "Log Summary".txt
> >
> >
> > 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.
> >         I do get a little improvement in speed, but nothing significant.
> >
> > Thanks,
> > Bodhi
> >
> >
> > On Sat, Mar 25, 2017 at 10:56 PM, Barry Smith <bsmith at mcs.anl.gov>
> wrote:
> >
> > > On Mar 25, 2017, at 10:48 PM, Bodhisatta Pramanik <bodhi91 at iastate.edu>
> 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 <bsmith at mcs.anl.gov>
> wrote:
> > >
> > > > On Mar 25, 2017, at 8:52 PM, Bodhisatta Pramanik <
> bodhi91 at iastate.edu> 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,
> > > bodhi91 at iastate.edu
> > > 515-735-6300
> >
> >
> >
> >
> > --
> > Bodhisatta Pramanik,
> > Graduate Student,
> > Department of Electrical and Computer Engineering,
> > 301 Durham,
> > Iowa State University,
> > Ames,Iowa 50011,
> > bodhi91 at iastate.edu
> > 515-735-6300
> > <Log Summary>
>
>


-- 
*Bodhisatta Pramanik,*
*Graduate Student,*
*Department of Electrical and Computer Engineering,*
*301 Durham,*
*Iowa State University,*
*Ames,Iowa 50011,*
bodhi91 at iastate.edu
*515-735-6300*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20170325/296437f5/attachment.html>


More information about the petsc-users mailing list