| ROOT I/O study for ATLAS LAr-style event objects |
The purpose of this study was to compare different ROOT I/O persistency methods for events that resembled what we might actually use with a G4 simulation of the LAr calorimeter.
For the purposes of this study, I used the LArRootEvent class that I designed for my LArHits example. Since the goal of the study was to measure I/O times and not to do any physics, I created "phony" event records that would be the approximate size of actual LAr calorimeter events, but contained no physics content. The prescription for generating events was:
The only reason to put values in the fields at all was to realistically duplicate the effects of the ROOT compression algorithm on the data.
I generated 8000 events written in each persistency scheme as defined below. This created a file of roughly 1 GB in size for each scheme; I assumed that this was a typical size for analysis files that we'd work with.
The results of the earlier study (see my message of 19-Dec-2000) suggested the following separate ROOT persistency methods:
The reason for testing the "TDataSet-Tree" method was the results of the earlier I/O study. That study indicated that there was a fast increase in direct object-I/O time that depended on the number of events written to a file. The "TDataSet-Tree" method attempts to exploit the faster I/O time associated with TDataSets with the slow increase in I/O time with the number of events associated with writing ROOT Trees.
The I/O process was split into two programs: an output program intended to resemble a Monte Carlo, and an input program intended to resemble an analysis program.
The output program had three phases:
The input program also had three phases:
These tests were run using ROOT 3.00/02, compiled with the gcc 2.95.2 compiler, and executed on a dual-processor 400 MHz Intel PIII. The individual phases were timed using ROOT's TStopwatch class. The Write and Read phases include the time of ROOT's I/O compression.
Output program phases Time for 8000 events (in CP secs): Scheme Generate Convert Write Total Tree0 242 207 2055 2582 Tree1 243 208 2049 2580 Object 253 227 2099 2656 TDataSet 253 81 1033 1453 TDataSet-Tree 243 76 989 1385 Input program phases Time for 8000 events (in CP secs): Scheme Read Convert Histogram Total Tree0 1319 0 31 1350 Tree1 1315 0 32 1348 Object 1351 0 29 1441 TDataSet 434 179 31 706 TDataSet-Tree 449 193 28 671
|
| to the Nevis ATLAS Page. |
|
| to the previous Page. |
|
| Send comments and suggestions to the webmaster |