computers & geosciencesfichtner/papers/2016_gokhberg_cg.pdf · equations that must be solved...

9
Research paper Full-waveform inversion on heterogeneous HPC systems $ Alexey Gokhberg n , Andreas Fichtner Department of Earth Sciences, ETH Zurich, Zurich, Switzerland article info Article history: Received 17 March 2015 Received in revised form 25 November 2015 Accepted 16 December 2015 Available online 28 December 2015 Keywords: Seismic tomography Heterogeneous HPC systems Wave propagation Full-waveform inversion Inverse theory Spectral-element method abstract We present a spectral-element implementation of full seismic waveform inversion for large hetero- geneous HPC systems. In this we address the optimal parallelisation congurations of individual simu- lations, the large I/O requirements of adjoint simulations, and the scheduling of large numbers of forward and adjoint solves, typical for realistic inversions. Using GPU accelerators allows us to achieve a 3.54 times performance improvement over the best known homogeneous implementation. We achieve GPU memory throughput varying from 60 to 80% of the peak bandwidth, thus providing good utilisation of hardware resources. We demonstrate the practical applicability of our developments in a real-data ap- plication in the western Mediterranean. With the help of GPU accelerators, we are able to model and invert seismic wave propagation in a frequency band that is broader than permitted by the use of CPUs alone, which helps bridging the traditional gap between crustal and mantle tomography. & 2015 Elsevier Ltd. All rights reserved. 1. Introduction Seismic tomography is in a transition period where methods based on simplied wave propagation physics are successively replaced by fully numerical approaches that allow seismologists to exploit the complete seismic recordings for the benet of im- proved tomographic resolution, provided that data quality is suf- cient. Conceptualised in the late 1970s and early 1980s (Bam- berger et al., 1977, 1982; Lailly et al., 1983; Gauthier et al., 1986) such full-waveform inversions have become applicable to today's large seismic data sets thanks to steadily increasing computational resources. Applications at local scales in seismic exploration (Pratt et al., 1998; Brenders and Pratt, 2007; Smithyman et al., 2009; Afanasiev et al., 2015), on regional scales (Chen et al., 2007; Tape et al., 2010; Colli et al., 2013; Rickers et al., 2013; Fichtner et al., 2013b; Zhu et al., 2015), and for the entire Globe (Bozdag et al., 2014; Afanasiev et al., 2016) provide new insight into the struc- ture, dynamics and evolution of the Earth. While 3D inversion on standard CPU clusters is still a major computational challenge ta- ken up by few research groups, the emergence of large hetero- geneous high-performance computing (HPC) systems has the po- tential to transform full-waveform inversion into a widely used routine method. Recognising the potential of heterogeneous HPC systems, sev- eral forward wave propagation codes have been implemented on GPU graphic cards (Michea and Komatitsch, 2010; Komatitsch et al., 2010; Komatitsch, 2011), showing promising results. The next step, that is the transition from the forward modelling of a single source (e.g. an earthquake or explosion) to the solution of a seismic inverse problem, is complicated for two reasons: (i) adjoint calculations needed to compute gradients (Tarantola, 1984, 1988; Tromp et al., 2005; Fichtner et al., 2006; Chen, 2011) require that very large amounts of data are stored and read during the simulations. This is in conict with GPUs that require minimal I/O for optimal use. (ii) Acceptable tomographic resolution can only be achieved when data from many sources, often hundreds to thousands, are used. Therefore, individual simulations must be set up and scheduled such that heterogeneous HPC systems are op- timally harnessed. Running simulations sequentially on the largest possible number of nodes is mostly inefcient. In the following sections, we address these issues of I/O in adjoint simulations, parallelisation setup and scheduling in the context of large heterogeneous HPC systems. In addition to purely computational aspects, we present a real-data full-waveform in- version of the Mediterranean region that underlines the applic- ability of our developments. This paper is organised as follows: in Section 2 we provide a condensed review of seismic wave propagation modelling, in- cluding the governing equations of forward and adjoint simula- tions. A specic spectral-element implementation of these equa- tions is presented in Section 3. Following a brief description in Section 4 of the HPC system used for our developments, Section 5 is dedicated to software engineering challenges, optimisation and parallelisation strategies, and the application architecture. A per- formance analysis and a real-data application are presented in Contents lists available at ScienceDirect journal homepage: www.elsevier.com/locate/cageo Computers & Geosciences http://dx.doi.org/10.1016/j.cageo.2015.12.013 0098-3004/& 2015 Elsevier Ltd. All rights reserved. Fully documented code is available on the scientic software websites of the ETH Computational Seismology Group: http://www.cos.ethz.ch. n Corresponding author. E-mail address: [email protected] (A. Gokhberg). Computers & Geosciences 89 (2016) 260268

Upload: others

Post on 12-Oct-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

Computers & Geosciences 89 (2016) 260–268

Contents lists available at ScienceDirect

Computers & Geosciences

http://d0098-30

☆FullyETH Com

n CorrE-m

journal homepage: www.elsevier.com/locate/cageo

Research paper

Full-waveform inversion on heterogeneous HPC systems$

Alexey Gokhberg n, Andreas FichtnerDepartment of Earth Sciences, ETH Zurich, Zurich, Switzerland

a r t i c l e i n f o

Article history:Received 17 March 2015Received in revised form25 November 2015Accepted 16 December 2015Available online 28 December 2015

Keywords:Seismic tomographyHeterogeneous HPC systemsWave propagationFull-waveform inversionInverse theorySpectral-element method

x.doi.org/10.1016/j.cageo.2015.12.01304/& 2015 Elsevier Ltd. All rights reserved.

documented code is available on the scientputational Seismology Group: http://www.c

