Implementation and Performance Analysis of a Parallel Oil Reservoir Simulator Tool Using a CG Method on a GPU-Based System

An oil reservoir simulator is a crucial tool used by petroleum engineering to analyze reservoir conditions. To increase its performance, we implement a parallel version of the tool on a Graphic Processing Unit (GPU), using Computer Unified Device Architecture (CUDA) programming model and the Single Instruction Multiple Threads (SIMT). This paper presents our parallel implementation and performance analysis for 1-D, 2-D, and 3-D oil-phase reservoirs. The implementation and the performance evaluation reveal the gains and the losses achieved by the parallelization of a reservoir simulator on a Graphics Processing Unite (GPU) system. The performance results show that despite the interdependency between the different computational parts of the Conjugate Gradient (CG) method used as a linear solver in the parallel reservoirs, a speedup of 26 can be easily obtained for an oil reservoir simulator using 15 streaming multiprocessors (SMs), compared to a sequential CPU execution. The parallel execution scales well with grid dimensionality.

[1]  Magne S. Espedal,et al.  Parallel Simulation of Multiphase/Multicomponent Flow Models , 2005 .

[2]  D. O’Leary The block conjugate gradient algorithm and related methods , 1980 .

[3]  Larry S.K. Fung,et al.  A Massively Parallel Reservoir Simulator for Large Scale Reservoir Simulation , 1999 .

[4]  P. Aldo Moro Conjugate-Gradients Algorithms : An MPI-OpenMP Implementation on Distributed Shared Memory Systems , 1999 .

[5]  J.G. Lewis,et al.  Matrix-vector multiplication and conjugate gradient algorithms on distributed memory computers , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[6]  Youngjoo Kim,et al.  Performance of Parallel Conjugate Gradient Solvers in Meshfree Analysis , 2003 .

[7]  Yousef Saad,et al.  High performance manycore solvers for reservoir simulation , 2010 .

[8]  Yuanle Ma,et al.  Computational methods for multiphase flows in porous media , 2007, Math. Comput..

[9]  J. Shewchuk An Introduction to the Conjugate Gradient Method Without the Agonizing Pain , 1994 .

[10]  Guang R. Gao,et al.  Implementing parallel conjugate gradient on the EARTH multithreaded architecture , 2004, 2004 IEEE International Conference on Cluster Computing (IEEE Cat. No.04EX935).

[11]  Dianne P. O'Leary,et al.  Parallel implementation of the block conjugate gradient algorithm , 1987, Parallel Comput..

[12]  Andrzej Jordan,et al.  The Parallel Algorithm of Conjugate Gradient Method , 2001, IWCC.

[13]  E. Guizzo Winner: Geophysics Solving the Oil Equation , 2008, IEEE Spectrum.

[14]  Andrzej Jordan,et al.  A new version of conjugate gradient method parallel implementation , 2002, Proceedings. International Conference on Parallel Computing in Electrical Engineering.

[15]  Martin Fodslette Møller,et al.  A scaled conjugate gradient algorithm for fast supervised learning , 1993, Neural Networks.

[16]  David H. Bailey,et al.  The Nas Parallel Benchmarks , 1991, Int. J. High Perform. Comput. Appl..

[17]  Béatrice Rivière,et al.  Computational methods for multiphase flows in porous media , 2007, Math. Comput..

[18]  Sachin B. Patkar,et al.  Acceleration of conjugate gradient method for circuit simulation using CUDA , 2009, 2009 International Conference on High Performance Computing (HiPC).

[19]  Larry S.K. Fung,et al.  From Mega Cell to Giga Cell Reservoir Simulation , 2008 .

[20]  David M Fernández,et al.  Enhancing the Performance of Conjugate Gradient Solvers on Graphic Processing Units , 2011, IEEE Transactions on Magnetics.

[21]  P. Glaskowsky NVIDIA ’ s Fermi : The First Complete GPU Computing Architecture , 2009 .

[22]  Hee-Dae Kwon Efficient parallel implementations of finite element methods based on the conjugate gradient method , 2003, Appl. Math. Comput..

[23]  Martyn R. Field Optimizing a Parallel Conjugate Gradient Solver , 1998, SIAM J. Sci. Comput..

[24]  J. G. Lewis,et al.  Distributed memory matrix-vector multiplication and conjugate gradient algorithms , 1993, Supercomputing '93.

[25]  M. Møller A Scaled Conjugate Gradient Algorithm for Fast Supervised Learning , 1990 .

[26]  Khaled Shuaib,et al.  Empirical Study for Communication Cost of Parallel Conjugate Gradient on a Star-Based Network , 2010, 2010 Fourth Asia International Conference on Mathematical/Analytical Modelling and Computer Simulation.

[27]  Knut-Andreas Lie,et al.  Toward Reservoir Simulation on Geological Grid Models , 2004 .

[28]  L. Ismail Communication issues in parallel Conjugate Gradient method using a star-based network , 2010, 2010 International Conference on Computer Applications and Industrial Electronics.

[29]  Gerd Heber,et al.  Landing CG on EARTH: A Case Study of Fine-Grained Multithreading on an Evolutionary Path , 2000, ACM/IEEE SC 2000 Conference (SC'00).

[30]  Michael Garland,et al.  Efficient Sparse Matrix-Vector Multiplication on CUDA , 2008 .

[31]  J. H. Abou-Kassem,et al.  Petroleum reservoir simulation : a basic approach , 2006 .

[32]  Leila Ismail,et al.  Toward an Automatic Load Balanced Distribution Model in Conjugate Gradient Method for One-Dimensional One-Phase Oil Reservoir Simulation , 2010, 2010 10th IEEE International Conference on Computer and Information Technology.