MCMLpar and MCSLinv: A Parallel Version of MCML and an Inverse Monte Carlo Algorithm to Calculate Optical Scattering Parameters
Richelle H. Streater, Anne-Michelle R. Lieberson, Adam L. Pintar, Zachary H. Levine
The MCML program for Monte Carlo modeling of light transport in multi-layered tissues has been widely used in the past 20 years or so. Here, we have re-implemented MCML for solving the inverse problem. Our formulation features optimizing the profile log likelihood which takes into account uncertainties due to both experimental and Monte Carlo sampling. We limit the search space for the optimum parameters with relatively few Monte Carlo trials and then iteratively double the number of Monte Carlo trials until the search space stabilizes. At this point, the log likelihood can be fit with a quadratic function to find the optimum. The time-to-solution is only a few minutes in typical cases because we use importance sampling to determine the log likelihood on a grid of parameters at each iteration. Also, our implementation uses OpenMP and SPRNG to generate Monte Carlo trials in parallel.