esponding author.ail address: [email protected] (A

a b s t r a c t

We present a spectral-element implementation of full seismic waveform inversion for large hetero-geneous HPC systems. In this we address the optimal parallelisation configurations of individual simu-lations, the large I/O requirements of adjoint simulations, and the scheduling of large numbers of forwardand adjoint solves, typical for realistic inversions. Using GPU accelerators allows us to achieve a 3.5–4times performance improvement over the best known homogeneous implementation. We achieve GPUmemory throughput varying from 60 to 80% of the peak bandwidth, thus providing good utilisation ofhardware resources. We demonstrate the practical applicability of our developments in a real-data ap-plication in the western Mediterranean. With the help of GPU accelerators, we are able to model andinvert seismic wave propagation in a frequency band that is broader than permitted by the use of CPUsalone, which helps bridging the traditional gap between crustal and mantle tomography.

& 2015 Elsevier Ltd. All rights reserved.

1. Introduction

Seismic tomography is in a transition period where methodsbased on simplified wave propagation physics are successivelyreplaced by fully numerical approaches that allow seismologists toexploit the complete seismic recordings for the benefit of im-proved tomographic resolution, provided that data quality is suf-ficient. Conceptualised in the late 1970s and early 1980s (Bam-berger et al., 1977, 1982; Lailly et al., 1983; Gauthier et al., 1986)such full-waveform inversions have become applicable to today'slarge seismic data sets thanks to steadily increasing computationalresources. Applications at local scales in seismic exploration (Prattet al., 1998; Brenders and Pratt, 2007; Smithyman et al., 2009;Afanasiev et al., 2015), on regional scales (Chen et al., 2007; Tapeet al., 2010; Colli et al., 2013; Rickers et al., 2013; Fichtner et al.,2013b; Zhu et al., 2015), and for the entire Globe (Bozdag et al.,2014; Afanasiev et al., 2016) provide new insight into the struc-ture, dynamics and evolution of the Earth. While 3D inversion onstandard CPU clusters is still a major computational challenge ta-ken up by few research groups, the emergence of large hetero-geneous high-performance computing (HPC) systems has the po-tential to transform full-waveform inversion into a widely usedroutine method.

Recognising the potential of heterogeneous HPC systems, sev-eral forward wave propagation codes have been implemented on

ific software websites of theos.ethz.ch.

. Gokhberg).

GPU graphic cards (Michea and Komatitsch, 2010; Komatitschet al., 2010; Komatitsch, 2011), showing promising results. Thenext step, that is the transition from the forward modelling of asingle source (e.g. an earthquake or explosion) to the solution of aseismic inverse problem, is complicated for two reasons:(i) adjoint calculations needed to compute gradients (Tarantola,1984, 1988; Tromp et al., 2005; Fichtner et al., 2006; Chen, 2011)require that very large amounts of data are stored and read duringthe simulations. This is in conflict with GPUs that require minimalI/O for optimal use. (ii) Acceptable tomographic resolution canonly be achieved when data from many sources, often hundreds tothousands, are used. Therefore, individual simulations must be setup and scheduled such that heterogeneous HPC systems are op-timally harnessed. Running simulations sequentially on the largestpossible number of nodes is mostly inefficient.

In the following sections, we address these issues of I/O inadjoint simulations, parallelisation setup and scheduling in thecontext of large heterogeneous HPC systems. In addition to purelycomputational aspects, we present a real-data full-waveform in-version of the Mediterranean region that underlines the applic-ability of our developments.

This paper is organised as follows: in Section 2 we provide acondensed review of seismic wave propagation modelling, in-cluding the governing equations of forward and adjoint simula-tions. A specific spectral-element implementation of these equa-tions is presented in Section 3. Following a brief description inSection 4 of the HPC system used for our developments, Section 5is dedicated to software engineering challenges, optimisation andparallelisation strategies, and the application architecture. A per-formance analysis and a real-data application are presented in

Page 2: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268 261

Sections 6 and 7, respectively.

2. Forward and inverse modelling of seismic wave propagation

To set the stage for our computational developments, we pro-vide a condensed review of forward and adjoint seismic modelling,and the spectral-element discretisation of the seismic waveequation. Additional details may be found in Tarantola (1984,1988), Komatitsch and Vilotte (1998), Komatitsch and Tromp(2002), Tromp et al. (2005), Fichtner et al. (2006), and Fichtner(2010).

2.1. Forward modelling in visco-elastic anisotropic media

The propagation of seismic waves through the Earth is gov-erned by the momentum-balance equation

∑ρ σ( ) ¨ ( ) − ∂ ( ) = ( ) ∈ ⊂ ∈ [ ∞)

= ( )

=u t t f t V t

i

x x x x x, , , , , 0,

, 1, 2, 3 , 1

ij

j ij i1

33

where ρ > 0 denotes mass density, sij the symmetric stress tensor,fi an external force density, and ui the seismic wavefield (Dahlenand Tromp, 1998; Kennett, 2001; Aki and Richards, 2002). Over-dots symbolise differentiation in time. The stress tensor and thewavefield are subject to the boundary and initial conditions

∑ σ | = | = | =( )=

∂ = =n u u0, 0, 0 ,2j

ij j V i t i t1

3

0 0

meaning that stresses in the direction of the surface normal njvanish along the boundary ∂V , and that the wavefield is at rest fortime t¼0. The stress tensor sij is related to the gradients of thewavefield via the visco-elastic stress–strain relation

∫∑σ ( ) = ( − ′)∂ ( ′) ′( )=

′=−∞t C t t u t dtx x x, , , ,

3ij

k l t

t

ijkl k l, 1

3

where the elastic tensor Cijkl satisfies the symmetry relations= =C C Cijkl jikl klij. The time-dependence of Cijkl controls the visco-

elastic dissipation of the material, i.e. the conversion of elasticenergy into heat as a function of frequency or time. To circumventthe numerically expensive solution of the convolution integral (3),the elastic tensor can be written as a superposition of N standard-linear solids:

∑τ( ) = ( )[ + ( ) ( ) ]( )

τ

=

− ( )C t C D ex x x x, 1 .4

ijkl ijklr

ijklp

N

pt x

1

/ p

The relaxed moduli = →∞C Climijklr

t ijkl and the relaxation parametersτijkl, Dp and τp are chosen to match a prescribed dissipation of thematerial (Emmerich and Korn, 1987; Robertsson et al., 1994;Blanch et al., 1995; Fichtner and van Driel, 2014; van Driel andNissen-Meyer, 2014). Introducing (4) in (3) transforms the stress–strain relation into

∑ ∑

σ τ

τ

( ) = ( )[ + ( ) ( )]∂ ( )

+ ( ) ( ) ( )( )

=

= =

t C s u t

C M t

x x x x x

x x x

, 1 ,

, ,5

ijk l

ijklr

ijkl k l

k lijklr

ijklp

N

p kl

, 1

3

, 1

3

1,

with = ∑ =s DpN

p1 . The memory variables Mp kl, satisfy the ordinarydifferential equation

τ τ = − − ∂

( )M M

Du

1.

6p kl

pp kl

p

pk l, ,

Together, Eqs. (1), (5) and (6) constitute the set of differentialequations that must be solved numerically for the seismic wave-field ( )u tx,i , subject to the boundary and initial conditions (2).

2.2. Adjoint modelling and full waveform inversion

The solution of a seismic inverse problem rests on the quanti-fication of a misfit J between waveforms ( )u tx ,i r

obs observed in atime interval [ ]T0, at receiver positions = …xr R1,2, , , and the corre-sponding synthetic waveforms ( )u tx m, ,i r computed for an Earthmodel ρ= ( )Cm , ijkl . The specific form of the misfit functional ( )J mdepends on the concrete application and on the nature of the data(Crase et al., 1990; Luo and Schuster, 1991; Gee and Jordan, 1992;Fichtner et al., 2008; van Leeuwen and Mulder, 2010; Brossieret al., 2009, 2010). To minimise J with respect to m using gradient-based methods, we require the variation of J, which can be writtenin terms of a Fréchet or sensitivity kernel K:

