1 / 22

ROOT vs PAW

ROOT vs PAW. Davide Grandi INFN Milano. Summary. Davide Grandi INFN Milano. ROOT and NT file size (different compressions and split) ROOT and PAW I/O performance (selection functions for analysis and compiled codes) PAW and ROOT functionality (C++ knowledge, GUI etc.).

unity-pope
Download Presentation

ROOT vs PAW

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ROOT vs PAW Davide Grandi INFN Milano

  2. Summary Davide Grandi INFN Milano • ROOT and NT file size (different compressions and split) • ROOT and PAW I/O performance (selection functions for analysis and compiled codes) • PAW and ROOT functionality (C++ knowledge, GUI etc.) AMS Computing Meeting june 10th2002

  3. Hardware & Software Davide Grandi INFN Milano • MACHINE: pcamsf2 • OS: RH Linux 7.2 • RAM 1 GB • “local” DISK RAID5 • ROOT version: 3.03/04 19 April 2002 • PAW version: 2.12/22 13 June 2001 AMS Computing Meeting june 10th2002

  4. ROOT and NT file size (10k ev) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  5. I/O performance Davide Grandi INFN Milano PAW features: • UWFUNC • Code automatically compiled by PAW • Chain of ntuples • Gzipping ntuples to compare with Root space occupancy ROOT features: • MakeSelector (create a *.C and *.h) • TChain • ACLiC to compile, create shared lib and link • TClonesArray AMS Computing Meeting june 10th2002

  6. PAW & ROOT Chains Davide Grandi INFN Milano PAW: • ntuples (6 of approx 120 MB) used for first test of PAW speed • Ntuples gunzipped to compare with ROOT speed • PAW tests with/without gunzipping ntuples ROOT: • Trees “written” with normla compression level (1) and maximum (9) • 6 trees loaded with TChain • MakeSelector code executed with ACLiC calls (automatic creation of a shared lib, link and compilation from ROOT) AMS Computing Meeting june 10th2002

  7. few words on ROOT (1) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  8. few words on ROOT (2) Davide Grandi INFN Milano • Compression: gzip algorithm • Branches (independent variables: object, list, folder, array) • Leaves (variables in a branch) • Split level • default is 99 (object split to the maximum) • N.B. Level 1 TClonesArray not splitted • More split: fast to read slow to write • Collections (object, pointers to cast) AMS Computing Meeting june 10th2002

  9. Variables selection Davide Grandi INFN Milano • PAW has a nice feature of reading only variables required by the code (optimized for end users) • Selection function from V. Choutko (fortran function) • ROOT hasn’t the automatical feature of redaing only variables requird by the code • Selection fortran function transformed to C/C++ style (not so easy…) AMS Computing Meeting june 10th2002

  10. PAW & ROOT speed (1) Davide Grandi INFN Milano • All ROOT tree branches (400) read when function requires only 40-50 AMS Computing Meeting june 10th2002

  11. PAW & ROOT speed (2) Davide Grandi INFN Milano • Only required branches (40-50) read, but carefully in creation order (*.h file) !!!! AMS Computing Meeting june 10th2002

  12. Clone sArray Davide Grandi INFN Milano • New production (from A. Klimentov) with TClonesArray (manage objects of the same class, constant size of element, reuses memory), compression level 2 and 2 different split levels (1 and 2) • Selection function always from V. Choutko • For split level 1: all tree was loaded • For split level 2: only needeb branches are readed (similar to h2root converted file…) • N.B. probably optimization is possible… AMS Computing Meeting june 10th2002

  13. Clone sArray (1K events) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  14. Clone sArray (10K events) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  15. Clone sArray (30K events) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  16. PAW and ROOT functionality Davide Grandi INFN Milano • CPU: Root seems to optimize load (nearly 100% the machine is almost blocked!) • Many features not yet explored • Easy to produce .ps or .gif files • CPU: PAW is almost always below 50% • Well known analysis tool • Easy to write a fortran code for ntuple analysis AMS Computing Meeting june 10th2002

  17. ROOT GUI & other features Davide Grandi INFN Milano • Graphics in ROOT is greately improved: you can select with mouse • TBrowser (window and folders) • CINT support C/C++ (better than only C++) • Fit is simple • Insert Text & Latex math expression • 3D histograms rotated with the mouse • ……. sometimes not stable! AMS Computing Meeting june 10th2002

  18. ROOT GUI(2) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  19. ROOT GUI(3) Davide Grandi INFN Milano AMS Computing Meeting june 10th2002

  20. C++ knowledge Davide Grandi INFN Milano • For h2root converted: fortran users don’t need big experience in C++ for normal selections • For CloneArrays C++ needed is more complicated (MakeSelector doesn’t recognize ClonesArray…. So they have been loaded by hand) • Root Macros: easy to realize when skeleton produced by root features as MakeSelector or MakeClass • A bit harder if made by hand (>400 branches/variables) AMS Computing Meeting june 10th2002

  21. Preliminary conclusions Davide Grandi INFN Milano h2root: • PAW is faster compared with root selections because of recognizing required variables • Hand made modification of ROOT macro gives ROOT faster than PAW (2 times) ClonesArray: • PAW is faster than ROOT (comparable speed: more tests are needed) • Split level 1 seems better (need to study optimization as reading only branches required) AMS Computing Meeting june 10th2002

  22. Aknowledgements Davide Grandi INFN Milano I’d like to thank for the support and for important suggestions and programming “lessons”: Alexei Klimentov Vitaly Choutko of CERN AMS staff Matteo Boschini Mikhail Levtchenko of Milano AMS staff AMS Computing Meeting june 10th2002

More Related