If you have a big amount of data to process, you can essentially accelerate the data processing in your ROOT macros with Parallel Root Facility (PROOF). The information on the PROOF system is presented here.
The PROOF system is a part of the ROOT environment and included in the ROOT distribution that is why it is not needed to install an additional software. It uses data independent parallelism based on the lack of event correlations to process different events in parallel that leads to good scalability. One of the most important PROOF properties is a transparency: the same program code can execute both sequentially and concurrently. PROOF orients on three parallel architectures. PROOF-Lite parallelizes data processing on one multiprocessor or multi-core machine. PROOF parallelizes processing on heterogeneous computing clusters and in the GRID system.
PROOF support was added to the software of the experiment and reconstruction code was rewritten according to the PROOF rules and classes. The last parameter of the reconstruction: proofThreads has default ‘-1’ value for sequential processing, i.e. without PROOF. To parallel event processing on your multi-core machine with PROOF-Lite, you can set proofThreads value to a desired thread number, e.g.:
$ root run_reco_bmn.C(“file_to_process.root”, “dst_file.root”, 0, 1000, VectorFinder, 0)
– where 0 – number of the start event, 1000 – count of events to process. In this case PROOF parallelizes processing of 1000 events with thread count being equal logical processor count of your machine.
In the following case PROOF parallelizes event processing with number of threads being equal 5, i.e. given in the last parameter:
$ root run_reco_bmn.C(“file_to_process.root”, “dst_file.root”, 0, 1000, VectorFinder, 5)