+Krylov subspace iteration methods have increasingly become key
+techniques for solving linear and nonlinear systems, or eigenvalue problems,
+especially since the increasing development of
+preconditioners~\cite{Saad2003,Meijerink77}. One reason for the popularity of
+these methods is their generality, simplicity, and efficiency to solve systems of
+equations arising from very large and complex problems.
+
+GMRES is one of the most widely used Krylov iterative method for solving sparse
+and large linear systems. It has been developed by Saad \emph{et
+ al.}~\cite{Saad86} as a generalized method to deal with unsymmetric and
+non-Hermitian problems, and indefinite symmetric problems too. In its original
+version called full GMRES, this algorithm minimizes the residual over the
+current Krylov subspace until convergence in at most $n$ iterations, where $n$
+is the size of the sparse matrix. Full GMRES is however too expensive in the
+case of large matrices, since the required orthogonalization process per
+iteration grows quadratically with the number of iterations. For that reason,
+GMRES is restarted in practice after each $m\ll n$ iterations, to avoid the
+storage of a large orthonormal basis. However, the convergence behavior of the
+restarted GMRES, called GMRES($m$), in many cases depends quite critically on
+the $m$ value~\cite{Huang89}. Therefore in most cases, a preconditioning
+technique is applied to the restarted GMRES method in order to improve its
+convergence.
+
+To enhance the robustness of Krylov iterative solvers, some techniques have been
+proposed allowing the use of different preconditioners, if necessary, within the
+iteration itself instead of restarting. Those techniques may lead to
+considerable savings in CPU time and memory requirements. Van der Vorst
+in~\cite{Vorst94} has for instance proposed variants of the GMRES algorithm in
+which a different preconditioner is applied in each iteration, leading to the
+so-called GMRESR family of nested methods. In fact, the GMRES method is
+effectively preconditioned with other iterative schemes (or GMRES itself), where
+the iterations of the GMRES method are called outer iterations while the
+iterations of the preconditioning process is referred to as inner iterations.
+Saad in~\cite{Saad:1993} has proposed Flexible GMRES (FGMRES) which is another
+variant of the GMRES algorithm using a variable preconditioner. In FGMRES the
+search directions are preconditioned whereas in GMRESR the residuals are
+preconditioned. However, in practice, good preconditioners are those based on
+direct methods, as ILU preconditioners, which are not easy to parallelize and
+suffer from the scalability problems on large clusters of thousands of cores.
+
+Recently, communication-avoiding methods have been developed to reduce the
+communication overheads in Krylov subspace iterative solvers. On modern computer
+architectures, communications between processors are much slower than
+floating-point arithmetic operations on a given
+processor. Communication-avoiding techniques reduce either communications
+between processors or data movements between levels of the memory hierarchy, by
+reformulating the communication-bound kernels (more frequently SpMV kernels) and
+the orthogonalization operations within the Krylov iterative solver. Different
+works have studied the communication-avoiding techniques for the GMRES method,
+so-called CA-GMRES, on multicore processors and multi-GPU
+machines~\cite{Mohiyuddin2009,Hoemmen2010,Yamazaki2014}.
+
+Compared to all these works and to all the other works on Krylov iterative
+methods, the originality of our work is to build a second iteration over a
+Krylov iterative method and to minimize the residuals with a least-squares
+method after a given number of outer iterations.