Guidelines, Suggestions February 05 2010 Rene Brun.

Slides:



Advertisements
Similar presentations
Physicist Interfaces Project an overview Physicist Interfaces Project an overview Jakub T. Moscicki CERN June 2003.
Advertisements

COM vs. CORBA.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
The road to reliable, autonomous distributed systems
Blueprint RTAGs1 Coherent Software Framework a Proposal LCG meeting CERN- 11 June Ren é Brun ftp://root.cern.ch/root/blueprint.ppt.
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
Computer Science 162 Section 1 CS162 Teaching Staff.
Data Structures and Programming.  John Edgar2.
LHC Experiment Dashboard Main areas covered by the Experiment Dashboard: Data processing monitoring (job monitoring) Data transfer monitoring Site/service.
This chapter is extracted from Sommerville’s slides. Text book chapter
Bertrand Bellenot root.cern.ch ROOT I/O in JavaScript Reading ROOT files from any web browser ROOT Users Workshop
Platforms for Learning in Computer Science July 28, 2005.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
ROOT: A Data Mining Tool from CERN Arun Tripathi and Ravi Kumar 2008 CAS Ratemaking Seminar on Ratemaking 17 March 2008 Cambridge, Massachusetts.
ROOT Graphics Release planning – June 2006 See also the Graphics Work Package Program of Work on the web.Graphics Work Package Program of Work.
- Circle markers produced by TAsimage: They do not match was is produced on screen. The line width is too thick. Some other markers need to be tune a bit.
-Problem with the Fill Color/Style on PS: 2 problems pending. Need to be fixed soon. Working on it. -Make some “session capture”: To show some “Typical.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
CIS—100 Chapter 9—PowerPoint 1. The PowerPoint User Interface 2 There is a tall band across the screen that contains many, very visual commands arranged.
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
Graphing and statistics with Cacti AfNOG 11, Kigali/Rwanda.
ROOT Application Area Internal Review September 2006.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
“Paper” output Root Graphics Workshop 16/07/2010.
Capabilities of Software. Object Linking & Embedding (OLE) OLE allows information to be shared between different programs For example, a spreadsheet created.
A Technical Validation Module for the offline Auger-Lecce, 17 September 2009  Design  The SValidStore Module  Example  Scripting  Status.
CSE S. Tanimoto Java Introduction 1 Java A Programming Language for Web-based Computing with Graphics.
Rene Brun Booting ROOT with BOOT René Brun, Fons Rademakers CERN Geneva, Switzerland.
ROOT Future1 Some views on the ROOT future ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
M1G Introduction to Programming 2 3. Creating Classes: Room and Item.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Oman College of Management and Technology Course – MM Topic 7 Production and Distribution of Multimedia Titles CS/MIS Department.
Work in progress Philippe & Rene. Memory Pools when reading Currently we new/delete – zipped buffer (when no cache) – unzipped buffer – branches target.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
Overview, Major Developments, Directions1 ROOT Project Status Major developments Directions NSS05 Conference 25 October Ren é Brun CERN Based on my presentation.
GLAST 1 Event Display VRVS meeting Glast software collaboration Pisa experience with ROOT N Lumb and G Spandre INFN-Pisa.
1 G4UIRoot Isidro González ALICE ROOT /10/2002.
GROUP PresentsPresents. WEB CRAWLER A visualization of links in the World Wide Web Software Engineering C Semester Two Massey University - Palmerston.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
Some ideas for possible future developments LCG Applications area meeting 8 March 2006 Ren é Brun CERN.
Why do F77 always spoil the landscape ?. Several ideas … slide 2.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
What is New in Core Fons Rademakers 1. Library Reorganization Split off from libCore: libRIO libNet libMath (soon) These libraries are now loaded at run-
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
TechKnowlogy Conference August 2, 2011 Using GoogleDocs for Collaboration.
ANALYSIS TRAIN ON THE GRID Mihaela Gheata. AOD production train ◦ AOD production will be organized in a ‘train’ of tasks ◦ To maximize efficiency of full.
Guidelines, Suggestions February Rene Brun.
Go4 v2.2 Status & Overview CHEP 2003
Ideas for ROOT in the future
(on behalf of the POOL team)
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Comments about PROOF / ROOT evolution during coming years
Potential use of JAS/JAIDA etc. SAS J2EE Review
Java Analysis Studio and the hep.lcd classes
WIRED 4 Event Display Linear Collider Simulation Workshop
Presentation transcript:

Guidelines, Suggestions February Rene Brun

