:orphan: # KSPPIPEBCGS Implements a pipelined BiCGStab method. [](sec_pipelineksp) ## Notes This method has only two non-blocking reductions per iteration, compared to 3 blocking for standard FBCGS. The non-blocking reductions are overlapped by matrix-vector products and preconditioner applications. Periodic residual replacement may be used to increase robustness and maximal attainable accuracy. Like `KSPFBCGS`, the `KSPPIPEBCGS` implementation only allows for right preconditioning. 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 Siegfried Cools, Universiteit Antwerpen, EXA2CT European Project on EXascale Algorithms and Advanced Computational Techniques, 2016. ## Reference - **** -*** S. Cools and W. Vanroose, "The communication-hiding pipelined BiCGStab method for the parallel solution of large unsymmetric linear systems", Parallel Computing, 65:1-20, 2017. ## See Also [](ch_ksp), `KSPFBCGS`, `KSPFBCGSR`, `KSPBCGS`, `KSPBCGSL`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPBICG`, `KSPFBCGS`, `KSPSetPCSide()`, [](sec_pipelineksp), [](doc_faq_pipelined) ## Level intermediate ## Location src/ksp/ksp/impls/bcgs/pipebcgs/pipebcgs.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/ksp/impls/bcgs/pipebcgs/pipebcgs.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)