I have a linear system $Ax=b$ where:
- $A$ is square, large ($m$ and $n$ on the order of $10^5$), asymmetric, very sparse (around $0.05\%$ non-zeros)
- $b$ is very sparse (also $0.05\% - 0.1\%$ non-zeros)
Due to the properties of the problem where the matrix $A$ and vector $b$ come from, I can guarantee the system has one unique solution $x$.
Currently, I'm solving this system using sparse LU decomposition or BiCGSTAB and this is already quite fast. But in the search for more speed, which is my primary goal, I realised that, given how the vector $x$ is used once calculated, I only actually look at a very small subset of its values. In other words, if $x = \begin{bmatrix} x_1 & \cdots & x_n \end{bmatrix}^T$, then I actually only need to know the values of a few $x_i$ (few is about $0.1\%$). I know which values $x_i$ I care about before solving $Ax = b$. After solving the system, all other values in $x$ can be completely incorrect or zero so long as those important $x_i$ are right.
Is there any faster algorithm that can take advantage of this to reduce the amount of work done when solving $Ax=b$?
Note: An obvious general way to calculate $x_i$ values directly is using Cramer's rule but I don't know how it could be applied to such large sparse matrices quickly.