Performance portability in reverse time migration and seismic modelling via OpenACC

Heterogeneity among the computational resources within a single machine has significantly increased in high performance computing to exploit the tremendous potential of graphics processing units (GPUs). Portability in terms of code development and performance has been a challenge due to major differences between GPU programming and memory models from one side and conventional central processing units (CPUs) from another side. Performance characteristics of compilers and processors also vary between machines. Emerging high-level directive-based programming models such as OpenACC has been proposed to target this challenge. In this work, we develop OpenACC implementations for both seismic modelling and reverse time migration algorithms that solve the isotropic, acoustic, and elastic wave equations. We employ OpenACC to take advantage of the computational power of two Nvidia GPU cards: (1) M2090 and (2) K40, residing in IBM and CRAY XC30 clusters respectively. We also explore the main aspects of hybridization seismic modelling and reverse time migration by implementing an Message Passing Interface (MPI)+OpenACC approach. We expose various mapping techniques to develop a portable code that maximizes performance regardless of compiler or platform. Depending on the intensity of the computations, different propagators exhibited different speedup behaviours against a full socket CPU MPI implementation. A performance enhancement of ~10× was obtained, when the acoustic model was ported to a single GPU, compared with a 1.7× speedup obtained using the isotropic model. Our MPI+OpenACC implementation of reverse time migration and seismic modelling shows promising scaling when multiple GPUs were used.

[1]  Henri Calandra,et al.  GPU technology applied to reverse time migration and seismic modeling via OpenACC , 2015, PMAM '15.

[2]  G. McMechan,et al.  Reverse-time migration of offset vertical seismic profiling data using the excitation-time imaging condition , 1986 .

[3]  Oscar R. Hernandez,et al.  Titan : Early experience with the Cray XK 6 at Oak Ridge National Laboratory , 2012 .

[4]  E. Baysal,et al.  Reverse time migration , 1983 .

[5]  Timothy G. Mattson,et al.  OpenCL Programming Guide , 2011 .

[6]  Jean-Pierre Berenger,et al.  A perfectly matched layer for the absorption of electromagnetic waves , 1994 .

[7]  Ekkehart Tessmer Reverse-time migration in TTI media , 2010 .

[8]  Henri Calandra,et al.  Experiences with OpenMP, PGI, HMPP and OpenACC Directives on ISO/TTI Kernels , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

[9]  Henri Calandra,et al.  Fast seismic modeling and Reverse Time Migration on a GPU cluster , 2009, 2009 International Conference on High Performance Computing & Simulation.

[10]  Saber Feki,et al.  Predictive Performance Tuning of OpenACC Accelerated Applications , 2014 .

[11]  Ray W. Grout,et al.  Hybridizing S3D into an Exascale application using OpenACC: An approach for moving to multi-petaflops and beyond , 2012, 2012 International Conference for High Performance Computing, Networking, Storage and Analysis.

[12]  J. Carcione,et al.  Seismic modelingSeismic modeling , 2002 .

[13]  Michael Wolfe,et al.  Implementing the PGI Accelerator model , 2010, GPGPU-3.

[14]  Bin Wang,et al.  Expanding domain methods in GPU based TTI reverse time migration , 2011 .

[15]  Stephen A. Jarvis,et al.  Accelerating Hydrocodes with OpenACC, OpenCL and CUDA , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.