260 likes | 273 Views
ROOT Project Status Major developments Directions. NSS05 Conference 25 October Ren é Brun CERN. Based on my presentation at the ROOT workshop 2005 See http://root.cern.ch. The ROOT Project see http://root.cern.ch.
E N D
ROOT Project StatusMajor developmentsDirections NSS05 Conference 25 October René Brun CERN Based on my presentation at the ROOT workshop 2005 See http://root.cern.ch Overview, Major Developments, Directions
The ROOT Projectsee http://root.cern.ch • The ROOT system provides a set of OO frameworks with all the functionality needed to handle and analyze large amounts of data in a very efficient way. Having the data defined as a set of objects, specialized storage methods are used to get direct access to the separate attributes of the selected objects, without having to touch the bulk of the data. Included are histograming methods in 1, 2 and 3 dimensions, curve fitting, function evaluation, minimization, graphics and visualization classes to allow the easy setup of an analysis system that can query and process the data interactively or in batch mode. • Thanks to the builtin CINT C++ interpreter the command language, the scripting, or macro, language and the programming language are all C++. The interpreter allows for fast prototyping of the macros since it removes the time consuming compile/link cycle. The interactively developed macros can be compiled using a C++ compiler. A Python interface is also available. • The system has been designed in such a way that it can query its databases in parallel on MPP machines or on clusters of high-end PC's. ROOT is an open system that can be dynamically extended by linking external libraries. This makes ROOT a premier platform on which to build data acquisition, simulation and data analysis systems. Overview of the ROOT system
ROOT: large user community Overview of the ROOT system
ROOT version 5 • The ROOT project started in 1995 is now a mature product with 2 PRO releases/year and monthly development releases. • pro release 4.04/02 3 May (new Users Guide) • 1st dev release 5.02 28 June • 2nd dev release 5.04 20 September • 3rd dev release 5.06 25 October • Pro release 5.08 15 December See detailed Release Notes http://root.cern.ch/root/Version50400.news.html See presentations at the ROOT workshop Overview of the ROOT system
ROOT team structure ROOT is an Open Source project with main teams from CERN, FNAL, MIT and Agilent/Japan. ROOT is distributed under LGPL. The work-packages SEAL Lorenzo Moneta DICT Philippe Canal BASE Fons Rademakers MATH Lorenzo Moneta I/O & Trees Philippe Canal 2-D/3D graphics Olivier Couet GUI Ilka Antcheva GEOM/VMC Andrei Gheata PROOF Fons Rademakers Overview of the ROOT system
BASE work-package : Plan • plug-in manager extensions • port to new platforms • I/O thread safe • New THtml & Help/Doc system Overview of the ROOT system
DICT work-package : Plan • New version of Reflex • New version of rootcint • rootcint CINT • rootcint -> Reflex ->Cintex ->CINT • rootcint ->gccxml -> Reflex -> CINT • Adapt PyRoot to Reflex • Adapt CINT to Reflex The Dictionary/Reflexion system describes the classes to the system. It is a very important component. Overview of the ROOT system
Dictionaries : root only Root meta C++ CINT DS ROOT X.h CINT API rootcint CINT XDictcint.cxx Overview of the ROOT system
Dictionaries : situation today REFLEX API lcgdict XDictlcg.cxx REFLEX DS X.xml Root meta C++ cintex gccxml CINT DS ROOT CINT API X.h rootcint CINT XDictcint.cxx Overview of the ROOT system
Dictionaries : situation in the future Python CINT Root meta C++ Reflex/Cint DS ROOT CINT/Reflex API new rootcint X.h XDictcint.cxx Gccxml2reflex/cint Overview of the ROOT system
IO work-package : Plan • Consolidation, Consolidation, Consolidation • More cases in auto schema evolution • Better support for references • read ahead with large caches • TreeSQL • TBitmapIndex (speed-up Tree queries) ROOT is used today to process PetaBytes of data. Even more important for LHC Overview of the ROOT system
MATH work-package : Plan • Adapt ROOT classes to MathCore • TF1,2,3, Fitting • Virtual Fitter extensions • corresponding changes in ROOT fitting and roofit • Fitting GUI • Box plots, qqplots • Many new tools required for LHC Physics analysis Overview of the ROOT system
New Math Libraries organization Overview of the ROOT system
Graphics work-package : Plan • zillions of micro/mini features • http://couet.home.cern.ch/couet/POW_files/frame.htm • reimplement (TGaxis) • GL with new GUI • GL for dynamic tracks • Event Display infrastructure Overview of the ROOT system
GUI work-package : Plan • zillions of micro/mini features • http://antcheva.home.cern.ch/antcheva/ • GUI Builder completion • New Editor Widgets • Fit Panel widget Overview of the ROOT system
GUI work-package : Plan High Level Widgets Editors, Browsers, Building Blocks Widgets Combos, scroll bars, dialogs, sliders, MDI, etc Code generators Changing New features Bug fixes TVirtualX Very stable TGX11 TGWin32Gdk TGQt Overview of the ROOT system
GEOM work-package : Plan • Support for parameterized shapes. This will reduce the geometry size in memory for certain geometries defined in G3 style. • CAD geometry import • Geometry builder GUI Overview of the ROOT system
G3 G3 transport User Code VMC G4 G4 transport FLUKA transport FLUKA Reconstruction Geometrical Modeller Visualisation Generators The Virtual MC Overview of the ROOT system
Very complex geometriescreated using ROOT TGeo classes CMS ATLAS ALICE LHCB Overview of the ROOT system
PROOF: major development area • The PROOF system allows: • parallel analysis of trees in a set of files • parallel analysis of objects in a set of files • parallel execution of scripts • on clusters of heterogeneous machines • Its main design goals are: • Transparency: • input objects copied from client, output • objects merged, returned to client • Scalability and Adaptability: • Varying packet size (depends on number • of workers and their relative performance) Overview of the ROOT system
good connection ? VERY important less important PROOF work-package : Plan • Build a test bed • Get Users (help with selectors) • Interfaces with data management services • Provide the full ROOT service in PROOF mode • exploit possible large memory caches Overview of the ROOT system
Typical query-time distribution G. Ganis, ROOT05, 29 Sept 2005 Blocking / Non-blocking non-blocking blocking Overview of the ROOT system
Initialize each slave Many Trees are being processed No user’s control on the order PROOF and Selectors Client Slaves Slaves The same code works also without PROOF (of course!) Slaves Slaves Client Overview of the ROOT system
PROOF processing: API & GUI Processing information Feedback histograms Overview of the ROOT system
PROOF and XROOTD • XROOTD (from Babar) is already playing a very important role in PROOF. It will continue to play a growing role. • The PROOF and XROOTD teams are cooperating to get even more from XROOTD: caching, read ahead, new XROOTD services. • Still a lot to do to have a good integration of XROOTD with other services like CASTOR. Overview of the ROOT system
latency 100 nanos 100 micros 100 millis Disk 2005 100 Giga 100 Tera 10 Peta Disk 2012 > 1 Peta > 1 Tera > 100 Peta CPU/Node hierarchy Laptop node 1->32->??N cpus Local cluster 1000xN cpus GRID(s) 100x1000 nodes Overview of the ROOT system