Keys for success Continuous users trust in the development team Robustness before anything new Improve user support before anything else Maintain and improve team spirit Developers must always have a critical approach Developers must anticipate user needs Developers must be polychrome

Reality LHC will run 2 years at 2x3.5TeV collaborations do not want to see major changes. They will need consolidation, bug fixes, performance improvements. December release 5.28 should not include back incompatible changes, but be like 5.26k Version 5.30 In December 2011 is an opportunity to come with important new developments.

IO : documentation It is important to come with a document describing the basic principles of ROOT IO. For example it is essential to come with the shortest possible subset of ROOT/IO showing how to read objects saved as Tkey simple loop on a Tree and it would be nice to show this example in Java too. This project will force a better documentation and give confidence that a ROOT file can be read in the future.

IO - general Optimize the system assuming that files will be accessed through the network. Used portions of files cached locally, eg xrootd client must be able to cache the 10 MB chunks of the treeCache + connections with proxys T1 T3

IO: StreamerInfo Rewrite ReadBuffer/WriteBuffer from a giant switch/case system to a system with pointers to each case and where new cases can be added dynamically. Improve performance by removing virtuality at the wrong place, ie virtuality at the collection level and not at the member level as it is now.

IO- Zlib Follow progress with Intel versions of zlib. Once they have fixed the remaining problems, the new zlib could show a huge speed-up factor.

Trees Do not make the interface more complex than what it is. Add support for a TVirtualBranch to better support foreign formats such as HDF5 and FITS.

TTree::GetEntry Implement memory pools to minimize memory fragmentation and improve parallelism. eg a Tree with 1000 branches and 100 cores. each core creates one memory pool for 10 branches and process (read/write) the branches in parallel. Do not create separate threads for unzipping

TTree::Draw Generalize support for Ndim histograms TTreeFormula via JIT/LLVM Draw returns a TQueryResult (also change PROOF accordingly). TQueryResults are kept/browsed/saved htemp, graphs pointers obtained via TQueryResult Must be in sync with the new TSessionManager

LLVM Most urgent: evaluate run time overhead (memory). Can we split the libllvm.a into manageable units? Current VM for root.exe is about 20 MB on 32 bits machine, of which libCint.so is about 6 Mbytes. Implement llvm2root to replace rootcint -> mydict.cxx and mydict.root. dict still used by cint. Once llvm2root is well understood, do the same for gccxml. Only when this basic llvm2root is well understood, replace cint by llvm. Design from the beginning for having one instance of the interpreter per thread.

LLVM and dictionaries The target should be to remove completely the G_ files: storing the necessary info about a class in xxx.root file and generate the stubs on the fly with the JIT. In fact before replacing CINT by LLVM, one must show a prototype showing that this is possible

PyRoot I am very impressed by Wim’s work. Without Wim the python interface from ROOT will be dead since a long time. However I continue to believe that there is a growing impedance mismatch between C++ and Python. See for example the recent discussion about object ownership at the forum. Will a direct Python/LLVM/ROOT interface be better? difficult to say without having a really working implementation, but this will be a lot of work.

Graphics linking with OpenGL adds 60->100 MB of VM Can we still produce graphics in batch? ie pdf, eps, png,etc Implement cheap/efficient pdf for Timur’objects and ideally also for geometry objects. Forget gl2ps. Use jpg, png, gif otherwise I am convinced that somebody has already an efficient implementation (see Google). libAfterImage strategy?

Graphics 2 Urgent to sort priorities in Olivier’s list (or not) transparency (in TColor or TAttFill?) pdf/ps improvements in Olivier’s list (eg images) global canvas settings for fonts in pixels, ie same font size for all axis in all pads. TAxis::SetPolar TH2Polar, TH3Tube, TH3Sphere rendering axis reverse order (many side-effects) better bar-chart rendering and lego rendering for TH1

Graphics 3 Do not change the NDC system. This would generate far too many side effects. Rationalize the projection system of TH2 and TGraph2D when drawing in 3d views. The current system complicates the life when superimposing other objects. Upgrade fill areas types to support transparency, color gradients (up/down, left/right, inside/outside)

wanted

3D & GL Worried by the size of EVE. We need a documentation explaining the architecture and various classes. we need libEveUtils Important to implement time component with GL,eg showing an event generator with time showing an event with its showers in time showing animations and of course a time slider (time-zoom, log(time),..) with generation of animated gif files POV-Ray interface (see )

