29
ROOT impossible wishes 1 Alice workshop Sibiu 21 August 2008 René Brun CERN/PH/SFT ROOT Impossible wishes ? http://root.cern.ch

ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

Embed Size (px)

Citation preview

Page 1: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT impossible wishes 1

Alice workshop Sibiu21 August 2008

René Brun CERN/PH/SFT

ROOT Impossible wishes ?

http://root.cern.ch

Page 2: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 3: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 4: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 5: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 5

Remote execution

From web or root_core auto-execute on another machine

eg from laptop run on [email protected] Service already available in 5.20 via “.R

lxplus” but requires several extensions

root > .R lxplus.cern.ch login_script

lxplus > new TBrowser

lxplus > .R

root > dosomething_local

root > .R lxplus

Get GUIs and canvases

on local machine

Page 6: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 6

Session Manager

Save & Restore session objects and state TTree::Draw generates a

TTreeQueryResult User Interface

Page 7: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 7

CINTACLICJIT

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

Page 8: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 8

*.cxx, *.h100 Mb

c++800 l/s ld myapp

memory

*.so76 Mb

*.o110 Mb

Cint10000 l/s

We are wasting a lot of time in

writing/reading .o or .so files to/from disk

Faster ACLIC

Page 9: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 9

CINTACLICJIT 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

Page 10: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 11: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 12: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 12

I/O possible improvements

Parallel zipping/unzipping in separate thread

Zipping algorithm using fine grain parallelism

Thread safety

Page 13: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 14: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 15: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 16: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 17: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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=

Page 18: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 19: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 20: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 21: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 21

Search/Help system

Page 22: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 23: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 24: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 24

Macro Manager/Editor extensions

Add syntax Add syntax highlighting and highlighting and

debugger interfacedebugger interfaceCoding conventionsCoding conventions

Tooltip helpTooltip help

Ideally use a plug-in

interface to an existing

editor

Page 25: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 26: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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

Page 27: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 28: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

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.

Page 29: ROOT impossible wishes1 Alice workshop Sibiu 21 August 2008 Ren é Brun CERN/PH/SFT ROOT Impossible wishes ?

ROOT Impossible wishes 29

Summary