Optimizing the solution of a sparse linear system with a particular structure

51 Views Asked by At

I am trying to solve computationally a sparse linear system of the form $Ax=B.$

A is a square matrix, for example of size $1600\times 1600$ (the exact size depends on the parameters of my program). B is a dense matrix, of size $1600\times 2$ or $1600\times3$.

I am trying, obviously, to solve for $x$.

The best general purpose sparse linear solver I could find is Paradiso, based on Intel MKL, which solves this system in about $100ms$.

Unfortunately, this is a bit too much time for the performance I would like for my system, so I'm looking for ways to improve.

The matrix A has quite a lot of structure. It is basically a set of $7$ lines of nonzero values running parallel to the main diagonal, as you can see in the heatmaps below:

enter image description here

enter image description here

Is there any way to use this structure to solve the system easier?