∫δ δ= ( )· ( ) ( )J dK x m x x. 7V

For the parameters ρ and Cijklr, the Fréchet kernels take the specific

forms

∫ ∫∑( ) = − ( ) ( ) ( ) = ∂ ( )

∂ ( ) ( )

ρ=

†=

K u t u t dt K u t

u t dt

x x x x x

x

, , , ,

, , 8

i

T

i i Ct

T

i j

j k

1

3

0 0ijklr

respectively (Tarantola, 1984, 1988; Tromp et al., 2005; Fichtneret al., 2006; Chen, 2011). The adjoint wavefield ( )†u tx,i is governedby the following set of equations: (i) the adjoint momentum-bal-ance equation

∑ρ σ( ) ¨ ( ) − ∂ ( ) = ( ) ∈ ⊂

∈ [ ∞) = ( )

=

† †u t t f t V

t i

x x x x x, , , , ,

0, , 1, 2, 3, 9

ij

j ij i1

33

(ii) the adjoint stress–strain relation that couples the adjoint stresstensor σ †

ij to the adjoint field †ui ,

∫∑σ ( ) = ( ′ − )∂ ( ′) ′( )

=′=−∞

†t C t t u t dtx x x, , , ,10

ijk l t

t

ijkl k l, 1

3

and (iii) the adjoint subsidiary conditions

∑ σ | = | = | =( )=

†∂

†=

†=n u u0, 0, 0.

11jij j V i t T i t T

1

3

The adjoint source †f i is uniquely determined by the misfit func-tional J, and so are the adjoint wavefield and the Fréchet kernels.

The terminal conditions on the adjoint field (11) impose thatthe adjoint equations must be solved in reverse time. Conse-quently, the forward field ui must be made available during theadjoint equation solve in order to compute the time integrals in (8)on the fly. To achieve this task in the hypothetical absence of visco-elastic dissipation, the wavefield from the end of the forward si-mulation can be propagated backwards in time, therefore not re-quiring significant storage capacities. In realistic dissipative media,backward propagation is numerically unstable, and the forwardfield must be stored at sufficiently many time steps to enable ef-ficient checkpointing (Griewank and Walther, 2000). The massiveI/O related to reading and writing snapshots of the forward field isa major challenge on modern HPC systems that we address in thispaper.

Page 3: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

Fig. 1. Schematic illustration of the mapping between the unit cube Λ and the physical-domain element Ge, which is a small spherical-subsection of the Earth.

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268262

2.3. Numerical solution

Depending on the particular application, various techniqueshave been developed to solve the seismic wave equation nu-merically. These include finite-difference (Alterman and Karal,1968; Boore, 1970; Moczo et al., 2002; Bohlen, 2002; Moczo et al.,2014), spectral-element (Seriani and Priolo, 1994; Faccioli et al.,1997; Komatitsch and Vilotte, 1998; Komatitsch and Tromp, 2002;Nissen-Meyer et al., 2014), and discontinuous Galerkin (de laPuente et al., 2007; Dumbser et al., 2007a,b) methods. Regardlessof the specific method, the space-discretised equations can gen-erally be cast into the generic form

∑ ∑¯ + ¯ = ¯( )

M u K u f ,12j

ij jj

ij j i

with the discretised wavefield uj, the mass matrix Mij, the stiffnessmatrix Kij, and the discretised external force fi. In our applicationwe obtain (12) through a spectral-element discretisation of theelastic wave equation. For this, the computational domain is sub-divided into non-overlapping elements Ge that are mapped to theunit cube Λ (Fig. 1). In Λ, material paramaters and the wavefieldare approximated by Lagrange polynomials, where the GLL pointsserve as interpolation points. GLL quadrature then leads to a dis-crete system with diagonal mass matrix that allows for efficientexplicit time stepping.

Despite the specific choice of a forward problem solver, thefollowing computational developments are equally applicable totime-domain forward and adjoint wave equation solvers wherethe discrete system is the same as in Eq. (12).

3. SES3D: spectral-element visco-elastic wave propagation in a3D spherical section

We have implemented the computational approach describedabove in a software package named SES3D. SES3D operates in thenatural spherical coordinates, which is untypical for spectral-ele-ment approaches. The advantages are a compact programme code,fast computations for spherical sections that are sufficiently farfrom the poles and the core, and the easy implementation of 3Dmodels. A single run of SES3D performs either a forward simula-tion with or without storage of the wavefield, or an adjoint si-mulation where a previously stored forward field is read andcombined with the adjoint field to produce sensitivity kernels.Each run, forward or adjoint, corresponds to an earthquake orother seismic event that is processed independently.

SES3D data are represented as 3D arrays mostly falling into thefollowing categories: (i) physical model parameters includingelastic tensor components Cr

ijkl, density ρ, and relaxation para-meters τijkl, (ii) source fields for moment tensor and vector forces,including adjoint sources, (iii) snapshots of the forward field

required for adjoint calculations, (iv) static fields such as the massmatrix, and (v) dynamics fields that are recomputed in everyiteration, including velocities ui, velocity gradients ∂ uj i, stresses sij,and stress rates σij. Among these fields the displacements andstress rates are accumulated (integrated) during the entire itera-tive process.

The time step algorithm exposes a large amount of data-levelparallelism that can be harnessed by computing systems withmultiple independent processing elements. For this, the compu-tational domain is partitioned into a fixed number of sub-domains,each being assigned to one processing element. Information be-tween elements is exchanged when stress rates at elementboundaries are shared between neighbouring sub-domains. Ifprocessing elements themselves provide hardware facilities forparallel computations, they can exploit the algorithm data paral-lelism by performing parallel computations of field values fordifferent grid points within a sub-domain. This is exactly the casefor heterogeneous massively parallel computing systems, whichwe use in the present work.

4. Instrument: heterogeneous massively parallel computingsystems

In recent years, the combination of GPU-accelerated computingwith more traditional ideas of massively parallel systems, con-sisting of multiple nodes with distributed memory, led to the in-troduction of heterogeneous high-performance systems. Suchsystems consist of large numbers of nodes interconnected via highthroughput networks, where each node provides a mix of pro-cessing elements with different architectures, like a small numberof sequential CPU cores and one or a few GPU accelerators. Theseemerging systems provide an opportunity for manifold applicationperformance increase and are more energy-efficient. However,since they have higher hardware complexity and are more difficultto program, the transition to heterogeneous computing is highlydisruptive from the software engineering perspective. Efficient useof GPU resources requires a programming methodology that iscompletely different from those used for multiple sequentialprocessors running in parallel, typical for the recent decades. Thus,to exploit potential benefits of heterogeneous computing, novelprogramming methodologies must be created.

