Skip to main content
`Ctrl`+`K`

# KSPPIPEPRCG

Pipelined predict-and-recompute conjugate gradient Krylov method [CC20]. Pipelined Krylov Methods

## Options Database Key

- -ksp_pipeprcg_recompute_w - recompute the \(w_k\) with \(Ar_k\), default is true

## Notes

This method has only a single non-blocking reduction per iteration, compared to 2 blocking for standard `KSPCG`. The non-blocking reduction is overlapped by the matrix-vector product and preconditioner application.

MPI configuration may be necessary for reductions to make asynchronous progress, which is important for performance of pipelined methods. See What steps are necessary to make the pipelined solvers execute efficiently?

## Contributed by

Tyler Chen, University of Washington, Applied Mathematics Department

## Acknowledgments

This material is based upon work supported by the National Science Foundation Graduate Research Fellowship Program under Grant No. DGE-1762114. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.

## References

[CC20]

Tyler Chen and Erin Carson. Predict-and-recompute conjugate gradient variants. SIAM Journal on Scientific Computing, 42(5):A3084–A3108, 2020.

## See Also

KSP: Linear System Solvers, What steps are necessary to make the pipelined solvers execute efficiently?, Pipelined Krylov Methods, `KSPCreate()`, `KSPSetType()`, `KSPCG`, `KSPPIPECG`, `KSPPIPECR`, `KSPGROPPCG`, `KSPPGMRES`, `KSPCG`, `KSPCGUseSingleReduction()`

## Level

intermediate

## Location

src/ksp/ksp/impls/cg/pipeprcg/pipeprcg.c

Index of all KSP routines
Table of Contents for all manual pages
Index of all manual pages