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.