SPIKE is a poly-algorithm that uses many different strategies for solving banded linear systems
in parallel and can be used either as a direct scheme or a preconditioned iterative scheme for solving large
sparse systems. Very often, banded systems arise after a general sparse system is reordered in some fashion.
In other instances, they are constructed as effective preconditioners to general sparse systems where they
are solved via iterative methods. The design philosophy of the SPIKE algorithm originally proposed by
A. Sameh in the late seventies is quite different from the currently available (LU) solvers - direct or iterative
[Link].
It uses a novel decomposition method to balance communication overhead with arithmetic cost to achieve
better scalability than other methods on modern parallel architectures. In recent years, introduction of new important
algorithmic SPIKE schemes have allowed to significantly outperform the performance results obtained using the
ScaLAPACK package for solving banded systems on distributed architectures or using the LAPACK package on shared-memory systems.
SPIKE offers HPC users a new and valuable tool for solving large banded linear systems.