KSPPIPEPRCG#

Pipelined predict-and-recompute conjugate gradient method. 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.

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#

Tyler Chen, University of Washington, Applied Mathematics Department

Reference#

Tyler Chen and Erin Carson. “Predict-and-recompute conjugate gradient variants.” SIAM Journal on Scientific Computing 42.5 (2020): A3084-A3108.

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.

See Also#

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

Level#

intermediate

Location#

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


Edit on GitLab

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