🤖 AI Summary
To address the excessive computational time required for solving sparse linear systems in reservoir simulation, this work systematically evaluates GPU hardware and multiple sparse solvers within the industrial-grade OPM Flow simulator. We conduct the first comprehensive comparison—on realistic reservoir cases—of cuSparse, rocSparse, AMGCL, and a custom OpenCL-based BiCGStab+ILU0 solver. A unified GPU–CPU benchmark suite spanning 50K–1M grid cells is established. Experimental results show that a single GPU node achieves up to 5.6× speedup over a single CPU core and delivers performance equivalent to eight dual-threaded MPI CPU processes. This study empirically validates the feasibility of replacing conventional CPU clusters with GPU-accelerated nodes for large-scale reservoir simulation. It provides reproducible, evidence-based insights into heterogeneous acceleration of industrial simulators and releases an open-source sparse solver implementation as a practical contribution.
📝 Abstract
Realistic reservoir simulation is known to be prohibitively expensive in terms of computation time when increasing the accuracy of the simulation or by enlarging the model grid size. One method to address this issue is to parallelize the computation by dividing the model in several partitions and using multiple CPUs to compute the result using techniques such as MPI and multi-threading. Alternatively, GPUs are also a good candidate to accelerate the computation due to their massively parallel architecture that allows many floating point operations per second to be performed. The numerical iterative solver takes thus the most computational time and is challenging to solve efficiently due to the dependencies that exist in the model between cells. In this work, we evaluate the OPM Flow simulator and compare several state-of-the-art GPU solver libraries as well as custom developed solutions for a BiCGStab solver using an ILU0 preconditioner and benchmark their performance against the default DUNE library implementation running on multiple CPU processors using MPI. The evaluated GPU software libraries include a manual linear solver in OpenCL and the integration of several third party sparse linear algebra libraries, such as cuSparse, rocSparse, and amgcl. To perform our bench-marking, we use small, medium, and large use cases, starting with the public test case NORNE that includes approximately 50k active cells and ending with a large model that includes approximately 1 million active cells. We find that a GPU can accelerate a single dual-threaded MPI process up to 5.6 times, and that it can compare with around 8 dual-threaded MPI processes.