Core FEAST Components

Sparse Banded BLAS Performance of modern Finite Element codes is typically not limited by the raw compute performance of modern CPUs, but by the available memory bandwidth: The arithmetic intensity is simply too low. FEAST incorporates a BLAS extension called Sparse Banded BLAS that encapsulates cache-aware, platform-tuned subroutines for common linear algebra operators, matching FEAST's data structures of generalised tensor product grids.

scarc FEAST combines the advantages of domain decomposition and parallel multigrid into a generalised solver scheme called ScaRC (Scalable Recursive Clustering). ScaRC not only provides hierarchical solver structures, but also hierarchical data and matrix structures. Hiding anisotropies locally improves the robustness of the solvers and delivers good (parallel) convergence rates, while exploiting regular (sub-)structures improves efficiency and ensures high performance. An example of a ScaRC solver is a global, parallel multigrid which employs local multigrid on each parallel block as smoothers, resulting in convergence rates of O(10-3) even for highly anisotropic meshes.

multidimensional solvers The ScaRC solvers established in FEAST are specialised for scalar problems. For treating vector-valued equations as they arise in most applications (CFD, CSM) solver methods are developed which rigorously make use of the ScaRC schemes. The process of solving a multidimensional problem is essentially brought down to successive treatment of scalar equations. This way, the robustness and the efficiency of ScaRC can be transferred to the overall solving process.

Adaptivity concepts FEAST features standard a posteriori error control methods like recovery-based error estimators for the gradient error. Moreover, the package provides subroutines for the DWR-method which aims at measuring the error of user-defined output functionals. For adapting the computational grid, patchwise h-adaptivity techniques and r-adaptivity methods (grid deformation) are implemented.

GPU backend FEAST leverages the raw floating point performance and huge memory bandwidth of modern graphics processing units (GPUs) as numerical co-processors. The integration is minimally invasive in the sense that the GPUs work as local smoothers inside the ScaRC schemes only. To work around the insufficient accuracy of single precision arithmetics, the GPU backend encapsulates a mixed precision iterative refinement approach. The GPU backend is not mandatory, FEAST automatically uses CPU fallbacks for macro cells that are not supported on GPUs.