ROOT Version: v6.12.04 - v6.14.00 (latest commits)
Platform: Ubuntu 16.04
Compiler: gcc 5.4.0
Dear rooters,
I would like to ask a question regarding multithread support in ROOT minimizer. I have developed an application which distribute fitting of 2D data across multiple threads using OpenMP directives.
I have experienced segmentation faults in some of the fitters tested when using more than 1 thread:
- TMinuitMinimizer: Minuit is not thread safe as documented in some old posts. I confirmed this.
- RMinimizer: working with one thread, crashing with more than 1 thread with error std::runtime_error(“Can only have one TRInterface instance”)
- Minuit2: this is actually working in multithread (ROOT v6.15 latest commit) as documented somewhere although it seems kind of slow.
I did not try GSLNLSMinimizer yet as it seems requiring to modify my fitting function.
Can you in case confirm which minimizer (maybe others not listed here) is suitable? Should I stay with Minuit2 at the present implementation status? Maybe trying to choose suitable fitting parameters (tolerance, etc) and algorithm (e.g. Fumili?)
I thank you very much for your support,
Simone