I have the two following algorithms for GMRES(m) and left preconditioned GMRES.


enter image description here

Left preconditioning

enter image description here

I would like to know if anyone could explain why steps 10 through 12 are not used in the left preconditioned GMRES. Are they lost, or is it implicit that these need to happen?

If not, am I correct to assume that left-preconditioned works in blocks of m-vectors (number of vectors chosen before the restart of the Krylov subspace). So, if I choose 20 vectors to store before the restart, it will assemble all 20 Krylov subspace basis, and only afterward move to step 12?


1 Answer 1


It's just a difference in how the authors decided to write the algorithm. Left-preconditioned GMRES is the same as regular GMRES where $A$ is replaced with $M^{-1}A$ and $b$ is replaced with $M^{-1}b$. (I.e. you solve the preconditioned system $M^{-1}Ax=M^{-1}b$ instead of $Ax=b$.)

  • $\begingroup$ So the stop criteria is also present(line 10-12 in GMRES(m)), right? It was omitted from the algorithm because it is implied that it happens? $\endgroup$ Sep 25, 2021 at 10:55
  • $\begingroup$ Yes. My guess is the second author considered it a minor implementation detail that distracts from the interesting parts the algorithm. $\endgroup$ Sep 25, 2021 at 16:54
  • $\begingroup$ Not strictly no, as I recall, the reason that GMRES(m) has that line and not the preconditioned is because the GMRES(m) portion evaluation corresponds exactly to the linear system residual, where as the preconditioned one corresponds to the preconditioned systems residual, which is not the same and you don't want to exit the algorithm based on the preconditioned residual. This is different from right-preconditioned GMRES which keeps that exit condition because they maintain the correspondence to the linear system residual. $\endgroup$
    – EMP
    Oct 27, 2021 at 17:55

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.