A typical example for massively parallel heterogeneous high-performance computing systems is “Piz Daint”, a supercomputerof the Cray XC 30 family operated by the Swiss National Super-computing Center (CSCS). It features 5272 computing nodes, eachbeing equipped with an 8-core 64-bit Intel Sandy Bridge CPU (IntelXeon E5-2670), an NVIDIA Tesla K20x GPU accelerator with 6 GBGDDR5 memory, and 32 GB of host memory. The nodes are con-nected by the proprietary ”Aries” interconnect from Cray. In thisstudy, we aimed at the implementation of SES3D on ”Piz Daint”.

Page 4: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268 263

5. Methodology: software engineering challenges

5.1. Need for a new software engineering methodology

The proposed implementation presented us with various en-gineering challenges arising from a need to split the code into twodistinct parts running on the CPU and GPU devices that requiredifferent techniques for programming and performance optimi-sation. Furthermore, special attention had to be paid to workdistribution and interaction between CPU and GPU, especiallyduring I/O intensive adjoint runs.

We based the implementation process on the assumption thatthe transition to a heterogeneous computing model will haveimpact on all aspects of the application architecture. This means,in particular, that it would not be sufficient to extract the mostcritical parts of the code and re-implement them as optimisedkernels running on GPUs. Instead, the entire application archi-tecture has to be re-engineered because any inefficiency in theserial part of the application can easily offset the benefits of usingGPUs. Therefore, we decided to employ a hybrid programmingmodel based on a combination of several well-established soft-ware development technologies, including C as a host program-ming language, MPI 3.0 as a library for the inter-node commu-nication, and CUDA as a toolkit for programming NVIDIA GPUaccelerators. We are using compilers and libraries of Cray Pro-gramming Environments 5.1 in combination with NVIDIA CUDAToolkit 5.5.

5.2. Optimisation methodology

SES3D manages large volumes of data arranged in ∼100 arrays.Interchange of these data volumes between GPU memory and CPUmemory at every iteration would incur a large performanceoverhead. Due to the nature of the algorithm, this interchangecannot be done asynchronously. To use GPU capabilities efficiently,it is necessary to host all data arrays on GPU permanently andimplement all computations on GPU. The role of the correspond-ing host CPU should be limited to I/O operations, inter-nodecommunication, and management of the workflow. We thus try tokeep data interchange between the GPU and the surroundingenvironment at the absolutely necessary minimum.

Data interchange between the computing nodes may causeoverhead that can offset benefits provided by the GPU. It wastherefore essential to tune inter-node communication carefully tokeep data interchange between GPU devices of different nodesreasonably fast. Our implementation relies on MPI as a principalcommunication platform. However, we decided to replace theclassic MPI point-to-point communication by one-sided commu-nication based on the MPI Remote Memory Access (RMA) that,according to the results of our empirical study, provide betterperformance for all parallelisation configurations.

For the optimisation of CUDA kernels, we tuned the layout ofdata arrays to enable coalesced access to device memory, and weused GPU shared memory to reduce the number of redundantdevice memory accesses. Whenever feasible, we implementedhighly optimised re-usable kernels for commonly used functionslike array reductions. We extensively used the NVIDIA profilernvprof to measure performance of individual CUDA kernels anddata transfers between CPU hosts and GPU devices.

The algorithm for the forward and adjoint simulations wherewavefield snapshots are written and read, respectively, requires asubstantial amount of data interchange between the applicationand external storage. This interchange takes place once per a pre-defined number of iterations, typically 10–30 (Fichtner et al.,2009). As explained in Section 2.2, snapshots of the forward wa-vefield are written to large external files during the forward

simulations; in the adjoint mode they are read from these files inreverse order. The storage requirements for typical applications,such as the one presented in Section 7, are on the order of 1–10 TB.

Adjoint mode I/O operations add penalty to the overall per-formance. This is tolerable in homogeneous configurations butincreases dramatically in heterogeneous cases. This increase oc-curs because in heterogeneous configurations each GPU devicetakes over the work that otherwise would be performed by a bignumber of CPU cores and therefore much larger volumes of datahave to be interchanged between each computing node and ex-ternal storage. Our empirical performance study of interchangewith the external storage suggests that the related I/O penalty istolerable if data are read or written sequentially. Unfortunately,this is not a case in the adjoint mode when data are read in thereverse order. To solve this problem we introduced buffering ofread operations in the adjoint mode. For each array to be read theapplication allocates a buffer large enough to hold approximately30 consecutive array instances which are pre-fetched via a singleread request. This approach allowed us to reduce the run time andmake it comparable to that of forward simulations with wavefieldstorage.

5.3. Choice of parallelisation scheme

Our implementation on massively parallel computing archi-tectures is facilitated by parallelisation configurations that specify3D processor grids consisting of CPU cores in the homogeneouscase or GPU devices (and respective computing nodes) in theheterogeneous case. The whole computational domain is parti-tioned into sub-domains, each sub-domain being mapped to asingle element of the respective processor grid. We make thedistinction between ”wide” and ”compact” parallelisation config-urations. Wide configurations are characterised by a relativelylarge processor grid size and rather small amount of data assignedto each processor grid element. Compact configurations have asubstantially smaller grid size and respectively larger size of datasets assigned to each processing element.

The initial implementation of SES3D processed all events se-quentially, that is, at each moment all computing nodes were in-volved in processing of the same event. This sequential scenarioappears impractical for the compact parallelisation configurations.These configurations provide superior performance in hetero-geneous cases, however, the absolute wall clock time required toprocess the large number of events in a realistic full-waveforminversion sequentially is too large. On the other hand, the numberof computing resources involved in computations for the compactparallelisation configurations is substantially (usually in order ofmagnitude of more) smaller than in case of wide configurations.(This subject is discussed further in Section 6 dedicated to theapplication performance.) Therefore, if a comparable number ofcomputing resources is available for both compact and wideconfigurations, then the compact configuration may utilise theseresources in full by splitting them into smaller groups, then dis-tributing all events to be processed evenly among these groupsand allowing them to process events in parallel.

We implemented support for parallel event processing inSES3D. If a number of processing elements allocated at applicationstart is a multiple of a number specified by a parallelisation con-figuration, the application automatically splits available processingelements in groups and partitions a list of events into chunks,assigning each chunk to its own group for parallel processing.

5.4. Application architecture

Each program instance consists of a sequential part running onthe CPU core and a massively parallel part running on the GPU

Page 5: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

Co

HoHeHo

Fig. 2. Schematic illustration of the application architecture.

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268264

