The 3D elastic wave equations can be used to simulate the physics of waves traveling through the Earth more precisely than acoustic approximations. However, this improvement in quality has a counterpart in the cost of the numerical scheme. A possible strategy to mitigate that expense is using specialized, high-performing architectures such as GPUs. Nevertheless, porting and optimizing a code for such a platform require a deep understanding of both the underlying hardware architecture and the algorithm at hand. Furthermore, for very large problems, multiple GPUs must work concurrently, which adds yet another layer of complexity to the codes. In this work, we have tackled the problem of porting and optimizing a 3D elastic wave propagation engine which supports both standard- and fully-staggered grids to multi-GPU clusters. At the single GPU level, we have proposed and evaluated many optimization strategies and adopted the best performing ones for our final code. At the distributed memory level, a domain decomposition approach has been used which allows for good scalability thanks to using asynchronous communications and I/O. HighlightsWe use staggered grids to simulate an elastic wave propagation across the earth.As the performance is critical, we make use of GPUs to accelerate the simulation.We show how the work is distributed among the nodes in a domain decomposition case.Regarding the complexity of the simulation, we obtain speed-ups from 10i? to 14i?.
['Felix Rubio', 'Mauricio Hanzich', 'Albert Farrés', 'Josep de la Puente', 'José M. Cela']
Finite-difference staggered grids in GPUs for anisotropic elastic wave propagation simulation