Multithrading/Paralelisation of RooStats, HypoTestInverter for CLs

Hello all!

Just a question, CLs method is in theory very much parallelizable (CPU-GPU vise) because it’s a scan of a parameter of interest over many points which are all independent. Is there a way, or an idea to make it possible to use multiple CPU or even GPU cores for this?

I guess @moneta can help

Hi! In RooFit, it is possible to parallelize over various cores with the NumCPU() option, and to use the GPU with the BatchMode("cuda") option for RooAbsPdf::createNLL()/fitTo(). More on the latter is this presentation on Monday:

But this is only for individual minimizations and only pays off if the individual fits are expensive. If this is not the case, and the high computing cost comes from fitting many toys that you want to parallelize over, then you can configure the ToyMCSampler to use Proof as a distributed backend by passing a ProofConfig: ROOT: RooStats::ToyMCSampler Class Reference.

I don’t know how well this works, as I have never tried that. What is your workflow? Is it based on a RooStats tutorial? If you have a link to your code it would be nice, as it also helps me to see which parts of RooStats are actually used and where performance improvement via parallelization could be interesting.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.