Navjot Kukrej – Combining Checkpointing and Data Compression for Large Scale Seismic Inversion
Seismic inversion and imaging are adjoint-based optimization problems that processes up to terabytes of data, regularly exceeding the memory capacity of available computers. Data compression is an effective strategy to reduce this memory requirement by a certain factor, particularly if some loss in accuracy is acceptable. A popular alternative is checkpointing, where data is stored at selected points in time, and values at other times are recomputed as needed from the last stored state. This allows arbitrarily large adjoint computations with limited memory, at the cost of additional recomputations. In this work we combine compression and checkpointing for the first time to compute a realistic seismic inversion. The combination of checkpointing and compression allows larger adjoint computations compared to using only compression, and reduces the recomputation overhead significantly compared to using only checkpointing.
Joe Wallwork – Automatic Differentiation in Adjoint PETSc
Adjoint equations are an indispensible tool in modern computational applied mathematics. Through their solution, it is possible to make sensitivity analyses, establish goal-oriented error estimators and perform data assimilation. Recently developed functionality within the PETSc solver library allows users to solve adjoint equations associated with nonlinear, time-dependent PDEs, in the discrete sense. For this, it is required that either the Jacobian is user-provided or that it is permissible to make a finite difference approximation thereof. In some cases, the process of deriving and coding the Jacobian by hand can be time-intensive and error-prone, and yet it would be unsatisfactory to approximate the Jacobian using finite differences.
Automatic differentiation (AD) is a technique which can obtain the Jacobian by numerical means, thereby reducing the effort required by the user, whilst maintaining the accuracy in the result as would be given by a hand-derivation. In this work we present the usage of two AD tools to automatically generate Jacobians in PETSc. A number of strategies are discussed, including Jacobian colouring, matrix-free methods and the differentiation of low-level BLAS calls.