AmgX V1.0: Enabling Reservoir Simulation with Classical AMG

Originally published at:

Back in January I wrote a post about the public beta availability of AmgX, a linear solver library for large-scale industrial applications. Since then, AmgX has grown up! Now we can solve problems that were impossible for us before, due to the addition of “classical” Algebraic Multi-Grid (often called Ruge-Stueben AMG). V1.0 comes complete with…

Those are very impressive results! Did you use double or single precision when computing the speed up? And what smoother did you use in the plot when comparing to HYPRE?
I just implemented a solver for the inhomogeneous poisson equation in my own simulation code using HYPRE. Reading this, it is very tempting to try out AmgX :)

These are all double precision results. SPE10 has such a wider range of coefficient values that single precision misses a lot of the action. For HYPRE, we used Gauss-Seidel smoothing with 1 pre and post sweep. For AmgX we used a Jacobi variant called Jacobi-L1. This takes the sum of the absolute value of each entry in each row, and uses the inverse of this as a damping factor. Both solvers used D2 interpolation and a truncated prolongation (4 elements are kept).

Joe, could you please share with us the actual timings for build and solve stages for the 5M and 10M SPE10 benchmarks? Also, since these seem to be modified problems compared to the basic SPE10, would you be able to provide the matrix and RHS for our internal benchmarking purposes?

Thanks in advance; adrin

Hello, Sir i am working on CUDA and i want to use AmgX with OpenFOAM but due to lack of resources i am not able to identify feasibility with OpenFOAM. can u suggest me some guidelines.