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, 2021 at 13:35
  • $\begingroup$ @nicoguaro Yes, I am using the shift invert method with sigma=0. $\endgroup$
    – Laplacian
    Jun 3, 2021 at 14:30

1 Answer 1

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$
    – Laplacian
    Jun 1, 2021 at 5:32
  • $\begingroup$ Sadly, increasing ncv does not help. Reducing tolerence helps a little bit, as it should be. $\endgroup$
    – Laplacian
    Jun 2, 2021 at 5:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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