Skip to main content

Support Operator Rupture Dynamics on GPU

  • Chapter
  • First Online:
  • 2775 Accesses

Part of the book series: Lecture Notes in Earth System Sciences ((LNESS))

Abstract

The method of Support Operator (SOM) is a numerical method to simulate seismic wave propagation by solving the three dimension viscoelastic equations. Its implementation, the Support Operator Rupture Dynamics (SORD) has been proved to be highly scalable in large-scale multi-processors calculations. This paper discusses accelerating SORD using on GPU using NVIDIA CUDA C. Compared to its original version on CPU, we have acrhieved a maximum 12.8X speed-up.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  • Day SM, Dalguer LA, Lapusta N, Liu Y (2005) Comparison of finite difference and boundary integral solutions to three-dimensional spontaneous rupture. J Geophys Res Solid Earth 110:23

    Article  Google Scholar 

  • Ely GP, Day SM, Minster JB (2008) A support-operator method for viscoelastic wave modelling in 3-D heterogeneous media. Geophys J Int 172:331–344

    Article  Google Scholar 

  • Ely GP, Day SM, Minster JB (2009) A support-operator method for 3-D rupture dynamics. Geophys J Int 177:1140–1150

    Article  Google Scholar 

  • Ely GP, Day SM, Minster JB (2010) Dynamic rupture models for the Southern San Andreas fault. Bull Seismol Soc Am 100:131–150

    Article  Google Scholar 

  • Flanagan DP, Belytschko T (1981) A uniform strain hexahedron and quadrilateral with orthogonal hourglas control. Int J Numer Methods Eng 17:679–706

    Article  MATH  Google Scholar 

  • Kosloff D, Frazier GA (1978) Treatment of hourglass patterns in low order finite-element codes. Int J Numer Anal Methods Geomech 2:57–72

    Article  Google Scholar 

  • Ma S, Liu PC (2006) Modeling of the perfectly matched layer absorbing boundaries and intrinsic attenuation in explicit finite-element methods. Bull Seismol Soc Am 96:1779–1794

    Article  Google Scholar 

  • McQuinn E, Wang D (2009). Nife: a GPU port of the support operator for rupture dynamics (SORD). San Diego: CSE 260.

    Google Scholar 

  • Michea D, Komatitsch D (2010) Accelerating a three-dimensional finite-difference wave propagation code using GPU graphics cards. Geophys J Int 182:389–402

    Google Scholar 

  • NVIDIA (2009) NVIDIA CUDA programming guide version 2.3. NVIDIA Corporation, Santa Clara.

    Google Scholar 

  • Samarskii AA, Tishkin VF, Favorskii AP, Shashkov MY (1981) Operational finite-difference schemes. Differ Equ 17:854–862

    MathSciNet  Google Scholar 

  • Shashkov MY (1996) Conservative finite-difference methods on general grids. CRC Press, Boca Raton

    MATH  Google Scholar 

  • Zhao Y (2008) Lattice Boltzmann based PDE solver on the GPU. Vis Comput 24:323–333

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Appendix A: Hourglass Control from Node to Cell

Appendix A: Hourglass Control from Node to Cell

This is the CUDA C code of hourglass operator Q \(_{k}\). We use a modified form of the hourglass control scheme described by Flanagan & Belytschko. Flanagan and Belytschko (1981) and more recently by Day et al. Day et al (2005). and Ma & Liu. Ma and Liu (2006). As Equations (16), the code is used for transforming the node variables to cell variables.

$$\begin{aligned} {} (Q_1 F)_{000}&=F_{000} +F_{011} -F_{101} -F_{110} +F_{111} +F_{100} -F_{010} -F_{001} \end{aligned}$$
(25.23)
$$\begin{aligned} (Q_2 F)_{000}&=F_{000} +F_{101} -F_{110} -F_{011} +F_{111} +F_{101} -F_{001} -F_{100} \end{aligned}$$
(25.24)
$$\begin{aligned} (Q_3 F)_{000}&=F_{000} +F_{110} -F_{011} -F_{101} +F_{111} +F_{001} -F_{100} -F_{010} \end{aligned}$$
(25.25)
$$\begin{aligned} (Q_4 F)_{000}&=F_{000} +F_{011} +F_{101} +F_{110} -F_{111} -F_{100} -F_{010} -F_{001} \end{aligned}$$
(25.26)

 

figure a3
figure a4

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Song, S., Zhou, Y., Dong, T., Yuen, D.A. (2013). Support Operator Rupture Dynamics on GPU. In: Yuen, D., Wang, L., Chi, X., Johnsson, L., Ge, W., Shi, Y. (eds) GPU Solutions to Multi-scale Problems in Science and Engineering. Lecture Notes in Earth System Sciences. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-16405-7_25

Download citation

Publish with us

Policies and ethics