Writing RooWorkspace with large RooDataSet to file


I have a problem with RooWorkpsace and a large RooDataSet, which was created in the workspace

w = new RooWorkspace("w","workspace"); w->import(*(new RooDataSet("fullSample","fullSample",RooArgSet(*mBC,*mKS,*sampleType)))); w->writeToFile(workDir+"workspace.root"); w->Print();

[quote]Printing contents of workspace:

RooWorkspace(w) workspace contents





After that I fill the dataSets with a larger number of events (>300M). In the end I want to write it to disk:


Now my programs runs for 12hours without finishing that task. I attached GDB and the shortened output looks like that:

#0 0x0000003511e8945c in memcpy () from /lib64/libc.so.6 [...] #41 0x00002b64639c51da in RooWorkspace::Streamer(TBuffer&) () from /home/user/external/root_v5.34.09/lib/libRooFitCore.so #46 0x00002b64639b792a in RooWorkspace::writeToFile(char const*, bool) () [...]
The full output is attached.
When I run my program with less events, everything is fine. I’m using ROOT v5.34.09 on SLC6.

Has somebody encountered similar problems before? Thanks in advance!

Best wishes, Peter
gdb.txt (10.5 KB)

Hi Peter,

so, let me understand: the procedure of writing a dataset of more than 300MB takes >12h and crashes the system? If yes this is not normal at all and should be followed up.
A lot of progress was done both in RooFit and in the I/O between 5.34.09 and 5.34.20: could you try this last version?
If the problem persit, can you provide a reproducer?
Are you working with a “normal” disk or an SSD?