1 / 29

ROOT Impossible wishes ?

ROOT Impossible wishes ?. Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT. http://root.cern.ch. Remarks. People like stable systems People loved PAW once it was frozen in 1994 Must maintain good balance between manpower investment and return value

prisca
Download Presentation

ROOT Impossible wishes ?

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 Impossible wishes ? Alice workshop Sibiu 21 August 2008 René Brun CERN/PH/SFT http://root.cern.ch ROOT impossible wishes

  2. Remarks • People like stable systems • People loved PAW once it was frozen in 1994 • Must maintain good balance between manpower investment and return value • Must make a clear boundary around a product • Must make good judgement between what user requires and what developers would like to see • 90% in support/maintenance • 10% in new ideas ROOT Impossible wishes

  3. Automatic Installation script • Click on http://root.cern.ch/boot.html • The script runs locally and • Import the closest root_core binary if found • Otherwise compile root_core.cxx from source • As alternative use LLVM portable byte code and JIT compiler on final target machine. • Once root-core runs, all other modules are automatically imported with the same procedure • One can easily choose a version or/and swap between versions. ROOT Impossible wishes

  4. Automatic updates • Can subscribe to the auto-update service • With checks at start-up time or daily/weekly base • Can go back to a previous version • Can keep multiple versions ROOT Impossible wishes

  5. Remote execution • From web or root_core auto-execute on another machine • eg from laptop run on lxplus@cern.ch • Service already available in 5.20 via “.R lxplus” but requires several extensions Get GUIs and canvases on local machine root > .R lxplus.cern.ch login_script lxplus > new TBrowser lxplus > .R root > dosomething_local root > .R lxplus ROOT Impossible wishes

  6. Session Manager • Save & Restore session objects and state • TTree::Draw generates a TTreeQueryResult • User Interface ROOT Impossible wishes

  7. CINTACLICJIT • In 1998 root >.x myscript.C • Myscript is interpreted by CINT. User compiles with gcc if he/she needs speed • In 2002 root >.x myscript.C+ • Script is automatically compiled by the native compiler and executed (make like system) • In 20xx root >.x myscript.C • Use JIT (Just In Time compiler) to automatically improve the compilation level in critical areas ROOT Impossible wishes

  8. Faster ACLIC memory We are wasting a lot of time in writing/reading .o or .so files to/from disk Cint 10000 l/s c++ 800 l/s ld myapp *.cxx, *.h 100 Mb *.o 110 Mb *.so 76 Mb ROOT Impossible wishes

  9. CINTACLICJIT • CINT compiles 10000 lines of code in <1second, but is 10 to 20 times slower at execution. • gcc takes at least 10 seconds (-O2) and much more if templated code. • The idea with a JIT would be: • to always use a gcc-like and compatible parser • To generate a portable byte code • Compile fast with the lowest level optimisation • Recompile the critical parts with more aggressive optimization at run time but keeping the object file for further reprocessing. • LLVM is a potential parser and JIT candidate ROOT Impossible wishes

  10. CINT possible improvements • Automatic generation of valid C++ code from a CINT macro, ie • Automatic generation of include statements • Syntax checker (“.” replaced by “->”) • Automatic object pre-fetching from a ROOT file. ROOT Impossible wishes

  11. C++ reflexion system • C++ reflexion in language itself (>2015?) • Meanwhile use Reflex with • Removal of C interface stubs • Direct call to C++ code by demangling symbols in shared libs. • Reduction of dictionary sizes ROOT Impossible wishes

  12. I/O possible improvements • Parallel zipping/unzipping in separate thread • Zipping algorithm using fine grain parallelism • Thread safety ROOT Impossible wishes

  13. Trees improvements • Use memory pools to reduce memory fragmentation • Improve TTreeCache self learning system • Automatic adaptation of branches buffer size and compression level. • Performance diagnostics & visualization tools • Support for an analysis language • TVirtualBranch to support a Tree-like analysis on foreign data sets (eg HDF5) • Enhanced TreeViewer ROOT Impossible wishes

  14. Analysis language • Would like to support something like • With automatic C++ code generation + JIT • With automatic parallelization (PROOF) for each file in fileset for each entry in file.Tree for each electron in electrons FillHisto(“pt”,electron.pt ROOT Impossible wishes

  15. Detector Geometry • Document existing algorithms (essential for long term maintenance) • G4ROOT: more experience required. Make the interface automatic given an existing G4 geometry. • CAD systems interface ROOT Impossible wishes

  16. 2-D graphics • Already many options, but many more requested by users, eg • Negative axis • Astronomy style projections • GapMinder style graphics (see next slide) • 2-D graphics based on GL only, but non-X11 implies having a remote shell execution. ROOT Impossible wishes

  17. GapMinder style graphics • TGraphTime http://graphs.gapminder.org/world/#$majorMode=chart$is;shi=t;ly=2003;lb=f;il=t;fs=11;al=30;stl=t;st=t;nsl=t;se=t$wst;tts=C$ts;sp=6;ti=2006$zpv;v=1$inc_x;mmid=XCOORDS;iid=phAwcNAVuyj1jiMAkmq1iMg;by=ind$inc_y;mmid=YCOORDS;iid=phAwcNAVuyj2tPLxKvvnNPA;by=ind$inc_s;uniValue=8.21;iid=phAwcNAVuyj0XOoBL%5Fn5tAQ;by=ind$inc_c;uniValue=255;gid=CATID0;by=grp$map_x;scale=log;dataMin=199;dataMax=42642$map_y;scale=lin;dataMin=25;dataMax=84$map_s;sma=49;smi=2.65$cd;bd=0$inds= ROOT Impossible wishes

  18. 3-D Graphics ->4,5-D • GL based • 2-D graphics in GL window too • GapMinder-like but in 3-D ROOT Impossible wishes

  19. GUI • One of the most demanding areas • Must follow technology and not standard systems (gks -> phigs ->Motif ->Qt ->?) • GUI based on OpenGL too ! • Plug-ins must work on the web (but 2-d and 3-d graphics too!) • GUI builder extensions (code generators) • GUI must be scriptable and theme-able • HELP + language internalisation • Context menus help access to documentation ROOT Impossible wishes

  20. Cut&paste drag&drop • In v5.20 can already drag&drop objects from a ROOT canvas (including the canvas itself) to another ROOT application. • Would like to drag&drop a ROOT pad/canvas to Powerpoint.This requires a driver for win32 metafile. to another ROOT session or machine to Powerpoint ROOT Impossible wishes

  21. Search/Help system ROOT Impossible wishes

  22. Search/Help system • The class documentation stored in root_help.root (via the existing THtml class), one TKey per class. • Help stored as one single TString per function in html format • Class TGHtml used for rendering ROOT Impossible wishes

  23. TGHtml • This class is a simple html browser. • Plans to extend it (in cooperation with the TkHtml project from Dan Kennedy). An open source project with a very advanced web browser functionality. • Instead of the TK widget, use native ROOT GUI and graphics. ROOT Impossible wishes

  24. Macro Manager/Editor extensions Add syntax highlighting and debugger interface Coding conventions Tooltip help Ideally use a plug-in interface to an existing editor ROOT Impossible wishes

  25. Automatic Parallelism • When running on multi-core systems, automatic parallelization should happen for • Fitting • Zipping/unzipping buffers • TTree::Draw (Process), ie ProofLite by default • Multi-dim density estimators for 3,4,5-D visualization • Thread-safety & thread awareness ROOT Impossible wishes

  26. PROOF ideas • Use the PROOF infrastructure to execute tasks in parallel, eg • proof.Exec(‘mygenerator”,1000000,100) • Make PROOF automatic & invisible Number of events in total Number of events per task ROOT Impossible wishes

  27. Summary-1 • Different forms of parallelism may have a strong implication in manpower. • 18 years ago many people thought that the only solution for scalable computing was parallelism, then the pentium series came and work on parallelism was put in the limbos for a few years. It could be that we will see a new hardware revolution. • Anyhow, time spent on parallelism is never lost. ROOT Impossible wishes

  28. Summary-2 • Hoping that most of these ideas will be implemented in the medium term. • Our target should be to simplify installation and ease of use. • Like Jurgen said in his talk, software products have a longer development time (> 10 years). ROOT will still be used in 10 years, but a new technology may appear. Like humans, software tools die too. ROOT Impossible wishes

  29. Summary ROOT Impossible wishes

More Related