:orphan: # KSPPIPECG Pipelined conjugate gradient method. [](sec_pipelineksp) ## Notes 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. See also `KSPPIPECR`, where the reduction is only overlapped with the matrix-vector product and `KSPGROPPCG` MPI configuration may be necessary for reductions to make asynchronous progress, which is important for performance of pipelined methods. See [](doc_faq_pipelined) ## Contributed by Pieter Ghysels, Universiteit Antwerpen, Intel Exascience lab Flanders ## Reference P. Ghysels and W. Vanroose, "Hiding global synchronization latency in the preconditioned Conjugate Gradient algorithm", Submitted to Parallel Computing, 2012. ## See Also [](ch_ksp), [](doc_faq_pipelined), [](sec_pipelineksp), `KSPCreate()`, `KSPSetType()`, `KSPPIPECG2`, `KSPPIPECR`, `KSPGROPPCG`, `KSPPGMRES`, `KSPCG`, `KSPCGUseSingleReduction()` ## Level intermediate ## Location src/ksp/ksp/impls/cg/pipecg/pipecg.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/cg/pipecg/pipecg.c) [Index of all KSP routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)