petsc-3.7.7 2017-09-25
Report Typos and Errors

# KSPPIPECGRR

Pipelined conjugate gradient method with automated residual replacements. This method has only a single non-blocking reduction per iteration, compared to 2 blocking for standard CG. The non-blocking reduction is overlapped by the matrix-vector product and preconditioner application.

KSPPIPECGRR improves the robustness of KSPPIPECG by adding an automated residual replacement strategy. True residual and auxiliary variables are computed explicitly in a number of dynamically determined iterations to reset accumulated rounding errors.

See also KSPPIPECG, which is identical to KSPPIPECGRR without residual replacements. See also KSPPIPECR, where the reduction is only overlapped with the matrix-vector product.

### Notes

MPI configuration may be necessary for reductions to make asynchronous progress, which is important for performance of pipelined methods. See the FAQ on the PETSc website for details.

### Contributed by

Siegfried Cools, Universiteit Antwerpen, EXA2CT European Project on EXascale Algorithms and Advanced Computational Techniques

### Reference

S. Cools, E.F. Yetkin, E. Agullo, L. Giraud, W. Vanroose, "Analysis of rounding error accumulation in the conjugate gradients method to improve the maximal attainable accuracy of pipelined CG". Submitted to SIAM J. Sci. Comp., February 2016.

### See Also

KSPCreate(), KSPSetType(), KSPPIPECR, KSPGROPPCG, KSPPIPECG, KSPPGMRES, KSPCG, KSPCGUseSingleReduction()

Level:intermediate
Location:src/ksp/ksp/impls/cg/pipecgrr/pipecgrr.c
Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages