Seismic inversion through operator overloading

TitleSeismic inversion through operator overloading
Publication TypeConference
Year of Publication2008
AuthorsSean Ross-Ross
Conference NameSINBAD 2008
KeywordsPresentation, SINBAD, SLIM

Geophysical processing is dominated by many different out of core memory software environments (OOCE). Such environments include Madagascar and SU and are designed to handle data that can not be operated on in memory. Each base operation is created as a main program that reads data from disk and writes the result to disk. The main programs can also be chained together on stdin/out pipes using a shell only writing data to disk at the end. To be efficient, the algorithm using an OOCE must chain together the longest pipe to avoid disk I/O, as a result it is very difficult to use iterative techniques. The algorithms are written in shell scripts can be difficult to read and understand. SLIMpy is a software library that contains definitions of coordinate free vectors and linear operators. It allows the user to design and run algorithms with any out of core package, in a Matlab style interface while maintaining optimal efficiency and speed. SLIMpy looks at each main program of each OOCE as a Matrix vector operation or vector reduction/transformation operation. It uses operator overloading to generate an abstract syntax tree (AST) which can be optimized in many ways before executing its commands. The AST also provides a pathway for embarrassingly parallel applications by splitting the tree over different nodes and processors. SLIMpy provides an interface to these OOCE that allows for optimal construction of commands and allows for iterative techniques. It smoothes the transition from other languages such as Matlab and allows the algorithm designer to write readable and reusable code. SLIMpy also adds to OOCE by allowing for easy parallelization.

Citation Keyross2008SINBADsit