hep icon indicating copy to clipboard operation
hep copied to clipboard

rootio: implement fast BulkIO

Open sbinet opened this issue 7 years ago • 1 comments

It would be great to implement fast BulkIO access for rootio.

this can be done in a few lines in python:

  • https://github.com/scikit-hep/uproot

with quite the performances boost:

  • https://github.com/scikit-hep/uproot#performance

The first comparison is time spent opening the file and loading the TTree. This is relevant if you are executing a procedure on a large set of files (TChain). uproot is about 16 times faster.

Time to open file
C++ ROOT 0.50 sec
uproot 0.03 sec

Next is the time to read nearly all branches, exactly the same as the test on page 11 of Jakob's talk. uproot is about 5 times faster.

Time to read file Event rate Data rate
C++ ROOT 4.62 sec 1.9 MHz 230 MB/sec
uproot 0.93 sec 9.2 MHz 1160 MB/sec

Finally, we load only one branch (replacing TTree::GetEntry with TBranch::GetEntry in C++ ROOT to avoid a performance penalty). uproot is about 4 times faster.

Time to read 1 branch Event rate Data rate
C++ ROOT 0.256 sec 33 MHz 260 MB/sec
uproot 0.064 sec 133 MHz 1020 MB/sec

sbinet avatar Sep 21 '17 07:09 sbinet

+1

vkuznet avatar Sep 21 '17 14:09 vkuznet