This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
Accelerating a 3D Finite-Difference Earthquake Simulation with a C-to-CUDA Translator
May/June 2012 (vol. 14 no. 3)
pp. 48-59
Didem Unat, University of California, San Diego
Jun Zhou, University of California, San Diego
Yifeng Cui, University of California, San Diego
Scott B. Baden, University of California, San Diego
Xing Cai, Simula Research Laboratory, Norway

GPUs provide impressive computing power, but GPU programming can be challenging. Here, an experience in porting real-world earthquake code to Nvidia GPUs is described. Specifically, an annotation-based programming model, called Mint, and its accompanying source-to-source translator are used to automatically generate CUDA source code and simplify the exploration of performance tradeoffs.

1. D. Unat, X. Cai, and S.B. Baden, "Mint: Realizing CUDA Performance in 3D Stencil Methods with Annotated C," Proc. Int'l Conf. Supercomputing, ACM, 2011, pp. 214–224.
2. J. Virieux, "P-SV Wave Propagation in Heterogeneous Media: Velocity-Stress Finite-Difference Method," Geophysics, vol. 51, no. 4, 1986, pp. 889–901.
3. P. Moczo et al., "The Finite-Difference and Finite-Element Modeling of Seismic Wave Propagation and Earthquake Motion," Acta Physica Slovaca, vol. 57, no. 2, 2007, pp. 177–406.
4. T. Furumura and L. Chen, "Parallel Simulation of Strong Ground Motions During Recent and Historical Damaging Earthquakes in Tokyo, Japan," Parallel Computation, vol. 31, no. 2, 2005, pp. 149–165.
5. Y. Cui et al., "Scalable Earthquake Simulation on Petascale Supercomputers," Proc. 2010 ACM/IEEE Conf. Supercomputing, IEEE CS, 2010, pp. 1–20.
6. K.B. Olsen, "Simulation of Three-Dimensional Wave Propagation in the Salt Lake Basin," Bulletin Seismological Soc. of Am., vol. 85, no. 6, 1995, pp. 1688–1710.
7. K. Olsen et al., "Strong Shaking in Los Angeles Expected from Southern San Andreas Earthquake," Geophysical Research Letters, vol. 33, no. 7, 2006, pp. 2–5.
8. L. Dalguer and S.M. Day, "Staggered-Grid Split-Node Method for Spontaneous Rupture Simulation," J. Geophysical Research, vol. 112, no. B02302, 2007; doi:10.1029/2006JB004467.
9. A. Simone and S. Hestholm, "Instabilities in Applying Absorbing Boundary Conditions to High-Order Seismic Modeling Algorithms," Geophysics, vol. 63, no. 3, 1998, pp. 1017–1023.
10. J. Nickolls et al., "Scalable Parallel Programming with CUDA," Proc. Siggraph, 2008, ACM, pp. 1–14.
11. P. Micikevicius, "3D Finite Difference Computation on GPUs Using CUDA," Proc. 2nd Workshop General Purpose Processing on Graphics Processing Units, ACM, 2009, pp. 79–84.
12. D. Michéa and D. Komatitsch, "Accelerating a Three-Dimensional Finite-Difference Wave Propagation Code Using GPU Graphics Cards," Geophysical J. Int'l, vol. 182, no. 1, 2010, pp. 389–402.
13. S. Lee and R. Eigenmann, "OpenMPC: Extended OpenMP Programming and Tuning for GPUs," Proc. 2010 ACM/IEEE Conf. Supercomputing, IEEE CS, 2010, pp. 1–11.
14. A. Danalis et al., "The Scalable Heterogeneous Computing (SHOC) Benchmark Suite," Proc. 3rd Workshop on General-Purpose Computation on Graphics Processing Units, 2010, pp. 63–74.
15. V. Volkov and J.W. Demmel, "Benchmarking GPUs to Tune Dense Linear Algebra," Proc. 2008 ACM/IEEE Conf. Supercomputing, IEEE Press, 2008, pp. 31:1–31:11.
1. P. Micikevicius, "3D Finite Difference Computation on GPUs Using CUDA," Proc. 2nd Workshop General Purpose Processing on Graphics Processing Units, ACM, 2009, pp. 79–84.
2. D. Michéa and D. Komatitsch, "Accelerating a Three-Dimensional Finite-Difference Wave Propagation Code Using GPU Graphics Cards," Geophysical J. Int'l, vol. 182, no. 1, 2010, pp. 389–402.
3. Nvidia, Tuning CUDA Applications for Nvidia Fermi, v1.2, application note, 2010.
4. S. Song et al., Seismic Wave Propagation Simulation Using Support Operator Method on Multi-GPU System, tech. report, Minnesota Supercomputing Inst., Univ. Minnesota, 2010; http://static.msi.umn.edu/rreports/201134.pdf .
5. P.E. Geoffrey, M.D. Steven, and J.-B. Minster, "A Support-Operator Method for Viscoelastic Wave Modeling in 3-D Heterogeneous Media," Geophysical J. Int'l, vol. 172, no. 1, 2008, pp. 331–344.
6. J. Tromp, D. Komatitsch, and Q. Liu, "Spectral-Element and Adjoint Methods in Seismology," Comm. Computational Physics, vol. 3, no. 1, 2008, pp. 1–32.
7. D. Komatitsch, D. Michéa, and G. Erlebacher, "Porting a High-Order Finite-Element Earthquake Modeling Application to Nvidia Graphics Cards using CUDA," J. Parallel and Distributed Computing, vol. 69, no. 5, 2009, pp. 451–460.
8. H. Chafi et al., "A Domain-Specific Approach to Heterogeneous Parallelism," Proc. 16th ACM Symp. Principles and Practice of Parallel Programming, ACM, 2011, pp. 35–46.
9. F.V. Lionetti, A.D. McCulloch,, and S.B. Baden, "Source-to-Source Optimization of CUDA C for GPU Accelerated Cardiac Cell Modeling," Proc. 16th Int'l Euro-Par Conf. Parallel Processing: Part I, Springer-Verlag, 2010, pp. 38–49.
10. M. Christen and H.B.O. Schenk, "Patus: A Code Generation and Autotuning Framework for Parallel Iterative Stencil Computations on Modern Microarchitectures," Proc. Int'l Conf. Parallel and Distributed Computing Systems, IEEE Press, 2011, pp. 676–687.
11. D. Unat, X. Cai, and S.B. Baden, "Mint: Realizing CUDA Performance in 3D Stencil Methods with Annotated C," Proc. Int'l Conf. Supercomputing, ACM, 2011, pp. 214–224.
12. D. Unat et al., "Auto-Optimization of a Feature Selection Algorithm," Proc. 4th Workshop on Emerging Applications and Many-Core Architecture, 2011; http://sites.google.com/site/eamaworkshop eama11.
13. M. Wolfe, "Implementing the PGI Accelerator Model," Proc. 3rd Workshop on General-Purpose Computation on Graphics Processing Units, ACM, 2010, pp. 43–50.
14. S. Lee and R. Eigenmann, "OpenMPC: Extended OpenMP Programming and Tuning for GPUs," Proc. 2010 ACM/IEEE Conf. Supercomputing, IEEE CS, 2010, pp. 1–11.
15. F. Bodin and S. Bihan, "Heterogeneous Multicore Parallel Programming for Graphics Processing Units," J. Scientific Programming, vol. 17, no. 4, 2009, pp. 325–336.

Index Terms:
Code generation, optimization, emerging technologies, Earth and atmospheric sciences, scientific computing
Citation:
Didem Unat, Jun Zhou, Yifeng Cui, Scott B. Baden, Xing Cai, "Accelerating a 3D Finite-Difference Earthquake Simulation with a C-to-CUDA Translator," Computing in Science and Engineering, vol. 14, no. 3, pp. 48-59, May-June 2012, doi:10.1109/MCSE.2012.44
Usage of this product signifies your acceptance of the Terms of Use.