Load Balancing using Hilbert Space-filling Curves for Parallel Reservoir Simulations

The goal of load balancing (grid partitioning) is to minimize overall computations and communications, and to make sure that all processors have a similar workload. Geometric methods divide a grid by using a location of a cell while topological methods work with connectivity of cells, which is generally described as a graph. This paper introduces a Hilbert space-filling curve method. A space-filling curve is a continuous curve and defines a map between a one-dimensional space and a multi-dimensional space. A Hilbert space-filling curve is one special space-filling curve discovered by Hilbert and has many useful characteristics, such as good locality, which means that two objects that are close to each other in a multi-dimensional space are also close to each other in a one dimensional space. This property can model communications in grid-based parallel applications. The idea of the Hilbert space-filling curve method is to map a computational domain into a one-dimensional space, partition the one-dimensional space to certain intervals, and assign all cells in a same interval to a MPI. To implement a load balancing method, a mapping kernel is required to convert high-dimensional coordinates to a scalar value and an efficient one-dimensional partitioning module that divides a one-dimensional space and makes sure that all intervals have a similar workload. The Hilbert space-filling curve method is compared with ParMETIS, a famous graph partitioning package. The results show that our Hilbert space-filling curve method has good partition quality. It has been applied to grids with billions of cells, and linear scalability has been obtained on IBM Blue Gene/Q.

[1]  Hui Liu,et al.  Researches on Dynamic Load Balancing Algorithms and hp-Adaptivity in 3-D Parallel Adaptive Finite Element Computations , 2016, ArXiv.

[2]  John Killough,et al.  Simulation of Compositional Reservoir Phenomena on a Distributed-Memory Parallel Computer , 1991 .

[3]  Jinchao Xu,et al.  A Multilevel Preconditioner and Its Shared Memory Implementation for New Generation Reservoir Simulator , 2014 .

[4]  Christos Faloutsos,et al.  Analysis of the Clustering Properties of the Hilbert Space-Filling Curve , 2001, IEEE Trans. Knowl. Data Eng..

[5]  Xian Liu,et al.  An algorithm for encoding and decoding the 3-D Hilbert order , 1997, IEEE Trans. Image Process..

[6]  Hui,et al.  A SET OF SYMMETRIC QUADRATURE RULES ON TRIANGLES AND TETRAHEDRA , 2009 .

[7]  Magnus Jahre,et al.  A Study of Energy and Locality Effects Using Space-Filling Curves , 2014, 2014 IEEE International Parallel & Distributed Processing Symposium Workshops.

[8]  Chris Walshaw,et al.  JOSTLE: multilevel graph partitioning software: an overview , 2007 .

[9]  Michael Andrew Christie,et al.  Tenth SPE Comparative Solution Project: a comparison of upscaling techniques , 2001 .

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

[11]  Alex Pothen,et al.  PARTITIONING SPARSE MATRICES WITH EIGENVECTORS OF GRAPHS* , 1990 .

[12]  Hua Li,et al.  Multilevel Preconditioners for a New Generation Reservoir Simulator , 2013 .

[13]  Hui Liu,et al.  Development of Algebraic Multigrid Solvers Using GPUs , 2013, ANSS 2013.

[14]  Zhang,et al.  A Parallel Algorithm for Adaptive Local Refinement of Tetrahedral Meshes Using Bisection , 2009 .

[15]  Yousef Saad,et al.  Exploiting Capabilities of Many Core Platforms in Reservoir Simulation , 2011, ANSS 2011.

[16]  François Pellegrini,et al.  PT-Scotch: A tool for efficient parallel graph ordering , 2008, Parallel Comput..

[17]  H. Sagan Space-filling curves , 1994 .

[18]  William F. Mitchell The Refinement-Tree Partition for Parallel Solution of Partial Differential Equations , 1998, Journal of research of the National Institute of Standards and Technology.

[19]  Zhensong Zhang,et al.  Development of A Fast Auxiliary Subspace Pre-conditioner for Numerical Reservoir Simulators , 2011 .

[20]  Hui Liu Dynamic Load Balancing on Adaptive Unstructured Meshes , 2008, 2008 10th IEEE International Conference on High Performance Computing and Communications.

[21]  Arthur R. Butz,et al.  Alternative Algorithm for Hilbert's Space-Filling Curve , 1971, IEEE Transactions on Computers.

[22]  Shahid H. Bokhari,et al.  A Partitioning Strategy for Nonuniform Problems on Multiprocessors , 1987, IEEE Transactions on Computers.

[23]  William F. Mitchell,et al.  Hamiltonian Paths Through Two- and Three-Dimensional Grids , 2005, Journal of research of the National Institute of Standards and Technology.

