GeoBIPy – Geophysical Bayesian Inference in Python
Abstract:
The Geophysical Bayesian Inference in Python package, or GeoBIPy, instead uses the probabilistic approach to inversion by providing the most likely estimation of model parameters as well as an ensemble of possible model parameters that suitably fit the measured data, given the apriori assumptions. Due to the additional computational expense of the probabilistic framework, and the large number of data considered for geophysical surveys, we limit our forward operators to 1D layered earth models. Since each data point can be inverted independently, we leverage MPI with the mpi4py package and large-scale distributed-memory supercomputers. To overcome the common file IO bottleneck of parallel algorithms GeoBIPy utilizes the parallel read and write capabilities of HDF5 with the h5py package. This approach reduces the file storage requirements and minimizes file-handling overhead, which we further bolster with parallel file system hardware such as Lustre.
GeoBIPy is an object-oriented, open-source Python package and is currently applied to large-scale, airborne and ground-based, frequency domain and time domain electromagnetic data, with extension to seismic, MT, and NMR data under development. We will present some example applications of GeoBIPy as well as discuss the object-oriented structure of the code and its parallel capabilities. We will discuss the scalability of GeoBIPy and show that data sets with hundreds of thousands of data points, previously taking over three months to invert, can be inverted in approximately two and a half days using 2016 cores.
GeoBIPy can be found on github at “https://github.com/usgs/geobipy”.