CERN Accelerating science

Enhancements to Multiprocessing in ROOT

Date published: 
Tuesday, 1 September, 2015
Document type: 
Summer student report
Author(s): 
E. Guiraud
In this report we outline the results and the products of our investigation of ROOT multi-processing capabilities: not only we showed that it is possible to fork a ROOT session running in Linux environment, but we also built a framework that allows to easily exploit this capability to build parallel applications based on a client-worker architecture. Moreover, using this framework as a foundation, we built a new ROOT feature, the Map function, inspired by python’s pool.map: this function allows to execute the same task many times in parallel on different arguments, giving users an easy and lightweight access to multi-processing. Section 1 is dedicated to a brief explanation of the current approach to multi-processing in ROOT, namely the PROOF and PROOF-Lite facilities. Section 2 describes our new approach, its advantages and issues and some implementation details. Section 3 describes the Map application, a few usage examples, some implementation details and the analysis of its performance. Section 4 outlines some of the possible future developments of the work done so far.