Abstract

In modern physics it has become common to find the solution of a problem by solving numerically a set of PDEs. Whether solving them on a finite difference grid or by a finite element approach, the main calculations are often applied to a stencil structure. In the last decade it has become usual to work with so called big data problems where calculations are very heavy and accelerators and modern architectures are widely used. Although CPU and GPU clusters are often used to solve such problems, parallelisation of any calculation ideally starts from a single processor optimisation. Unfortunately, it is impossible to vectorise a stencil structured loop with high level instructions. In this paper we suggest a new approach to rearranging the data structure which makes it possible to apply high level vectorisation instructions to a stencil loop and which results in significant acceleration. The suggested method allows further acceleration if shared memory APIs are used. We show the effectiveness of the method by applying it to an elastic wave propagation problem on a finite difference grid. We have chosen Intel architecture for the test problem and OpenMP (Open Multi-Processing) since they are extensively used in many applications.

Highlights

  • Numerical modelling remains one of the most powerful tools in the research areas of physics and engineering

  • GPU parallelisation has been successfully applied to elastic wave propagation on a staggered grid, see [25,26,27]

  • In this paper we have presented a new approach for parallelisation of a finite difference code on a single processor

Read more

Summary

Introduction

Numerical modelling remains one of the most powerful tools in the research areas of physics and engineering. The finite difference method was first applied to solve elastic wave propagation by [10] and used to generate synthetic seismograms by [11]. The method was first proposed in [14] to solve wave propagation problems and is proved to have better stability for 4th order accuracy schemes [15]. It has been developed further by [16], for anisotropic media [17] and in 3D space [18]. GPU parallelisation has been successfully applied to elastic wave propagation on a staggered grid, see [25,26,27]. Further examples of MPI (Message Passing Interface) parallelisation can be found in [28], hybrid MPI-OpenMP methods in [29] and parallelisation of acoustic wave propagation through OpenMP in [30]

Elastic wave equation on a staggered grid
Vectorisation
Memory organisation
Multithreading with OpenMp
Findings
Conclusions

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.