2019
DOI: 10.1190/geo2018-0174.1
|View full text |Cite
|
Sign up to set email alerts
|

A large-scale framework for symbolic implementations of seismic inversion algorithms in Julia

Abstract: Writing software packages for seismic inversion is a very challenging task because problems such as full-waveform inversion or least-squares imaging are algorithmically and computationally demanding due to the large number of unknown parameters and the fact that waves are propagated over many wavelengths. Therefore, software frameworks need to combine versatility and performance to provide geophysicists with the means and flexibility to implement complex algorithms that scale to exceedingly large 3D problems. … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
23
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
3
3
2

Relationship

4
4

Authors

Journals

citations
Cited by 41 publications
(24 citation statements)
references
References 40 publications
0
23
0
Order By: Relevance
“…Devito aims to combine the performance benefits of dedicated stencil frameworks (Bondhugula et al, 2008;Tang et al, 2011;Henretty et al, 2013;Yount, 2015) with the expressiveness of symbolic PDE-solving DSLs (Logg et al, 2012;Rathgeber et al, 2015) through automated code generation and optimization from high-level symbolic expressions of the mathematics. Thus, the primary design objectives of the Devito DSL are to allow users to define explicit finitedifference operators for (time-dependent) PDEs in a concise symbolic manner and provide an API that is flexible enough to fully support realistic scientific use cases.…”
Section: Code Generation -An Overviewmentioning
confidence: 99%
See 2 more Smart Citations
“…Devito aims to combine the performance benefits of dedicated stencil frameworks (Bondhugula et al, 2008;Tang et al, 2011;Henretty et al, 2013;Yount, 2015) with the expressiveness of symbolic PDE-solving DSLs (Logg et al, 2012;Rathgeber et al, 2015) through automated code generation and optimization from high-level symbolic expressions of the mathematics. Thus, the primary design objectives of the Devito DSL are to allow users to define explicit finitedifference operators for (time-dependent) PDEs in a concise symbolic manner and provide an API that is flexible enough to fully support realistic scientific use cases.…”
Section: Code Generation -An Overviewmentioning
confidence: 99%
“…1166 M. Louboutin et al: Devito: an embedded domain-specific language for finite differences 2015a; Weiss and Shragge, 2013). When considering how to design a DSL for explicit finite-difference schemes, it is useful to recognize the algorithm as being primarily a subclass of stencil algorithms or polyhedral computation (Henretty et al, 2013;Andreolli et al, 2015;Yount, 2015). However, stencil compilers lack two significant features required to develop a DSL for finite differences: symbolic computational support required to express finite-difference discretizations at a high level, enabling these expressions to be composed and manipulated algorithmically; and support for algorithms that are not stencil-like, such as source and receiver terms that are both sparse and unaligned with the finite-difference grid.…”
Section: Introductionmentioning
confidence: 99%
See 1 more Smart Citation
“…The implementation of the method described in this paper leverages on the Devito framework, which allows the automatic generation of highly-optimized finite-difference C code, starting from a symbolic representation of the wave equation Louboutin et al, 2018). In Julia, we interface to Devito through the JUDI package (Witte et al, 2019).…”
Section: Acknowledgmentsmentioning
confidence: 99%
“…Generally, it is possible to add modeling codes of any programming language to a Docker container, but it is important to consider that user interfaces for the cloud (e.g. for writing results to buckets) exist only for high-level languages such as Python, but not for Fortran or C. In our workflow, we use the Julia Devito Inversion framework (JUDI) to compute individual gradients by solving the corresponding forward and adjoint wave-equations Witte et al, 2019). JUDI is implemented in the Julia programming language and consists of symbolic operators and data containers that allow us to express modeling operations and gradients for seismic inversion in terms of linear algebra expression.…”
Section: Computing Gradientsmentioning
confidence: 99%