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

Slides:



Advertisements
Similar presentations
The Complete Technical Analysis and Development Environment An attractive alternative to MATLAB and GAUSS - Physics World.
Advertisements

Software Development Languages and Environments. Programming languages High level languages are problem orientated contain many English words are easier.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
LINUX-WINDOWS INTERACTION. One software allowing interaction between Linux and Windows is WINE. Wine allows Linux users to load Windows programs while.
Java.  Java is an object-oriented programming language.  Java is important to us because Android programming uses Java.  However, Java is much more.
O. Stézowski IPN Lyon AGATA Week September 2003 Legnaro Data Analysis – Team #3 ROOT as a framework for AGATA.
B-1 Appendix B Information System Software Robert Riordan, Carleton University.
Chapter 3 Software Two major types of software
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Web Content Management Systems. Lecture Contents Web Content Management Systems Non-technical users manage content Workflow management system Different.
Lesson 4 Computer Software
McGraw-Hill© 2007 The McGraw-Hill Companies, Inc. All rights reserved. 1-1.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
Sept 11, 2003ROOT Day1, Suzanne Panacek39 ROOT An object oriented HEP analysis framework. Day 1.
Bertrand Bellenot ROOT Users Workshop Mar ROOT GUI Builder Status & Plans ROOT & External GUI World MFC, FOX, Qt, PVSS… Snapshot of the Future.
Higher Grade Computing Studies 2. Languages and Environments Higher Computing Software Development S. McCrossan 1 Classification of Languages 1. Procedural.
SB ScriptBasic Introduction to ScriptBasic There are more people writing programs in BASIC than the number of people capable programming.
JAS3 + AIDA LC Simulations Workshop SLAC 19 th May 2003.
1 Computing Software. Programming Style Programs that are not documented internally, while they may do what is requested, can be difficult to understand.
CHAPTER FOUR COMPUTER SOFTWARE.
9 Chapter Nine Compiled Web Server Programs. 9 Chapter Objectives Learn about Common Gateway Interface (CGI) Create CGI programs that generate dynamic.
Chapter Three The UNIX Editors. 2 Lesson A The vi Editor.
Computer Programming 12 Mr. Jean March 19 th, 2013.
WS16-1 ADM , Workshop 16, August 2005 Copyright  2005 MSC.Software Corporation WORKSHOP 16 WRAP-UP.
‘Tirgul’ # 7 Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #7.
Chapter 34 Java Technology for Active Web Documents methods used to provide continuous Web updates to browser – Server push – Active documents.
Ch 1. A Python Q&A Session Spring Why do people use Python? Software quality Developer productivity Program portability Support libraries Component.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
Axel Naumann University of Nijmegen / NIKHEF, NL ROOT 2004 Users Workshop The Future of THtml Plans and Status of ROOT’s documentation facility.
4 Copyright © 2004, Oracle. All rights reserved. Creating a Basic Form Module.
Fundamental Programming: Fundamental Programming K.Chinnasarn, Ph.D.
Graphing and statistics with Cacti AfNOG 11, Kigali/Rwanda.
© Janice Regan, CMPT 300, May CMPT 300 Introduction to Operating Systems Memory: Relocation.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
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.
Computing System Fundamentals 3.1 Language Translators.
3 Copyright © 2004, Oracle. All rights reserved. Working in the Forms Developer Environment.
CHEP 2013, Amsterdam Reading ROOT files in a browser ROOT I/O IN JAVASCRIPT B. Bellenot, CERN, PH-SFT B. Linev, GSI, CS-EE.
Chapter Three The UNIX Editors.
The JANA Reconstruction Framework David Lawrence - JLab May 25, /25/101JANA - Lawrence - CLAS12 Software Workshop.
THtml rev 2.0 Status and Plans of ROOT’s documentation facility Axel Naumann / Fermilab.
Operating System Concepts Three User Interfaces Command-line Job-Control Language (JCL) Graphical User Interface (GUI)
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
LCG AA Meeting 31 October 2007 The new dynamically and extensively customizable ROOT browser Bertrand Bellenot.
CINT & Reflex – The Future CINT’s Future Layout Reflex API Work In Progress: Use Reflex to store dictionary data Smaller memory footprint First step to.
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.
CHEP09 after thoughts Rene Brun. CHEP09 and ROOT Conference was good for us ROOT is now in all HENP experiments SuperBelle and HSC moving to ROOT FAIR:
Go4 Workshop J.Adamczewski-Musch, S.Linev Go4 advanced features.
Some ideas for possible future developments LCG Applications area meeting 8 March 2006 Ren é Brun CERN.
Introduction to Programming 1 1 2Introduction to Java.
Programming 2 Intro to Java Machine code Assembly languages Fortran Basic Pascal Scheme CC++ Java LISP Smalltalk Smalltalk-80.
1 Sections Java Virtual Machine and Byte Code Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
A S P. Outline  The introduction of ASP  Why we choose ASP  How ASP works  Basic syntax rule of ASP  ASP’S object model  Limitations of ASP  Summary.
PROOF on multi-core machines G. GANIS CERN / PH-SFT for the ROOT team Workshop on Parallelization and MultiCore technologies for LHC, CERN, April 2008.
2001 ROOT Workshop The Summary. Content Most Requested Request already satisfied Build and Distribution Web Page Information and Documentation.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
Evolution and History of Programming Languages
Ideas for ROOT in the future
Applications Active Web Documents Active Web Documents.
Topic 2: Hardware and Software
Programming Language Hierarchy, Phases of a Java Program
A451 Theory – 7 Programming 7A, B - Algorithms.
Application with Cross-Platform GUI
COMPUTER SOFT WARE Software is a set of electronic instructions that tells the computer how to do certain tasks. A set of instructions is often called.
(Computer fundamental Lab)
ROOT Support and Developments at FNAL
Programming Logic and Design Eighth Edition
Presentation transcript:

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

ROOT Impossible wishes2 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 wishes3 Automatic Installation script Click on 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 wishes4 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 wishes5 Remote execution From web or root_core auto-execute on another machine eg from laptop run on 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

ROOT Impossible wishes6 Session Manager Save & Restore session objects and state TTree::Draw generates a TTreeQueryResult User Interface

ROOT Impossible wishes7 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 wishes8 *.cxx, *.h 100 Mb c l/s ldmyapp memory *.so 76 Mb *.o 110 Mb Cint l/s We are wasting a lot of time in writing/reading.o or.so files to/from disk Faster ACLIC

ROOT Impossible wishes9 CINT  ACLIC  JIT CINT compiles 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 wishes10 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 wishes11 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 wishes12 I/O possible improvements Parallel zipping/unzipping in separate thread Zipping algorithm using fine grain parallelism Thread safety

ROOT Impossible wishes13 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 wishes14 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 wishes15 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 wishes16 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 wishes17 GapMinder style graphics TGraphTime S;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 wishes18 3-D Graphics ->4,5-D GL based 2-D graphics in GL window too GapMinder-like but in 3-D

ROOT Impossible wishes19 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 wishes20 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 wishes21 Search/Help system

ROOT Impossible wishes22 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 wishes23 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 wishes24 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 wishes25 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 wishes26 PROOF ideas Use the PROOF infrastructure to execute tasks in parallel, eg proof.Exec(‘mygenerator”, ,100) Make PROOF automatic & invisible Number of events in total Number of events per task

ROOT Impossible wishes27 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 wishes28 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 wishes29 Summary