GUI rethink structure assuming an application controlled via a remote browser, ie support for graphics objects across the network. Do not start implementing costly gadgets before understanding the consequences of above point. Show small prototype independent of ROOT. Rethink the tutorials for GUI with small applications of one page max (rootshower, guitest far too complex)

GUI 2 Is it really difficult to make a TVirtualX implementation based on GL with the same look&feel? with TVirtualX as it is (more or less). Same but with a TVirtualX redesigned in view of client/server. Only when these 2 first steps are implemented consider a possible better rendering. Remember! the quality of a GUI is inversely proportional to the number of widgets on the screen (think Google-Earth)

GUI 3 Main message: proceed in small steps such that users always see a progress. What to do with QtRoot? assuming GUI based on GL

Hist New class with binomial, poisson, asymmetric errors as suggested by Lorenzo. Complete THnSparse and make it consistent with the other histogram classes TH2Poly with bins = closed polygon (eg honeycomb, tubes, EU country map) TH2Polar, TH3Tube, TH3Sphere The 3 above require a rethinking/(back compatible extension of TH1)

Hist 2 The current separation of fitting and projections with DoFit, DoProjection makes the code unreadable and unmaintainable. For example, TH1::Fit and TGraph::Fit must have a picture illustrating the sequence of operations, including which files are involved.

Math Rationalize support for matrices (smatrix, TMatrix). Same for Physics vectors. Rationalize support for fitting (Minuit, Minuit2) RooFit, tmva should use only MathCore. If libs like gsl or unuran are used, it must be via optional plugins. Why not a separate product including mathmore, roofit, tmva with separate leadership? Stable Root /mathcore used by new math.

Proof TQueryResult in common between bare-root, prooflite,proof and pod. Parallel merge during process, not at the end Work more for non-Trees use cases, eg RooFit toy MCs G4 event level parallelism Improve documentation, usability and installation. Development oriented from “simple to complex” instead of “complex to simple”.

geom Interoperability with G4 view in padgl Show examples of use in a fast MonteCarlo Show examples of use in a reconstruction program Each algorithm, in particular distance to boundaries (in and out) must be documented with graphics and math.

G4 and ROOT G4 team main task: develop E & H Physics compare with data, ie validation G4 geometry and TGeo are merged (functionality-wise) into one single package. G4 uses ROOT as the underlying framework for interpreter: CINT -> LLVM + dictionaries all math libs: random numbers, physics vectors, etc IO for geometry, cross-sections and generated data parallel event generator with PROOF visualization: detectors and hits documentation installation procedure

G4 and ROOT 2 The scenario from previous slide is followed. The SFT group makes sense as a group with a common vision. A much reduced scenario is followed because of inertia or the common thinking that we need something in the very short term for LC. eg a solution where TGeo is used for visualization and requires an interface G4geo->gdml->TGeo and a ROOT- based LCIO. This pessimistic scenario for G4+ROOT would be the end of SFT and the birth of G5.

Installation configure/make : key factor for our success even if the current system is becoming fat. The web install page must be seriously revisited and extended. a simple Install_GUI is welcome (see current mess on MAC), a must on Windows. Should be web-based. I continue to believe that BOOT is a strategic direction. BOOT is not a tool to install ROOT only, but the system to install any application. Now that we have LLVM in mind + expertise in proxys, it should be easier to implement.

ROOT, G4, SPI Installation procedures in common Testing procedures in common release procedures in common Documentation generation in common tools (valgrind, coverity,..) in common We have 20 years experience with G3 and PAW

QA: Test coverage Continue our program on QA. Fix all coverity reports asap Make sure to reach at least 66% for the test coverage We need an automatic graph monitoring the progress per package. roottest is essential but far too complex and it does not scale to more than 2 developers.

Documentation Many classes are badly documented. We have tools, thanks to THtml to include graphics, html, examples in the classes. Same for tutorials. Enough info must be in the comments in order to run any tutorial. Classes doc will be in xxx.root files. It is urgent to evaluate the size of ROOT.root file (should be distributed with the binaries in eg $ROOTSYS/etc). and of course Users Guide in a format (docbook?) such that we can generate pdf and html versions.

Forum/Savannah forum: add interface to move item to Savannah, including assigning somebody to the problem. Suppress: carrot, “CINT discussion”, “CINT bugs and features”

Next ROOT workshop Following a discussion with Eddy Offermann, he proposes to organize it in Saas-Fe in March Could be an opportunity to show 90% of what I have been talking about :. and also an opportunity for me “ de tirer ma reverence”