-
Notifications
You must be signed in to change notification settings - Fork 98
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eigenvector solver implementation #90
Comments
I'm not very familiar with Ritz solvers, While we're on this, we should also implement the 3D gauge-covariant I'll check to see what MILC uses. On 11/20/2012 11:52 PM, mikeaclark wrote:
|
So I'm using a couple of different eigensolvers in MILC. The original is Kostas's implementation of Kalkreuter's Ritz-based algorithm for staggered fermions in application directory ks_eigen (a more general version of which should be in application directory arb_dirac_eigen). Kostas, however, recommended plugging in PRIMME, where I'm calling an Arnoldi solver. |
Just had a request for Jacobi-Davidson style solver from Carsten Urbach. A fairly nice explanation of this seems to be here: http://mntek3.ulb.ac.be/pub/docs/reports/pdf/jdgamm.pdf |
The reason for JD is that I found it to be more reliable than Arnoldi. And its basically using an iterative solver, so one could reuse all the optimisations already implemented for the solvers. Another source of info might be http://arxiv.org/abs/hep-lat/0609023 and inparticular references 37-39 in that paper. |
Writing this down before I forget about it. An eigensolver that might be worth looking at is LOBPCG, which apparently can be used with multi-source mat-vec operations. This could be beneficial once we have multi-source dslash operators present. |
Between the Lanczos solver by Hyung-Jin and the eig-CG solver of Alexei, I think I will close this bug now. These solvers also now gives us a framework upon which to build future eigenvector solvers. Both of the these solvers are in the quda-0.7 branch, and will be part of the 0.7 release. We can assign future issues for specific eigenvector solvers (e.g., Jacobi-Davidson, LOBPCG, etc.). |
QUDA is sorely lacking an eigenvector solver. We need to investigate what type of solver is most appropriate for including in QUDA. What are the relative merits of Ritz and Lanczos solvers?
Ritz solvers can be used with mixed precision but are not suitable for solving for hundreds of eigenvectors. Lanczos solvers are great for solving for many eigenvectors but cannot (to my knowledge) be used with mixed precision.
What type of solvers do MILC and Chroma use?
The text was updated successfully, but these errors were encountered: