IWAVE Structure and Basic Use Cases |
The release of IWAVE described in this paper is 2.0. It implements many use cases not described here:
Earlier releases (1.x) of IWAVE included implementations of staggered grid schemes for acoustics and isotropic linear elasticity (Moczo et al., 2006). See Fehler and Keliher (2011) for an account of the role played by the IWAVE acoustic staggered grid code as a QC tool in the SEAM Phase I project. Revival of these applications in the IWAVE 2.0 infrastruction is intended for a future release.
The QC role in the SEAM project heavily influenced the design of IWAVE, particularly the requirement that its performance scale well to very large simulations and large numbers of threads. All versions of IWAVE have offered parallelism via domain decomposition: SEAM simulations typically split simulations involving eight fields and 3000 3000 1500 grid points amongst 1000-4000 processes. The user interface specifies the subdivision of the domain with a few parameters. Another report will detail domain decomposition, parallelization over simulations (mentioned above), and multithreaded parallel loop execution aspects of IWAVE, as well as performance enhancements implemented in the finite difference kernels.
Another ground-up design goal is to provide a simple interface to inversion software. Symes et al. (2011) describe the concept behind the data interchange mechanism: it is file-based, and motivates the dataflow design mentioned several times already. Since data objects, represented as files or collections of files, determine their own i/o modalities, inversion software can simply communicate pathnames to the IWAVE interface, rather than some more complex data structure. The current release couples to (and in fact depends on) the Rice Vector Library (``RVL'') (Padula et al., 2009), a framework for linear algebra and optimization. IWAVE 2.0 includes full waveform inversion, linearized inversion (``least squares migration''), and shot record extended linearized inversion or differential semblance optimization. These and other inversion applications of IWAVE will be discussed in other reports.
IWAVE Structure and Basic Use Cases |