The Fast Accurate Block Linear krylOv Solver (fabulous) library

Table of Contents

1. Overview

Versatile and flexible numerical library that implements Block Krylov iterative schemes for the solution of linear systems of equations with multiple right-hand sides

This Library currently implements various variants of Block Krylov iterative solvers:

  • BCG (Block Conjugate Gradient)
  • BF-BCG (Breadown Free BCG)
  • BGCR (Block Generalized Conjugate Residual)
  • BGMRES (Block General Minimum Residual)
  • IB-BGMRES (BGMRES with inexact breakdown)
  • BGMRES-DR (BGMRES with deflated restarting)
  • IB-BGMRES-DR (BGMRES with inexact breakdown and deflated restarting)
  • IB-BGCRO-DR (Block Generalized Conjugate Residual Method with Inner Orthogonalization with inexact breakdown and deflated restarting)

A particular attention is paid to internal numerical kernels such as those associated with the least-square solution where block Incremental QR factorization variants are implemented.

2. Documentation

Please checkout our online documentation

A small but evocative tutorial on how to use fabulous Tutorial .

For more details and examples, please refers to the developer documentation Doxygen .

3. Download & Installing

fabulous is available on debian, ubuntu and macOSX, please check our installation guide Install.

Git Release source Debian/Ubuntu Brew (Mac) Guix (Linux) Spack (Linux/Mac)
fabulous 1.1.2 packages brew-repo guix-repo spack-repo

fabulous is also distributed within the maphys (deprecated) and maphys++ (recommended) packages.

4. Details

4.1. Matrix-vector multiplication and inner product call-backs

The matrix-vector product is not handled by the library and must be implemented as a callback by the user. This allow the user to implement an algorithm adapted to his/her problem. (whether the matrix is sparse/dense or have a specific structure)

The user must also implement an inner product (aka "dot product") callback. This allows the user to use the library in a parallel distributed environment. (The input solution and right-hand sides are distributed with block row style.) If the user intends to distribute its vector over several nodes, the callbacks must be adapted to perform the necessary communications and/or reductions.

Note that high-level packages such as maphys (deprecated) and maphys++ (recommended) readily provide such matrix-vector multiplication and inner product call-back designs wrapped with fabulous.

4.2. Stopping criterion

For the sake of robustness, reliability and meaning of the stopping criterion based on normwise backward error, only right preconditioner is supported. The stopping criterion enables the user to define individual thresholds for each right-hand side; it uses tight cheap approximation of each residual norms and computes true residual norms only when convergence is detected by the cheap residual norm approximation.

4.3. Some results

Some results are available online, please check them out the results section.

5. Acknowledgements

This software effort has been partially funded by the DGA through the Hi-Box project (partners: IMACS (PI), Airbus and Inria).

In 2019-2021, fabulous has been developed under the PRACE-6IP-WP8 (GRANT AGREEMENT NUMBER 823767 – PRACE-6IP) EU project LyNcs (partners: Computation-based Science and Technology Research Centre (CaSToRC) of The Cyprus Institute and the Leibniz Supercomputing Center (LRZ)).

It has also been supported by the H2020 Center of Excellence EoCoE-2 over the jan 2019 - june 2022 period.

6. Contact

You can contact us via the below list of current authors. Note that if you have an account on the inria gitlab platform, you may also submit an issue.

7. Authors

7.1. Current

  • Emmanuel Agullo: emmanuel.agullo @at@
  • Luc Giraud: luc.giraud @at@
  • Gilles Marait: gilles.marait @at@
  • Matthieu Simonin : matthieu.a.simonin @at@

7.2. Past

  • Thomas Mijieux
  • Cyrille Piacibello

8. References

BCG: Hao Ji Yaohang Li A breakdown-free block conjugate gradient method BIT Numer Math (2017) 57:379–403 DOI 10.1007/s10543-016-0631-z Springer Science+Business Media Dordrecht 2016

BF-BCG: Hao Ji Yaohang Li A breakdown-free block conjugate gradient method BIT Numer Math (2017) 57:379–403 DOI 10.1007/s10543-016-0631-z Springer Science+Business Media Dordrecht 2016

IB-BGMRES: M. Robbé and M. Sadkane. Exact and inexact breakdowns in the block GMRES method. Linear Algebra and its Applications, 419:265–285, 2006

BGMRES-DR: R. B. Morgan. Restarted block GMRES with deflation of eigenvalues. Applied Numerical Mathematics, 54(2):222–236, 2005.

IB-BGMRES-DR: E. Agullo, L. Giraud, Y.-F. Jing Block GMRES method with inexact breakdowns and deflated restarting SIAM Journal on Matrix Analysis and Applications 35, 4, November 2014, p. 1625–1651

IB-BGCRO-DR: Luc Giraud, Yan-Fei Jing, Yanfei Xiang. A block minimum residual norm subspace solver for sequences of multiple left and right-hand side linear systems. [Research Report] RR-9393, Inria Bordeaux Sud-Ouest. 2021, pp.60. hal-03146213v2

Author: Gilles Marait

Created: 2021-09-29 Wed 11:54