:orphan: # KSPPIPECR Pipelined conjugate residual method. [](sec_pipelineksp) ## Notes This method has only a single non-blocking reduction per iteration, compared to 2 blocking for standard `KSPCR`. The non-blocking reduction is overlapped by the matrix-vector product, but not the preconditioner application. See also `KSPPIPECG`, where the reduction is only overlapped with the matrix-vector product. 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), [](sec_pipelineksp), [](doc_faq_pipelined), `KSPCreate()`, `KSPSetType()`, `KSPPIPECG`, `KSPGROPPCG`, `KSPPGMRES`, `KSPCG`, `KSPCGUseSingleReduction()` ## Level intermediate ## Location src/ksp/ksp/impls/cr/pipecr/pipecr.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/cr/pipecr/pipecr.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)