Skip to content
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

individual residua for multi-shift solver #8

Closed
bjoo opened this issue Feb 15, 2011 · 1 comment
Closed

individual residua for multi-shift solver #8

bjoo opened this issue Feb 15, 2011 · 1 comment
Assignees
Labels

Comments

@bjoo
Copy link
Member

bjoo commented Feb 15, 2011

Hi,
Mike has a nice algorithmic trick for RHMC where we can ask for different residua for different shifts in the multi-shift algorithm. Typically the ill conditioned small shift systems contribute less to the overall force and only the higher shifts need to be solved more accurately. It would be nice if we could specify a desired residuum for each shift, rather than having a master one for the lowest shift.

This may need some kind of modification to the invParams tho. Let us get our thinking caps on as to how to specify this in the interface.

@jpfoley
Copy link
Member

jpfoley commented Jul 18, 2012

I hadn't noticed this issue until recently but it seems I've been assigned to work on it, so I'll make a few points.
First off, QudaInvertParam already has member variables tol and tol_offset, where tol is a double and tol_offset is an array of doubles, one for each offset. As far as I can see, tol_offset is completely disregarded at the moment,
In Balint's example, the system with the smallest shift needs to be solved less accurately than larger-shift systems. So one could, for example, run multi-shift until the tolerance for the lowest shift had been reached and then polish the higher-shift results individually until they reached their respective target residuals. On the other hand, with the HISQ action, you usually want to solve the low-shift results to a higher accuracy. The high-shift results don't incorporate the quark-mass dependence of the naik term, and they need to be polished with the correct operator. One way of making the multi-shift solver more flexible would be to use tol to specify a base tolerance for the standard multi-shift inverter and tol_offset to specify a set of residuals for the polishing step. This would be a trivial change to the mixed-precision multi-shift solver. Of course, more flexibility can mean more confusion. Any comments?

ckallidonis pushed a commit to ckallidonis/quda that referenced this issue May 8, 2018
Options for controlling MG's BiCGStab setup max-iterations and tolerance
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants