Topical ROOT Parallelisation, Performance and Programming Model Meeting
Present Wouter, Patrick, Vince, Philippe, Danilo, Enric, Xavi, Pere, Lorenzo, Vassil, Gerri, Omar, Axel
ACTIONS
Danilo: Provide all means to smoothly communicate about the RooFit parallelisation
Danilo+Patrick: identify a strategy, also involving additional person-power, to assess the impact of the usage of TProcessExecutor to orchestrate the calculations necessary for the minimisation. Danilo (and the ROOT team) will provide all the necessary examples as well as advice/support to achieve the aforementioned objective
Guilherme+Danilo+Patrick: Identify a strategy to optimise in-core the performance of the log function which has a sizeable impact on the overall runtime of the minimisation examples studied up to now. A potential solution is the usage of VDT math functions, for logarithm beyond that. In the medium term, vectorised evaluation of the likelihood might be considered once the modifications necessary in the DataStore are assessed.
Danilo: Provide support to Patrick for the benchmarking of the fitting with IgProf. The objective is to be able to pin runtime costs not only to symbols but also to call-paths (or even "objects") in order to be able to clearly interpret the profiles once compared with the actual models
Vince: Share the toy model of the LHCb B0/B0bar lifetime difference
Wouter: Point ROOT team members who are CMS/Atlas members to the necessary information to be able to run the "Higgs combination fit".
During the meeting a rather complete description of the RooFit parallelisation effort has been carried out. Both the technical and Physics/Statistics aspects were discussed. In addition, an overview was given of the parallelisation strategy of ROOT as well as the components in the framework provided to allow parallelism expression.
The main issues being stressed were:
- The imbalance present when treating rich models which include numerical integrals, pdfs and binned pdfs
- The weight transcendental mathematical functions have in the runtime of likelihood maximisation problems
- The re-engineering effort necessary to provide a scheduling mechanism and a frontend-backend separation in RooFit
- The complexity of RooFit and the effort which would be necessary to adopt a multithreaded based approach to parallelism rather than the present multiprocessing one