device (see Fig. 2). The sequential part includes modules for ap-plication initialisation, inter-node communication, mass storage I/O, and management of control and data flow for operations offloadto the GPU. The massively parallel part is represented as a set ofCUDA kernels that reside and run on GPU, each kernel im-plementing a certain computational function applied to a largestream of parallel processing threads. The sequential part orches-trates activation of CUDA kernels. CUDA kernels perform allcomputations of the SES3D time step algorithm, including thecomputation of external forces, velocity gradients and stress ratesand the time extrapolation of stresses and velocities. Furthermore,there are kernels implementing functionality specific for variouscomputation modes, such as the computation of synthetic seis-mograms, intermediate wavefield snapshots and Fréchet kernels.

All major data sets are replicated between the CPU and GPUmemories. The CPU is responsible for initialisation of all data setsat the processing start for each event. These data sets are thencopied once to the GPU memory, where they reside until com-pletion of the event processing. Further data interchange betweenCPU and GPU is kept at minimum and takes place only when inter-node communication or mass storage I/O operation is required.Copying of data between the CPU and GPU is performed usingsynchronous memory management primitives of CUDA. We keep aseparate set of data files per processing element and use plainbinary format and standard C I/O libraries. The overall number offiles is not performance-critical. We have made experimentskeeping values of each parameter for he entire simulation domainin a single file and using the MPI parallel I/O for the shared access,however, this did not provide any performance gain.

Programming instances arranged this way form a gang thatperforms parallel wave modelling on all sub-domains for a singleevent. Since usually a single simulation involves tens of events thatcan be processed independently, a typical application configura-tion contains multiple gangs, every gang being responsible for

Fig. 3. Schematic illustration of 10 gangs of 11 compu

processing a distinct part of the entire event set (see Fig. 3). Dis-tribution of work among gangs is done statically at the applicationinitialisation phase based on a simple algorithm aiming at uniformload balancing.

6. Performance

We use a simple yet practical method for performance assess-ment. The wall clock time for each configuration and test run ismeasured. Based on this figure, the number of iterations processedper minute per computing node is calculated. While we havechosen several SES3D use cases in the development stage, we limitthe following description to a representative scenario featuring a77�68�77 grid of blocks, and 10 events of 14,000 iterationseach. For this case we used the following parallelisationconfigurations:

ting nodes each processing 60 even

ts in parallel.

nfiguration

Processor grid Nodes CPU GPU

mogeneous, compact

× ×11 1 7 10 77 terogeneous, compact × ×11 1 1 11 11 11 mogeneous, wide × ×11 17 7 164 1309 terogeneous, wide × ×11 1 11 121 121 121 He

We measured performance for both CPU and GPU versions, andfor both compact and wide parallelisation configurations. At eachrun, 10 events were processed in a sequence with 14,000 iterationsfor each event. We conducted separate tests for each of threesupported computation modes: (i) forward simulations withoutstorage of wavefield snapshots, (ii) forward simulations with sto-rage of wavefield snapshots, and (iii) adjoint simulations. Thefollowing wall clock times have been recorded in one of the re-presentative test series (results expressed as hours:mins:secs).

Page 6: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268 265

Co

CP

GP

CP

GP

Co

GPGPCP

nfiguration

Simulation mode Time

U, compact, 11 � 1 � 7 (10nodes)

Forward withoutstorage

7:00:16

Forward withstorage

7:12:10

Adjoint

7:18:39

U, compact, 11 � 1 � 1 (11nodes)

Forward withoutstorage

1:18:24

Forward withstorage

1:49:22

Adjoint

1:52:49

U, wide, 11 � 17 � 7 (164nodes)

Forward withoutstorage

0:21:32

Forward withstorage

0:22:40

Adjoint

0:26:46

U, wide, 11 � 1 � 11 (121nodes)

Forward withstorage

0:16:24

Forward withoutstorage

0:20:42

Adjoint

0:31:10

The following performance figures (iterations/node/minute)have been calculated for forward simulations without wavefieldstorage:

nfiguration

Performance

U, 11 � 1 � 1

140,000 / 11 / 78.5¼162.1 U, 11 � 1 � 11 140,000 / 121 / 16.5¼70.1 U, 11 � 1 � 7 140,000 / 10 / 420.5¼33.3 U, 11 � 17 � 7 140,000 / 164 / 21.5¼39.7

Fig. 4. Source–receiver distribution in the western Mediterranean. Beachballs in-dicate the source mechanisms and locations of the 52 earthquakes used in ourinversion. Great circles connecting sources and receivers are plotted in lightercolour when coverage is high. The black and gray boxes mark the boundary of thecomputational domain and the inner boundary of the absorbing layer.

CP

These figures fully support our original assumption stating thatwide configurations favour homogeneous (CPU-based) versionssince smaller data sets fit CPU caches better. On the other hand,compact configurations provide more benefits for heterogeneous(GPU-based) versions because GPU devices achieve better perfor-mance processing reasonably large data sets that suit better foramortisation of latencies in the GPU streaming processors. Fur-thermore, by comparison of the best performances for CPU andGPU cases, the speedup achieved on the heterogeneous archi-tecture for the given use case can be calculated as 162.1/39.7¼4.1times.

There exist certain technical limits for the further performanceimprovement on the heterogeneous architecture. SES3D is a ty-pical memory-bound application, therefore performance of itsCUDA kernels is constrained by the peak memory bandwidth ofthe GPU device. For NVIDIA K20x this bandwidth equals 250 GB/s.Profiling of our kernels reports the GPU device memory through-put varying between 160 and 200 GB/s, that is, between 60% and80% of the peak bandwidth.

Performance comparison done for problems with differentoverall sizes but the same problem size per processing elementhas demonstrated the weak scaling efficiency of SES3D does notdepend significantly on the number of processing elements forconfigurations consisting of up to a few hundred of computingnodes on “Piz Daint”. The strong scaling efficiency behaves dif-ferently for homogeneous and heterogeneous configurations. Forhomogeneous configurations the strong scaling efficiency is higherfor big numbers of processing elements (CPUs), while for hetero-geneous configurations it is higher for the smaller number of

processing elements (GPUs). Furthermore, simulations with higherfrequency resolution will require the proportionally larger numberof time steps and grid size in each dimension. Therefore, thecomputational complexity grows by the factor of N4 with the in-crease of the simulation frequency by the factor of N.

7. Application: full-waveform inversion for the western Med-iterranean region

