1: \begin{abstract}
2: We present a new algorithm that computes eigenvalues and eigenvectors
3: of a Hermitian positive definite matrix while solving a linear system
4: of equations with Conjugate Gradient (CG).
5: Traditionally, all the CG iteration vectors could be saved and recombined
6: through the eigenvectors of the tridiagonal projection matrix,
7: which is equivalent theoretically to unrestarted Lanczos.
8: Our algorithm capitalizes on the iteration vectors produced by CG
9: to update only a small window of vectors that approximate the eigenvectors.
10: While this window is restarted in a locally optimal way, the CG algorithm
11: for the linear system is unaffected.
12: Yet, in all our experiments, this small window converges to the required
13: eigenvectors at a rate identical to unrestarted Lanczos.
14: After the solution of the linear system,
15: eigenvectors that have not accurately converged can be improved
16: in an incremental fashion by solving additional linear systems.
17: In this case,
18: eigenvectors identified in earlier systems can be used to deflate,
19: and thus accelerate, the convergence of subsequent systems.
20:
21: We have used this algorithm with excellent results in lattice QCD
22: applications, where hundreds of right hand sides may be needed.
23: Specifically, about 70 eigenvectors are obtained to full accuracy after
24: solving 24 right hand sides.
25: Deflating these from the large number of subsequent right hand sides
26: removes the dreaded critical slowdown,
27: where the conditioning of the matrix increases as the quark mass reaches
28: a critical value.
29: Our experiments show almost a constant number of iterations for our method,
30: regardless of quark mass, and speedups of 8 over original CG
31: for light quark masses.
32: \end{abstract}
33: