I/O Efficiency Excercises


Gerhard Brandt <gbrandt@cern.ch>

ESC10, 21-27 November 2010, Bertinoro


References


Preparation


We will repeat a cycle of excercises to explore impact of

different changes on I/O Efficiency when reading a file from disk.



taodr1.C



time root -q -b -l taodr1.C++


1. Effect of System Cache and TTreeCache

a) Check the effect of the System Cache


b) Check the effect of the TTreeCache



2. Sorting and optimising files


a) Basket Sorting



root -q -b -l reorder_baskets.C



b) Optimise/auto-flush the file




hadd -f2 file.optimised.root file.root


the -f2 option changes the compression level and therefore forces unzipping/streaming/rezipping

(you can also use the reordering macro and omit the "fast" option)

3. Understand performance of NFS and GPFS

4. Have a look at what happens during reading



$ valgrind --tool=callgrind --trace-children=yes root -q -b -l taodr1.C++



$ kcachegrind callgrind.out.pid



5. Influence of EDM and Dictionaries


a) Read a complex file



b) Check the effect of dictionaries



  1. Performance of different classes for persistency

6. Parallel I/O

In this exercise we will use the installed Torque batch system to read many files in parallel

and examine the integrated I/O rate and behaviour of the file system.

We will all read the same files from the same location to put some load on the cluster.