CARP-CG

CARP-CG is a conjugate gradient (CG) acceleration of CARP, which was introduced by the authors as a robust block-parallel scheme for sparse linear systems. CARP performs Kaczmarz (KACZ) row projections within the blocks, and the results from the separate blocks are merged by averaging, for each component, its updated values from the different blocks. The averaging operations are equivalent to a sequence of certain KACZ row projections in some superspace (the “averaging projections”), and so CARP is equivalent to KACZ with cyclic relaxation parameters in that superspace. The CG-acceleration of CARP is based on a generalization of the (sequential) CGMN algorithm of {\itA. Björck} and {\itT. Elfving} [BIT, Nord. Tidskr. Inf.-behandl. 19, 145-1-63 (1979; Zbl 0409.65022)], which accelerates KACZ by running it in a double sweep on the equations of a linear system, using a fixed relaxation parameter. CGMN is generalized to allow cyclic relaxation parameters, so the resulting method, called CGMNC, can be applied in the superspace. The averaging projections in the superspace can be done in any order, so CGMNC in the superspace can be implemented in the regular space by using CARP in a double sweep. The resulting algorithm, CARP-CG, is as robust as CARP but converges significantly faster. CARP-CG is compared with restarted GMRES, Bi-CGSTAB and CGS, with and without various preconditioners, on some stiff linear systems derived from convection dominated elliptic partial differential equations. The results indicate that CARP-CG is very robust and its runtime is very competitive with the other methods. A scaled version of CGNR was also tested, and it was as robust as CARP-CG, but slower.