Computing Jacobians for Electrical Impedance Tomography using Python and the DoD HPC

Gatling, George (US Naval Research Laboratory)

Electromagnetic and Acoustics Applications

This work describes a python implementation to compute the Jacobian matrix used in electrical impedance tomography. The Jacobian, also referred to as a sensitivity matrix, is an essential data structure of inverse problems and relates changes in model parameters to changes in data. In numerical methods, it is most often approximated by the perturbation method: model parameters are varied, one after another, and their effect on the output measured. In the case of impedance tomography, this requires repeatedly solving Laplace's equation for electric potential for each change in model parameters. This work implements a numerical solution to these equations using the finite element method in python. Although python has rapidly increased in popularity as a data-science language, it remains bound by the Global Interpreter Lock which serializes even multi-threaded scripts. This work presents two methods to bypass the lock for the parallel computation of the Jacobian, one using the built-in multiprocessing module and one using the snakemake workflow management system.