[root] Repository:
ViewVC logotype

Revision 33175


Jump to revision: Previous Next
Author: pcanal
Date: Sat Apr 24 21:43:40 2010 UTC (4 years, 9 months ago)
Log Message:
Change the default for streaming the content of STL containers from object-wise
to member-wise.

We evaluated the impact of moving to MemberWise streaming using 5 different CMS data files

cms1.root an older split using level 99 Reco file 
cms2.root a more recent non split raw data file 
cms3.root a more recent non split Reco file 
cms4.root is an example of the lepton plus jet analysis format known as a user PAT-tuple (split)
cms5.root is an example AOD (analysis object dataset) format file.  It is not split because the objects here are a strict subset of the RECO objects. 

We rewrote all the files using the v5.26/00 new basket clustering algorithm using both memberwise streaming and objectwise streaming. 

In the table below the read time is the CPU time to completion including loading the libraries. 
When reading the file where always in the os cache (since we are focusing evaluating cpu time). 

The number of event actually read varies from file set to file set but was calibrated to result 
in about 10s of cpu time.  The files are read using a library generated with TFile::MakeProject. 

The object-wise files are between 2% and 10% larger compared to their member-wise coutnerpart.

The CPU time for reading object-wise files is 12% higher for split files 
and 30% higher for non-split files. 

So the improvement is significant enough to warrant switch the default from objectwise to memberwise.

Split files: 

Filename Memberwise Size     Cpu Time To read 
cms1.root    N     17.5 Gb    10.55s ± 0.15 (2200 entries) 
cms1.root    Y     16.8 Gb     9.12s ± 0.08 

cms4.root    N     1.47 Gb    10.18s ± 0.19 (2500 entries) 
cms4.root    Y     1.43 Gb     9.24s ± 0.06 

Non Split files: 

Filename Memberwise Size 
cms2.root    N     1.65 Gb    10.95s ± 0.05 (1000 entries) 
cms2.root    Y     1.53 Gb     8.20s ± 0.05 

cms3.root    N     0.780 Gb   10.59s ± 0.05 (700 entries) 
cms3.root    Y     0.717 Gb    8.29s ± 0.08 

cms5.root    N     1.55 Gb    10.20s ± 0.17 (700 entries) 
cms5.root    Y     1.40 Gb     8.09s ± 0.08

Changed paths:

Path Details
Directorytrunk/core/meta/src/TVirtualStreamerInfo.cxx modified , text changed

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9