FABuLOuS: Fast Accurate Block Linear krylOv Solver

Table of Contents

See the fabulous repository.

1. Installation

1.1. Dependencies

FABuLOuS depends only on BLAS and LAPACK (and their C versions CBLAS and LAPACKE).

1.2. C++ header-only library

Calling FABuLOuS from C++ does not require any compilation, simply include the library headers. Clone the repository and include the content of /include when compiling your code.

1.3. Compiling C and Fortran interfaces

To call FABuLOuS from C and / or Fortran, you need to compile an interface using cmake.

First clone the repository:

git clone --recursive https://gitlab.inria.fr/solverstack/fabulous.git
cd fabulous
git checkout develop   

Create your build folder for cmake:

mkdir build && cd build   

And now call cmake configuring your flags:

cmake .. (flags)

The following flags can be used:

-DFABULOUS_BUILD_C_API=ON Compile C interface
-DFABULOUS_BUILD_Fortran_API=ON Compile Fortran interface
-DCMAKE_EXE_LINKER_FLAGS=-lstdc++ Sometimes needed when g++ is not detected by cmake directly
-DCBLAS_DIR= Put path to cblas
-DLAPACKE_DIR= Put path to lapacke
-DBLAS_DIR= Put path to blas
-DLAPACK_DIR= Put path to lapack
  (You may not need the 4 of them, some may be detected by cmake)
-DFABULOUS_DEBUG_MODE=ON If debug is needed
-DFABULOUS_BLASMT=ON To take advantage of multithreaded BLAS kernels when available

You can also configure cmake standard flags. The recommended ones are:

-DCMAKE_BUILD_TYPE= Debug, Release or RelWithDebInfo
-DBUILD_SHARED_LIBS=ON To build shared library

Then compile and install the interface (and tests and examples if corresponding flags have been set):

make install

Author: Inria Bordeaux Sud Ouest

Created: 2021-06-10 Thu 18:01