Since we (ATLAS) switched to ROOT v6-16-00, we noticed that TVMA seems to use multi-threading regardless of whether IMT is enabled or not (so long as ROOT is compiled w/ imt=ON). This was noticed while using MethodBDT but presumably it's not specific to this class. Is this really intended?
It's further interesting that the behavior seems "random" in the sense that, although ROOT::IsImplicitMTEnabled() constantly returns false (as it should because IMT is not explicitly enabled), w/o any code change, TMVA::Config::Instance().GetThreadExecutor().GetPoolSize() sometimes reports 1 but other times 32 (total cores on the machine). So multi-threading is sometimes on but sometimes off. I can confirm this by looking at the number of threads that's owned by the mother process.
I don't have a full reproducer, unfortunately, since this is observed in our reconstruction workflow. I'll see if I can come-up w/ one but any insight is most welcome.