GPU computing with OpenCL to model 2-D elastic wave propagation: exploring memory usage

Ursula Iturrarán-Viveros and Miguel Molero-Armenta
Computational Science & Discovery 8. 22 pages

Graphics processing units (GPUs) have become increasingly powerful in recent years. Programs exploring the advantages of this architecture could achieve large performance gains and this is the aim of new initiatives in high performance computing. The objective of this work is to develop an efficient tool to model 2D elastic wave propagation on parallel computing devices. To this end, we implement the elastodynamic finite integration technique, using the industry open standard open computing language (OpenCL) for cross-platform, parallel programming of modern processors, and an open-source toolkit called [Py]OpenCL. The code written with [Py]OpenCL can run on a wide variety of platforms; it can be used on AMD or NVIDIA GPUs as well as classical multicore CPUs, adapting to the underlying architecture. Our main contribution is its implementation with local and global memory and the performance analysis using five different computing devices (including Kepler, one of the fastest and most efficient high performance computing technologies) with various operating systems.

Acknowledgments

We thank four anonymous reviewers for their constructive comments and suggestions that helped to improve this manuscript. This work has been partially supported by DGAPA-UNAM under project IN116114-2, Conacyt México under program PROINNOVA project number 212923, by the Consejo Nacional de Ciencia y Tecnología México PROINNOVA project number 221844 and by the Spanish Economy and Competitiveness Ministry (TEC2012-38402- C04-03). UI-V thanks Pilar Ladrón de Guevara for her crucial help to locating useful references.