[24]  Larry S.K. Fung,et al.  A Parallel Reservoir Simulator for Large-Scale Reservoir Simulation , 2002 .

[25]  Curt Jones,et al.  A Heuristic for Reducing Fill-In in Sparse Matrix Factorization , 1993, PPSC.

[26]  K. H. Coats Simulation of Steamflooding With Distillation and Solution Gas , 1976 .

[27]  Richard E. Ewing,et al.  Multilevel preconditioners for mixed methods for second order elliptic problems , 1996 .

[28]  Vipin Kumar,et al.  A Fast and High Quality Multilevel Scheme for Partitioning Irregular Graphs , 1998, SIAM J. Sci. Comput..

[29]  Horst D. Simon,et al.  Partitioning of unstructured problems for parallel processing , 1991 .

[30]  Vipin Kumar,et al.  A Parallel Algorithm for Multilevel Graph Partitioning and Sparse Matrix Ordering , 1998, J. Parallel Distributed Comput..

[31]  Peter A. Forsyth,et al.  Incomplete Factorization Methods for Fully Implicit Simulation of Enhanced Oil Recovery , 1984 .

[32]  Hamdi A. Tchelepi,et al.  Parallel Scalable Unstructured CPR-Type Linear Solver for Reservoir Simulation , 2005 .

[33]  Yousef Saad,et al.  GPU-accelerated preconditioned iterative linear solvers , 2013, The Journal of Supercomputing.

[34]  V. Natoli,et al.  Realizing the Potential of GPUs for Reservoir Simulation , 2014 .

[35]  K. H. Coats AN EQUATION OF STATE COMPOSITIONAL MODEL , 1980 .

[36]  Leslie M. Goldschlager Short algorithms for space‐filling curves , 1981, Softw. Pract. Exp..

[37]  F. Pellegrini,et al.  Static mapping by dual recursive bipartitioning of process architecture graphs , 1994, Proceedings of IEEE Scalable High Performance Computing Conference.

[38]  David P. Rodgers,et al.  Improvements in multiprocessor system design , 1985, ISCA '85.

[39]  B. Nour-Omid,et al.  A study of the factorization fill‐in for a parallel implementation of the finite element method , 1994 .

[40]  J. Griffiths,et al.  Table-driven algorithms for generating space-filling curves , 1985 .

[41]  Nengchao Wang,et al.  A new algorithm for encoding and decoding the Hilbert order , 2007, Softw. Pract. Exp..

[42]  Larry S.K. Fung,et al.  A Next-Generation Parallel Reservoir Simulator for Giant Reservoirs , 2009 .

[43]  Jinchao Xu,et al.  A Mechanistic Model for Wettability Alteration by Chemically Tuned Waterflooding in Carbonate Reservoirs , 2015 .

[44]  Sei-ichiro Kamata,et al.  A new algorithm for N-dimensional Hilbert scanning , 1999, IEEE Trans. Image Process..

[45]  K. H. Coats Reservoir Simulation (1987 PEH Chapter 48) , 1987 .

[46]  Jinchao Xu,et al.  A Multi-Stage Preconditioner for the Black Oil Model and Its OpenMP Implementation , 2014 .

[47]  Yucai Feng,et al.  Algorithm for Analyzing N-Dimensional Hilbert Curve , 2005, WAIM.

[48]  G. Jerauld,et al.  Modeling Low-Salinity Waterflooding , 2008 .

[49]  R. Johns,et al.  Displacement efficiency for low salinity polymer flooding including wettability alteration , 2016 .

[50]  K. H. Coats,et al.  A Highly Implicit Steamflood Model , 1978 .

[51]  Bruce Hendrickson,et al.  A Multi-Level Algorithm For Partitioning Graphs , 1995, Proceedings of the IEEE/ACM SC95 Conference.

[52]  Xiao-Chuan Cai,et al.  A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems , 1999, SIAM J. Sci. Comput..

[53]  A. J. Cole,et al.  A note on space filling curves , 1983, Softw. Pract. Exp..

[54]  Günther F. Schrack,et al.  Encoding and decoding the Hilbert order , 1996 .

[55]  Brian Wyvill,et al.  On the generation and use of space‐filling curves , 1983, Softw. Pract. Exp..

[56]  K. H. Coats,et al.  Effects of grid type and difference scheme on pattern steamflood simulation results , 1982 .

[57]  Wayne Joubert,et al.  Falcon: A Production Quality Distributed Memory Reservoir Simulator , 1997 .

[58]  George Cybenko,et al.  Dynamic Load Balancing for Distributed Memory Multiprocessors , 1989, J. Parallel Distributed Comput..