Hybrid Multicore/vectorisation technique applied to the elastic wave equation on a staggered grid

Sofya Titarenko, Mark Hildyard

Research output: Contribution to journalArticle

4 Citations (Scopus)

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.
LanguageEnglish
Pages53-62
Number of pages10
JournalComputer Physics Communications
Volume216
Early online date1 Mar 2017
DOIs
Publication statusPublished - Jul 2017
Externally publishedYes

Fingerprint

Elastic waves
Wave equations
elastic waves
wave equations
grids
education
application programming interface
pulse detonation engines
data structures
Application programming interfaces (API)
Wave propagation
Particle accelerators
Program processors
central processing units
Data structures
wave propagation
accelerators
Physics
Data storage equipment
physics

Cite this

@article{a503f5598ae0474e8281f163a8b7c3fe,
title = "Hybrid Multicore/vectorisation technique applied to the elastic wave equation on a staggered grid",
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.",
keywords = "OpenMP, Vectorisation, Multicore, Elastic waves, Staggered grid",
author = "Sofya Titarenko and Mark Hildyard",
year = "2017",
month = "7",
doi = "10.1016/j.cpc.2017.02.022",
language = "English",
volume = "216",
pages = "53--62",
journal = "Computer Physics Communications",
issn = "0010-4655",
publisher = "Elsevier",

}

Hybrid Multicore/vectorisation technique applied to the elastic wave equation on a staggered grid. / Titarenko, Sofya; Hildyard, Mark.

In: Computer Physics Communications, Vol. 216, 07.2017, p. 53-62.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Hybrid Multicore/vectorisation technique applied to the elastic wave equation on a staggered grid

AU - Titarenko, Sofya

AU - Hildyard, Mark

PY - 2017/7

Y1 - 2017/7

N2 - 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.

AB - 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.

KW - OpenMP

KW - Vectorisation

KW - Multicore

KW - Elastic waves

KW - Staggered grid

UR - https://www.scopus.com/record/display.uri?eid=2-s2.0-85015364959&origin=resultslist&sort=plf-f&src=s&st1=Hybrid+Multicore%2fvectorisation+technique+applied+to+the+elastic+wave+equation+on+a+staggered+grid&st2=&sid=db53b3c1e0cdb317f659a38f1390a067&sot=b&sdt=b&sl=112&s=TITLE-ABS-KEY%28Hybrid+Multicore%2fvectorisation+technique+applied+to+the+elastic+wave+equation+on+a+staggered+grid%29&relpos=0&citeCnt=4&searchTerm=

U2 - 10.1016/j.cpc.2017.02.022

DO - 10.1016/j.cpc.2017.02.022

M3 - Article

VL - 216

SP - 53

EP - 62

JO - Computer Physics Communications

T2 - Computer Physics Communications

JF - Computer Physics Communications

SN - 0010-4655

ER -