FEAST Library Package
- Solving standard (AX=XΛ) or generalized (AX=BXΛ)
Hermitian and non-Hermitian eigenvalue problems
- Returns eigenvalues within a user-specified search interval/contour with associated left/right eigenvectors and
- Two libraries: SMP version (one node), and MPI version (multi-nodes).
- Three levels of parallelism using FEAST-MPI (MPI-MPI-OpenMP)
- Real/Complex and Single/Double precisions,
- Source code and pre-compiled libraries provided for common architectures (e.g. x64)- The library offers maximum portability.
- Reverse communication interfaces (RCI): Maximum flexibility for application specific. Those are
matrix format independent, inner system solver independent, so users must provide their own linear
system solvers (direct or iterative) and mat-vec utility routines.
- Predefined driver interfaces for dense, banded, and sparse (CSR) formats: Less flexibility but easy
to use ("plug and play"):
- FEAST DENSE interfaces require LAPACK.
- FEAST BANDED interfaces use the SPIKE-SMP linear system solver (included)
- FEAST SPARSE interfaces requires the Intel MKL-PARDISO solver.
- All the FEAST interfaces must be linked with any (optimized) LAPACK and BLAS packages
- A set of flexible and useful practical options available (quadrature rules, contour shapes, stopping criteria, initial
- Multiple support routines included (e.g. user-defined custom contour in complex plane,
extract nodes/weights from predefined quadrature rules,
convergence rate analyser, fast stochastic estimates for search subspace size, etc.)
- Large number of examples provided and documentation included,
- Utility sparse drivers included: users can provide directly their sparse systems for quick testing, timing, etc. .
- New optimized FEAST-MPI interfaces to target MPI system solvers (e. g. Cluster Pardiso, MUMPS, Domain-decomposition, etc.)
Some of the important capabilities of the FEAST algorithm
can be briefly outlined as follows:
- High robustness with fast convergence to very high accuracy
- Naturally captures all multiplicities
- No-(explicit) orthogonalization procedure on long vectors
- Reusable subspace - can benefit from suitable initial guess for solving series of eigenvalue problems that are close one another
- Ideally suited for large sparse systems- allows the use of iterative methods.
- Can exploit natural parallelism at three different levels:
Consequently, within a parallel environment, the algorithm complexity depends on solving a single
- 1. search intervals can be treated separately (no overlap);
- 2. linear systems can be solved independently across the quadrature nodes of the complex contour;
- 3. each linear system with multiple right-hand-sides can be solved in parallel.