[AmgX] Shell Matrices

Dear Developers,

I have question concerning the implementation of high-dimensional matrices within AmgX (order 5 million x 5 million) in implemented methods for solving linear equation systems like Gauss-Seidel:

Does AmgX support shell matrices (matrices that compute their elements when asked, rather than storing them in memory)?


I do not know what AmgX is , but what about cuSPARSE()? If the number of non-zero elements if not crazy large you could maybe implement Gauss-Seidel using cuSPARSE:


I do not know anything about shell matrices, but have successfully used cuSPARSE when I know the matrices have a large number of zeros.

We don’t (yet) use this approach, everything for AmgX has to be a concrete matrix in memory, but we do use CSR (compressed sparse row) format. This kind of shell matrix trick is great for regular grids, but AmgX was originally designed for unstructured grids, so we haven’t tried out this approach. Do you have a reference for the approach you can share?
Thanks- Joe Eaton, Manager of AmgX library