GPU computing offers tremendous potential to accelerate complex scientific applications and is becoming a leading force in speeding up seismic imaging and velocity analysis techniques. Developing portable code is a challenge that can be overcome using emerging high-level directive-based programming model such as OpenACC. In this paper, we develop OpenACC implementations for both seismic modeling and Reverse Time Migration (RTM) 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. Although we implement a hybrid OpenACC-MPI approach to parallelize seismic modeling and RTM on multiple GPUs, in this paper, we focus on developing mapping techniques to exploit potentials of one GPU. We observe an incremental improvement in performance while exploring different optimization techniques. Adequate code restructuring to tap GPU's potential seems critical. Depending on the intensity of computations, different propagators exhibit different speedup behaviors. A performance enhancement of ~ 10x was obtained, when the acoustic model was ported to a single GPU, compared with a 1.3x speedup obtained using the isotropic model.
[1]
Henri Calandra,et al.
Fast seismic modeling and Reverse Time Migration on a GPU cluster
,
2009,
2009 International Conference on High Performance Computing & Simulation.
[2]
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.
[3]
Jean-Pierre Berenger,et al.
A perfectly matched layer for the absorption of electromagnetic waves
,
1994
.
[4]
Yue Wang,et al.
REVERSE-TIME MIGRATION
,
1999
.
[5]
G. McMechan,et al.
Reverse-time migration of offset vertical seismic profiling data using the excitation-time imaging condition
,
1986
.
[6]
J. Carcione,et al.
Seismic modelingSeismic modeling
,
2002
.
[7]
Timothy G. Mattson,et al.
OpenCL Programming Guide
,
2011
.
[8]
Saber Feki,et al.
Predictive Performance Tuning of OpenACC Accelerated Applications
,
2014
.
[9]
Michael Wolfe,et al.
Implementing the PGI Accelerator model
,
2010,
GPGPU-3.