Closed ktf closed 4 months ago
So removing the sofie build breaks many dependencies. I'll check with @lmoneta how to fix that correctly once he's back.
Thank you for the update. Could you give an ETA for having this fixed?
Thank you for the update. Could you give an ETA for having this fixed?
I'll let @lmoneta comment on this issue which is apparently not a real issue...
-Dtmva-sofie=Off
switch off the sofie parser library that depends on protobuf. There is no reason to remove the sofie library, that is a small one, so this is enabled always by default. If you really want to switch off sofie, you can do this by doing -Dtmva=Off
The "small" library seems to add 70MB of RSS per process due to loading a bunch of pcms (thanks to the fact everything sits in the Experimental namespace, AFAICT). We do want TMVA (which does not get loaded premptively, apparently).
You should anyway load SOFIE only when you use it. If this is not the case, then this is maybe the issue. But weird you add 70MB, I see only an increase of 2 MB, when loading the library
See the discussion in https://github.com/root-project/root/issues/13000. I think the issue is the fact that it sits in the Experimental namespace.
If I have understood well, doing this (using an arbitrary ROOT file)
ROOTDEBUG=7 root.exe -l -b -q test.root 2>&1 | grep Preloading
you see libROOTTMVASofie
pre-loaded. I actually I do not see this with the master. I see other libs preloaded (e.g. libGraf)
Could you try with the file I have on CVMFS?
Could you also try:
ROOTDEBUG=7 root.exe -l -b -q ~/public/AO2D.root 2>&1 | grep 'on demand' | cut -d' ' -f 2 | sort | uniq | wc -l
?
With your file I have
...............
Loading 'PyMVA' on demand for 'Experimental'
Loading 'ROOTTMVASofie' on demand for 'Experimental'
Loading 'ROOTTMVASofieParser' on demand for 'Experimental'
Is it because ROOT::Experimental
namespace objects are stored in the file?
I see also RooFit and TMVA are pre-loaded. These are much bigger libraries using a lot of memory.
We can add a command to switch off SOFIE, but I think the problem is in the module loading and should be fixed in https://github.com/root-project/root/issues/13000
No, there is nothing stored in the file which is not a TTree of ints / floats and related arrays.
I think the unwanted memory hoarding has been fixed so far (CMS, ATLAS and LHCb confirmed and we are in the process of verifying this for Alice, too https://github.com/root-project/root/issues/13000#issuecomment-1926377943). I still think that if SOFIE is disabled, nothing should be built relative to it - this is also a desirable feature given the kind of modularisation ahead of us required by pip install ROOT
. @lmoneta @bellenot can SOFIE be fully disabled if the user sets -Dsofie=OFF
, as one would expect?
We can add another option to disable completely SOFIE, but it is itself a small library and we could consider in general as part of tmva. The Onyx parser instead needs to be switch is off for cases where we don't want to have the protobuf dependency
Closing since we reached consensus (and fixed the extra parsing due to missing symbols already in December)
Check duplicate issues.
Describe the bug
If I pass
-Dtmva-sofie=OFF
to cmake, ROOT still builds it:What is the expected behaviour?
No sofie related libraries if
-Dtmva-sofie=OFF
is provided.How to reproduce?
Build with -Dtmva-sofie=OFF on macOS.
ROOT version
6.28.04
How did you install ROOT?
https://github.com/alisw/alidist/blob/master/root.sh
Which operating system are you using?
macOS
Additional context
No response