I have matrices A and G. A is sparse and is nxn with n very large (can be on the order of several million.) G is an nxm tall matrix with m rather small (1 < m < 1000) and each column can only have a single 1 entry with the rest being 0's, such that $G^TG = I$. A is huge, so it is really tough to invert, and I can solve a linear system such as $Ax = b$ iteratively using a Krylov subspace method such as BiCGStab(l), but I do not have $A^{-1}$ explicitly.
I want to solve a system of the form: $(G^TA^{-1}G)x = b$, where x and b are m length vectors. One way to do it is to use an iterative algorithm within an iterative algorithm to solve for $A^{-1}$ for each iteration of the outer iterative algorithm. This would be extremely computationally expensive, however. I was wondering if there is a computationally easier way to go about solving this problem.