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 |
-DFABULOUS_LAPACKE_NANCHECK=OFF |
|
-DFABULOUS_USE_CHAMELEON=OFF |
|
-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 |
-DFABULOUS_BUILD_EXAMPLES=ON |
To build examples |
-DFABULOUS_BUILD_TESTS=ON |
To build tests |
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 |
-DCMAKE_INSTALL_PREFIX= |
Install path |
Then compile and install the interface (and tests and examples if corresponding flags have been set):
make make install