Skip to main content
`Ctrl`+`K`

# KSPPIPEBCGS

Implements a pipelined BiCGStab method. Pipelined Krylov Methods

## Notes

This method has only two non-blocking reductions per iteration, compared to 3 blocking for standard `KSPFBCGS`. 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 What steps are necessary to make the pipelined solvers execute efficiently?

## Contributed by

Siegfried Cools, Universiteit Antwerpen, [CV17] EXA2CT European Project on EXascale Algorithms and Advanced Computational Techniques, 2016.

## References

[CV17]

Siegfried Cools and Wim Vanroose. The communication-hiding pipelined BiCGstab method for the parallel solution of large unsymmetric linear systems. Parallel Computing, 65:1–20, 2017.

## See Also

KSP: Linear System Solvers, `KSPFBCGS`, `KSPFBCGSR`, `KSPBCGS`, `KSPBCGSL`, `KSPCreate()`, `KSPSetType()`, `KSPType`, `KSP`, `KSPBICG`, `KSPFBCGS`, `KSPSetPCSide()`, Pipelined Krylov Methods, What steps are necessary to make the pipelined solvers execute efficiently?

## Level

intermediate

## Location

src/ksp/ksp/impls/bcgs/pipebcgs/pipebcgs.c

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