We tested the GPU implementation of SES3D in a full-wave-form inversion in the western Mediterranean region. For this, weused 13,089 three-component recordings from 52 regional earth-quakes. For broadband stations belonging to permanent national/regional networks we obtained seismic waveform data from global(IRIS, http://www.iris.edu and European (ORFEUS, http://www.orfeus-eu.orgdata centres. This was complemented by data from thetemporary IberArray (Díaz et al., 2009). The source–receiver dis-tribution is shown in Fig. 4.

We partitioned the computational domain into 1,603,584 ele-ments, within which all fields a represented by tensorised poly-nomials of degree 4. The total number of grid points was200,448,000. Taking at least two elements per minimum wave-length to ensure sufficiently accurate solutions, this setup allowedus to model wave propagation at periods as low as 12 s. To opti-mise GPU usage, each event was processed on only 48 nodes.However, since the 52 earthquakes were subdivided into 26 gangswith 2 earthquakes each, a total of 1248 nodes was used si-multaneously. The forward simulation of all earthquakes was ty-pically accomplished within slightly more than 1 h.

For the processing of seismic waveform data and the selectionof measurement time windows, we used the Large Scale SeismicInversion Framework of Krischer et al. (2015). A previous full-waveform inversion for all Eurasia at longer periods (Fichtneret al., 2013a) served as initial model. After 20 conjugate-gradientiterations, the initial misfit was reduced by nearly 80% Fig. 5 showsthe final distribution of the isotropic S velocity vS, defined as aweighted average of the velocities of vertically polarised (vSV) and

horizontally polarised ( vSH) shear waves: = +v v vS2 2

3 SV2 1

3 SH2 (Ba-

buvska and Cara, 1991; Panning and Romanowicz, 2006).The final model, discussed in terms of the regional geology in

Fichtner and Villasenor (2015), is remarkable in that 3D structure

Page 7: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

Fig. 5. Horizontal slices through the 3D distribution of isotropic S velocity vS at various depths.

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268266

within both the thin crust at mostly less than 40 km depth and theunderlying mantle can be resolved. This is in contrast to traditionalseismic tomography, where either crust or mantle was fixed, de-pending on the specific region of interest. The ability to model andinvert seismic wave propagation at shorter periods with the helpof heterogeneous HPC systems bridges the resolution gap betweencrustal and seismic tomography; and it will eventually lead to theunification of these two seismic imaging branches. The workpresented here constitutes a step in this direction.

8. Discussion

A major challenge in the GPU implementation of full-waveforminversion is the large I/O caused by the reading and writing ofwavefield snapshots during the simulations. It arises from theneed to have synchronous access to the forward and adjoint fieldsin the computation of Fréchet kernels. In media without attenua-tion, this synchronous access can be achieved by the time reversedpropagation of the forward wavefield from the final state of theforward simulation to time t¼0 (Rietmann et al., 2012). Sinceseismic wavefields in the Earth can be strongly attenuated, re-verse-time propagation is inherently unstable. The instability canbe avoided by ignoring attenuation in the time reversed simula-tion, though at the cost of inaccurate kernels that may slow downor even prevent convergence. To ensure convergence in the pre-sence of a realistic attenuating Earth, the forward wavefield shouldbe stored whenever possible.

Using the GPU-based version of SES3D package is not moredifficult than that of the conventional CPU-only version since noGPU-specific detail is exposed to the end-user and no computerscience background is required for running the application.

However, using the GPU-related technologies for building similarHPC applications in seismology in general represents a significantchallenge. Transition to heterogeneous architectures has a cleardisruptive effect since it requires a substantial revision of pro-gramming paradigms and demands higher programming skillsfrom developers. In particular, we note that substantial code du-plication took place during the development of SES3D. The samecomputation algorithms have been implemented twice, as serial Ccode and as code of GPU CUDA kernels. This code duplication isregarded as a significant disadvantage that cannot be efficientlyaddressed within the chosen programming model, which, in ouropinion, leaves substantial room for improvement of programmerproductivity. In the future this improvement might be achieved byintroduction of more advanced programming models that wouldreplace the present heterogeneous mix of relatively low-leveltechnologies thus reducing complexity of application code, im-proving its portability, increasing programmer productivity andbeing accessible for developers who are not experts in softwareengineering. Acceptability of GPU accelerators for development ofnew applications by the wider seismologist community dependson the availability of such high level programming models andrespective tools. Their creation must involve the multi-disciplinarycollaboration of seismologists and computer scientists.

It must be noted that the waveform simulations in SES3D im-plement just one of the various performance-critical steps of theseismic inversion process. Once the substantial performance im-provement is achieved for the simulation modules, we have toshift focus to the optimisation of other steps, in particular, com-putation of misfits and updating the model. We intend to addressthese issue at the next stages of our research.

At the high level, our engineering approach is similar to the oneused for the seismic wave propagation package SPECFEM3D

Page 8: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268 267

(Rietmann et al., 2012). Like our solution, SPECFEM3D supportslarge-scale homogeneous and GPU-enabled heterogeneous com-puters and is implemented using MPI/CUDA. Furthermore, theentire package and not just individual kernels had been ported toCUDA and special attention had been paid to the optimisation ofdata motions at all levels. Although the authors of SPECFEM3D andSES3D have faced the similar development challenges, in somecases they addressed them in different ways. In particular, in ourwork we target the issue of updating the shared grid nodes withthe purpose built race-free algorithm, thus avoiding the need forusing more sophisticated methods like mesh colouring. We havedecided not to implement overlapping of data motion for inter-node and host-accelerator transfers because in case of SES3D thevolumes of data to be transferred at each iteration are relativelymodest and potential performance gains do not justify the re-spective increase in the code complexity. We employ the varioustechniques for CUDA optimisations, focusing mainly on mediatingthe limited global memory throughput by the extensive use of theGPU shared memory; in this respect the SES3D approach appar-ently differs in detail from that used in SPECFEM3D given thedifferent code structures of two packages. Finally, we note that theparallelisation strategy of SES3D is specifically tailored towards thesolution of large inverse problems that involve a large number ofevents.

9. Conclusions

We present a spectral-element implementation of full seismicwaveform inversion for large heterogeneous HPC systems. In ourdevelopment, we addressed the optimal parallelisation config-urations of individual simulations, the large I/O requirements ofadjoint simulations, and the scheduling of large numbers of for-ward and adjoint solves, typical for realistic inversions.

We have demonstrated that wide parallelisation configurationsare more beneficial for the homogeneous (CPU-only) applicationversion while compact configurations yield better performance inthe heterogeneous (GPU-enabled) case.

Adjoint mode I/O operations add a significant penalty to theoverall performance of the heterogeneous application versionrunning in compact configurations. We solve this problem byprefetching a reasonably big number of consecutive data recordsinto a large memory buffer via a single I/O request. This approachsuccessfully reduces the run time of adjoint simulations to that offorward simulations.

The multi-event processing in the inverse problem solution ismost efficient when events are grouped into gangs. While allgangs operate in parallel, events are processed sequentially withineach of them.

Using GPU accelerators allowed us to achieve 3.5–4 timesperformance improvement over the best known homogeneousimplementation on ”Piz Daint”. The new implementation achievesthe GPU memory throughput varying from 60% to 80% of the peakbandwidth, thus providing good utilisation of hardware resources.

We demonstrated the practical applicability of our develop-ments in a real-data application in the western Mediterranean.With the help of GPU accelerators, we were able to model andinvert seismic wave propagation at periods as short as 12 s over∼2000 km distance, thereby bridging the resolution gap betweencrustal and seismic tomography.

Acknowledgements

We are grateful to Michele De Lorenzi and Thomas Schulthessfor their continuing support and encouragement. Yann Capdeville

and an anonymous reviewer provided numerous constructivecomments that helped us to improve the manuscript. Our devel-opments would not have been possible without the enthusiasm ofour power user Saule Simute. This research was funded by theSwiss National Supercomputing Center (CSCS) in the form of theGeoScale and CH1 projects, by the Swiss National Science Foun-dation (SNF) under Grant 200021_149143, and by the NetherlandsOrganisation for Scientific Research (VIDI Grant 864.11.008). TheSES3D program package is available from the authors upon requestor from the website of the ETH Computational Seismology Group,cos.ethz.ch.

References

Afanasiev, Michael, Gerhard Pratt, R, Kamei, Rie, 2015. Glenn McDowell Waveform-based simulated annealing of crosshole transmission data: a semi-globalmethod for estimating seismic anisotropy. Geophysical Journal International199 (3), 1586–1607.

Afanasiev, MV., Peter, D., Sager, K., Simute, S., Ermert, L., Krischer, L., Fichtner, A.,2016. Foundations for a multiscale collaborative global Earth model. Geophys. J.Int 204, 39–58.

Aki, K., Richards, P., 2002. Quantitative Seismology. University Science Books,Cambridge, UK.

Alterman, Z., Karal, F.C., 1968. Propagation of elastic waves in layered media byfinite-difference methods. Bull. Seis. Soc. Am. 58, 367–398.

Babuška, V., Cara, M., 1991. Seismic Anisotropy in the Earth. Kluwer AcademicPublishers, Dordrecht, Boston, London.

Bamberger, A., Chavent, G., Lailly, P., 1977. Une application de la théorie du contrôleà un problème inverse sismique. Ann. Geophys. 33, 183–200.

Bamberger, A., Chavent, G., Hemons, C., Lailly, P., 1982. Inversion of normal in-cidence seismograms. Geophysics 47, 757–770.

Blanch, J.O., Robertsson, J.O.A., Symes, W.W., 1995. Modelling of a constant Q:methodology and algorithm for an efficient and optimally inexpensive vis-coelastic technique. Geophysics 60, 176–184.

Bohlen, T., 2002. Parallel 3-D viscoelastic finite difference modelling. Comput.Geosci. 28, 887–899.

Boore, D.M., 1970. Love waves in nonuniform waveguides: finite difference calcu-lations. J. Geophys. Res. 1970, 1512–1527.

Bozdag, E., Lefebvre, M., Lei, W., Peter, D., Smith, J., Komatitsch, D., Tromp, J., 2014.Global adjoint tomography: combining big data with HPC simulations, in: AGUFall Meeting, pp. S11G-04.

Brenders, A.J., Pratt, R.G., 2007. Full waveform tomography for lithospheric ima-ging: results from a blind test in a realistic crustal model. Geophys. J. Int. 168,133–151.

Brossier, R., Operto, S., Virieux, J., 2009. Robust elastic frequency-domain full wa-veform inversion using the l1 norm. Geophys. Res. Lett. 36, L20310.

Brossier, R., Operto, S., Virieux, J., 2010. Which data residual norm for robust elasticfrequency-domain full waveform inversion? Geophysics 75, R37–R46.

Chen, P., Zhao, L., Jordan, T.H., 2007. Full 3D tomography for the crustal structure ofthe Los Angeles region. Bull. Seismol. Soc. Am. 97, 1094–1120.

Chen, P., 2011. Full-wave seismic data assimilation: theoretical background andrecent advances. Pure Appl. Geophys. 168, 1527–1552.

Colli, L., Fichtner, A., Bunge, H.-P., 2013. Full waveform tomography of the uppermantle in the South Atlantic region: imaging westward fluxing shallow asth-enosphere?. Tectonophysics 604, 26–40.

Crase, E., Pica, A., Noble, M., McDonald, J., Tarantola, A., 1990. Robust elastic non-linear waveform inversion—application to real data. Geophysics 55, 527–538.

Díaz, J., Villaseñor, A., Gallart, J., Morales, J., Pazos, A., Códoba, D., Pulgar, J., García-Lobón, J.L., Harnafi, M., 2009. TopoIberia Seismic Working Group, 2009. TheIBERARRAY broadband seismic network: a new tool to investigate the deepstructure beneath Iberia. ORFEUS Newslett. 8, 1–6.

Dahlen, F.A., Tromp, J., 1998. Theoretical Global Seismology. Princeton UniversityPress, New Jersey.

de la Puente, J., Dumbser, M., Käser, M., Igel, H., 2007. An arbitrary high-orderdiscontinuous Galerkin method for elastic waves on unstructured methods—iv.Anisotropy. Geophys. J. Int. 169, 1210–1228.

Dumbser, M., Käser, M., de la Puente, J., 2007a. Arbitrary high order finite volumeschemes for seismic wave propagation on unstructured meshes in 2D and 3D.Geophys. J. Int. 171, 665–694.

Dumbser, M., Käser, M., Toro, E., 2007b. An arbitrary high-order discontinuousGalerkin method for elastic waves on unstructures meshes, Part V: local timestepping and p-adaptivity. Geophys. J. Int. 171, 695–717.

Emmerich, H., Korn, M., 1987. Incorporation of attenuation into time-domaincomputations of seismic wave fields. Geophysics 52, 1252–1264.

Faccioli, E., Maggio, F., Paolucci, R., Quarteroni, A., 1997. 2D and 3D elastic wavepropagation by a pseudospectral domain decomposition method. J. Seismol. 1,237–251.

Fichtner, A., van Driel, M., 2014. Models and Fréchet kernels for frequency-(in)de-pendent Q. Geophys. J. Int. 198, 1878–1889.

Fichtner, A., Villasenor, A., 2015. Crust and upper mantle of the western

Page 9: Computers & Geosciencesfichtner/papers/2016_Gokhberg_CG.pdf · equations that must be solved numerically for the seismic wave-field ut i (x, ), subject to the boundary and initial

A. Gokhberg, A. Fichtner / Computers & Geosciences 89 (2016) 260–268268

Mediterranean—constraints from full-waveform inversion. Earth Planet. Sci.Lett. 428, 52–62.

Fichtner, A., Bunge, H.-P., Igel, H., 2006. The adjoint method in seismology—I.Theory. Phys. Earth Planet. Inter 157, 86–104.

Fichtner, A., Kennett, B.L.N., Igel, H., Bunge, H.-P., 2008. Theoretical background forcontinental- and global-scale full-waveform inversion in the time–frequencydomain. Geophys. J. Int. 175, 665–685.

Fichtner, A., Kennett, B.L.N., Igel, H., Bunge, H.-P., 2009. Full seismic waveform to-mography for upper-mantle structure in the Australasian region using adjointmethods. Geophys. J. Int. 179, 1703–1725.

Fichtner, A., Trampert, J., Cupillard, P., Saygin, E., Taymaz, T., Capdeville, Y., Villa-senor, A., 2013a. Multi-scale full waveform inversion. Geophys. J. Int. 194,534–556.

Fichtner, A., Saygin, E., Taymaz, T., Cupillard, P., Capdeville, Y., Trampert, J., 2013b.The deep structure of the North Anatolian Fault Zone. Earth Planet. Sci. Lett.373, 109–117.

Fichtner, A., 2010. Full Seismic Waveform Modelling and Inversion. Springer,Heidelberg.

Gauthier, O., Virieux, J., Tarantola, A., 1986. Two-dimensional nonlinear inversion ofseismic waveforms: numerical results. Geophysics 51, 1387–1403.

Gee, L.S., Jordan, T.H., 1992. Generalized seismological data functionals. Geophys. J.Int. 111, 363–390.

Griewank, A., Walther, A., 2000. An implementation of checkpointing for the re-verse or adjoint mode of computational differentiation. Trans. Math. Softw. 26,19–45.

Kennett, B.L.N., 2001. The Seismic Wavefield I. Introduction and Theoretical De-velopment. Cambridge University Press.

Komatitsch, D., Tromp, J., 2002. Spectral-element simulations of global seismicwave propagation, Part I: validation. Geophys. J. Int. 149, 390–412.

Komatitsch, D., Vilotte, J.P., 1998. The spectral element method: an effective tool tosimulate the seismic response of 2d and 3d geological structures. Bull. Seism.Soc. Am 88, 368–392.

Komatitsch, D., Erlebacher, G., Göddeke, D., Michea, D., 2010. High-order finite-element seismic wave propagation modeling with MPI on a large GPU cluster. J.Comput. Phys. 229, 7692–7714.

Komatitsch, D., 2011. Fluid-solid coupling on a cluster of GPU graphics cards forseismic wave propagation. C. R. Mech. 339, 125–135.

Lion Krischer, Saule Zukauskaite, Andreas Fichtner, Heiner Igel, 2015. Large-scaleseismic inversion framework. Seis. Res. Lett 86, 1–10.

Lailly, P., 1983. The seismic inverse problem as a sequence of before stack migra-tions. In: J. Bednar, R. Redner, E. Robinson, A. Weglein (Eds.), Conference onInverse Scattering: Theory and Application. Society of Industrial and AppliedMathematics, Philadelphia, PA.

Luo, Y., Schuster, G.T., 1991. Wave-equation traveltime inversion. Geophysics 56,645–653.

Michea, D., Komatitsch, D., 2010. Accelerating a three-dimensional finite-differencewave propagation code using gpu graphics cards. Geophys. J. Int. 182, 389–402.

Moczo, P., Kristek, J., Vavrycuk, V., Archuleta, R., Halada, L., 2002. 3D heterogeneousstaggered-grid finite-difference modeling of seismic motion with volume har-monic and arithmetic averaging of elastic moduli. Bull. Seis. Soc. Am. 92,3042–3066.

Moczo, P., Kristek, J., Galis, M., 2014. The Finite-Difference Modelling of EarthquakeMotions: Waves and Ruptures. Cambridge University Press, Cambridge, UK.

Nissen-Meyer, T., van Driel, M., Stähler, S., Hosseini, K., Hempel, S., Auer, L., Four-nier, A., 2014. AxiSEM: broadband 3-D seismic wavefields in axisymmetricmedia. Solid Earth 5, 425–445.

Panning, M., Romanowicz, B., 2006. A three-dimensional radially anisotropic modelof shear velocity in the whole mantle. Geophys. J. Int. 167, 361–379.

Pratt, R., Shin, C., Hicks, G., 1998. Gauss–Newton and full Newton methods in fre-quency domain seismic waveform inversion. Geophys. J. Int. 133, 341–362.

Rickers, F., Fichtner, A., Trampert, J., 2013. The Iceland–Jan Mayen plume systemand its impact on mantle dynamics in the North Atlantic region: evidence fromfull-waveform inversion. Earth Planet. Sci. Lett. 367, 39–51.

Rietmann, M., Messmer, P., Nissen-Meyer, T., Peter, D., Basini, P., Komatitsch, D.,Schenk, O., Tromp, J., Boschi, L., Giardini, D. 2012. Forward and adjoint simu-lations of seismic wave propagation on emerging large-scale GPU architectures.In: International Conference for High Performance Computing, Networking,Storage and Analysis, SC, IEEE, p. 10.1109/SC.2012.59.

Robertsson, J.O.A., Blanch, J.O., Symes, W.W., 1994. Viscoelastic finite-differencemodelling. Geophysics 59, 1444–1456.

Seriani, G., Priolo, E., 1994. Spectral element method for acoustic wave simulationin heterogeneous media. Finite Elem. Anal. Des. 16, 337–348.

Smithyman, B., Pratt, R.G., Hayles, J., Wittebolle, R., 2009. Detecting near-surfaceobjects with seismic waveform tomography. Geophysics 74, WCC119–WCC127.

Tape, C., Liu, Q., Maggi, A., Tromp, J., 2010. Seismic tomography of the southernCalifornia crust based upon spectral-element and adjoint methods. Geophys. J.Int. 180, 433–462.

Tarantola, A., 1984. Inversion of seismic reflection data in the acoustic approx-imation. Geophysics 49, 1259–1266.

Tarantola, A., 1988. Theoretical background for the inversion of seismic waveforms,including elasticity and attenuation. Pure Appl. Geophys. 128, 365–399.

Tromp, J., Tape, C., Liu, Q., 2005. Seismic tomography, adjoint methods, time re-versal and banana-doughnut kernels. Geophys. J. Int. 160, 195–216.

van Driel, M., Nissen-Meyer, T., 2014. Optimized visco-elastic wave propagation forweakly dissipative media. Geophys. J. Int. 199, 1078–1093.

van Leeuwen, T., Mulder, W.A., 2010. A correlation-based misfit criterion for wave-equation traveltime tomography. Geophys. J. Int. 182, 1383–1394.

Zhu, H., Bozdağ, E., Tromp, J., 2015. Seismic structure of the European upper mantlebased on adjoint tomography. Geophys. J. Int. 201, 18–52.