Parallelizing x-ray photon correlation spectroscopy software tools using python multiprocessing - Abeykoon, Sameera K.; Meifeng Lin; Van Dam, Kerstin Kleese (2017 New York Scientific Data Summit (NYSDS), 2017)
The third generation synchrotron facilities that are designed to deliver highly intense and bright X-ray beams along with the new area detectors capable of achieving high dynamic ratios and fast frame rates have enabled novel Coherent X-ray scattering experiments. X-ray Photon Correlation Spectroscopy is such a technique that measures nano- and mesoscale dynamics in materials. The scikit-beam Python analysis library developed at the National Synchrotron Light Source-II at Brookhaven National Laboratory contains a serial version of Xray Photon Correlation Spectroscopy software tools to perform streaming analysis of structural dynamics of materials, which can be time consuming given the anticipated fast data rates and high image resolutions at the National Synchrotron Light Source-II. Therefore, it is essential to parallelize these data analysis tools to achieve the best performance on the available workstations that contain multi-core processors. In this paper, we report the progress that we have made in using the Python multiprocessing module to parallelize the time-correlation functions in scikit-beam. We will compare the results from different multiprocessing approaches, and discuss pros and cons associated with each method.