3
$\begingroup$

I have a complex Hermitian matrix of size about $70000\times 70000$. I want about 100 eigenvalues near 0. However, I know that every eigenvalues are two-fold degenerate. I found out that the running time of eigsh is extremely slow (more than 5 times) compared to the situation with no degeneracy.

Also, I found out from the following link Computation time of eigenvalues with ARPACK depends on what? that degeneracy is bad to eigsh algorithm.

What can I do to make my code run faster? In the answer of the link suggests to increase the size of the Krylov subspace, but what size is the adequate one?

$\endgroup$
2
  • 1
    $\begingroup$ Are you using the shifting method? $\endgroup$ – nicoguaro Jun 2 at 13:35
  • $\begingroup$ @nicoguaro Yes, I am using the shift invert method with sigma=0. $\endgroup$ – eigenvalue Jun 3 at 14:30
2
$\begingroup$

ARPACK recommends to use ncv > 2 nev. The default value of ncv would fit that constraint. A couple of suggestions:

  • increase ncv to 300?
  • increase the tolerance tol to $1.0e-14$.
$\endgroup$
2
  • $\begingroup$ Thanks! I will try it soon and see what happens. $\endgroup$ – eigenvalue Jun 1 at 5:32
  • $\begingroup$ Sadly, increasing ncv does not help. Reducing tolerence helps a little bit, as it should be. $\endgroup$ – eigenvalue Jun 2 at 5:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.