The new Root Event classes are in place and I have done similar
benchmarking to my January tests. See
http://www.slac.stanford.edu/cgi-bin/lwgate/LCD-DEV/archives/lcd-dev.199901/date/article-21.html
Recall that the mods were to replace all TMaps with TObjArrays, replace
cross-subsystem pointers with indices, and to write out separate
branches per subsystem.
Doing the same tests as before on 5 Gev single pions and on a 500 GeV ZZ
PYBMS file, I am seeing approximately a factor of 2 increase in speed in
reading back the data. (Note: I have done these new tests on my work PC
which is nominally the same as my one at home, including the JAZ disk. I
should repeat it there for the comparison with January's results.) Full
simulation ZZ events now take 0.3 s/event instead of 0.6 previously.
Root reports back 2.4 MB/s in the reading back the ZZ file, a factor of
3 more than previously.
The other benefit we expected from the change was from having separate
branches. When I just read in the tracker+VXD hits & MC truth, the read
goes 20x faster (ie it pops through the file in 1/20th the time).
The vast majority (90%) of the data is in the calorimeters and that
takes all the time. The structures are a little more complex, so I
expect we're seeing some effect of unpacking the structures: for the
calorimetry the throughput is reported as 2.43 MB/s, while for
MC+tracking it reports 3.6 MB/s (but only reading 1/10th the data
volume).
So, bottom line is that the revamp gained us a factor of 2 overall and
a factor of 20 for just reading tracking data. Worth it! I'll check that
the numbers hold up at home...
Richard
--
Richard Dubois
SLD, Stanford Linear Accelerator Center
[log in to unmask]
http://www.slac.stanford.edu/~richard/
650-926-3824
650-926-2923 (FAX)
|