Axel
====
March:
* Leo + Diego (symbol call): next week.
* SVN changes: this week
* after your changes to TCint7: --enable-cint7.
* new reflex: mid February.
And right after that we will start with the work for the December release:
stubless calls integrated into CINT7, GCC4.2 support for that, ACLiC in CINT,
etc.
June:
* new svn repository layout; mv cint/src/v6_* to cint/src/*
* Current CINT ("CINT5") does function calls via symbols. Per-process
selection between symbol-based and stub-based (traditional) version.
Support at least for GCC3.[24] 32bit. Defaulting to stub-based
(traditional) version.
* major update of Reflex (faster!, cleaner API); needs trivial
modifications in PyROOT and Cintex because of API changes.
* CINT7 in parallel with current CINT: selection per-process, needs
--enable-cint7, default traditional CINT.
* interpreter compatibility layer (TCint / TCint7 or similar)
December:
* symbol-based call becomes default for CINT5
* symbol-based call integrated in CINT7 (default?); support includes at
least GCC 4.2, possibly also MSVC (v7.1 == v8 == v9 - ABI on windows is
fixed since Win32)
* Optional dict.root in CINT7
* ACLiC in CINT7
* CINT7 production-grade (default? to be seen...); ROOT dictionaries can be
generated with CINT or Reflex
* Migration of CINT7 towards C++ version started: first steps in thread safety
* Uncertain: on-demand dictionary generation (CINT7)
_________________________________________________________________________
Philippe:
=========
For the June release, for the I/O package, the plan would be
- first draft of Lukasz work on schema evolution
- bug fixes including problem with slow down due to TBranch registering
the object address
- autoloading of (pregenerated) stl dictionary
- change the default storage of STL container to memberwise
- Switch ACLiC to use rootmap file for dependency tracking on all
platforms.
For the December release, for the I/O package, the plan would be
- final draft of Lukasz work on schema evolution
- Comprehensive fix for https://savannah.cern.ch/bugs/?20866
- bug fixes as they come :)
_________________________________________________________________________
Fons/Core
=========
This note outlines the most important tasks to be complete in 2008.
The following people are involved:
- Fons Rademakers (50%)
- Rene Brun (xx%)
- Axel Naumann (5%)
- Philippe Canal (10%)
Tasks for the Summer release:
* Documentation (all)
Need to agree on a doc style for argument description
Add something like *See base* to avoid documenting over and over
the same arguments and options.
* Out of source build mods (Axel)
* Expanded tar balls in svn with vendor branches
* Improve thread safety (gFile/gDirectory)
* Close outstanding issues
* Server maintenance
Tasks for the Xmas release
* Pickup work on BOOT
(see below from previous plans)
Plans for December 2007 release (dated 7 June 2007)
--------------------------------------------------
-Infrastructure for automatic updates with checking for new versions of
precompiled libraries for patch releases.
-Infrastructure for incremental install
-download of precompiled plugins
-download of sources to compile plugins
Update for December 2007 release (10 October 2007)
--------------------------------------------------
- First version of automatic patch downloader and installer
- Prototyping of zero-install/boot
_________________________________________________________________________
Lorenzo
=======
see ppt file
Re-structuring of core Math library
-----------------------------------
-complete MathCore by merging with math directory
-TMath
-use new implementations (Cephes) for some of the functions (Gamma)
-use stl for some of the algorithms (like sort) and add iterator API
-Random numbers
-new Poisson and Binomial generators
-classes for basic algorithms like integration, derivation, root-finders
-interfaces for functions and algorithms (Integration, Minimizer, etc..) used
by other libraries.
-functions to create them via a plug-in manager
-Physics Vectors
need to decide if moving in a separate library or keeping in MathCore
big bulk of library size
-Changes in ROOT to use new Math library
-modify TF1 to use new classes
-add options to use (via plug-in manager) mathmore algorithms
-clean-up of code (remove usage of statics objects)
Fitting
-------
-introduce improvements of TVirtualFitter
already existing in development branch
-working version based on Minuit, Minuit2 and GSL
-various fitting methods (chi2, likelihood, etc..)
-new Fitter class (does not need to be virtual)
-use a Virtual minimizer interface (existing in 5.18)
-FitResult class
-separate classes for Data sources
interfaces for TGraphs and THs classes
-Develop interfaces for other data sources (TTree, THNSparse, etc..)
-Add Linear fitter
-Re-implement Fit methods (i.e. TH1::Fit) and FitPanel
-Add in FitPanel interfaces for all data sources
-Use in TF1,TH1 the new FitResult class
-Improve display of fit results (confidence levels, contours, scan, etc..)
-add robust non-linear fitting (algorithms from M. Ivanov)
-support for parallel fits
Minimization/Optimization
-------------------------
-add genetic algorithms (used in TMVA)
-complete testing of Minuit2
-add more debug facilities (intercative display of minimization iterations)
-Study constraint minimization
-investigate some open-source packaged
-Develop for testing a constraint minimizer based on Nag
Unuran:
--------
apply some improvements in the re-initialization of distributions
Physics Vectors
---------------
use new common implementation and remove duplications
MathMore
--------
-multi-dimensional root-finders
-add quasi-random numbers
-wavelet transforms
Statistics
----------
-improve current limit classes (TLimit, TRolke, TFeldmanCousins)
-add new algorithms for limit and significance
method from Bityukov, Bayesian methods, etc..
-Coordinate with RooStat developments
statistics package being developed by K. Cranmer and based on RooFit
-contacts with experiments statistics committee for required methods
Goodness of Fit
-new algorithms from multi-dimensional data
Density estimators
-new algorithms for pdf estimators in one and more dimensions
-alternative approach than using histograms
-improve or replace existing class THK1
MultiVariate analysis
-comparison TMVA/SPR, understand better overlap/complementarity
-usage of common tools, minimize duplications
QA
--
-Improve and update User guides chapters for :
basic math functionality, statistics, fitting
-Better indexing of the ROOT Math functionality in ROOT
add links to tutorials
provide guidelines and recommendations for packages
-Improve reference documentation of some of the existing classes
example: TConfidenceLevel (many methods not clear at all)
_________________________________________________________________________
Olivier:
========
>>> For June:
- The documentation (the reference manual):
* Revisit all the graphics classes documentation:
- Convert all the headers classes and the header functions into a nice
HTML text like in TAttFill: http://root.cern.ch/root/html/TAttFill.html.
In the class header, the class title should be:
Class Title
If the header need to be divided in sections, the section header is:
Section N
an index of all the sections should appear at the top of the class header.
- Make sure users can find the information from intuitive places.
For example to find all the drawing option froms TH1::Draw it should
takes not more than one click.
- All the option and features should be documented and as much as
possible using example thanks to
Begin_Macro / End_Macro
* Request for THTML improvement: When the name of a method is referenced
inside a C++ comment the THML parser automatically creates the link to
this class (that's very good), but if a method name is inside
Begin_Html/End_Html the automatic reference is not done. It would be
nice to have it. In Wiki it is done using "[[ blabla ]]".
* The "doc" section for each package must be extented in order to
explain the general ideas and concepts for this given package. Here
again many examples are required.
- Use the official libAfterimage in its cvs format (no more as a tar file).
>>> >>> For the end 2008:
- A prototype for dynamically eloving graphs like http://www.gapminder.org/world
ROOT provides all the basic tools to implement that sort of graphs (GUI,
graphics, data set management etc ..)
- The summer student will implement a graphical tool allowing to display
and interact with graphs. The graphs interpretation will be done thanks
to the "graphviz" package: http://www.graphviz.org/
Graphs representations are needed in several places in ROOT. A generic
tool using the power of the ROOT graphics and GUI would be really
useful.
>>> >>> Items not done from the previous release guidelines:
- TParallelCoord: Draw random points instead of dotted lines.
The Idea is the same (reducing cluttering) but it should give
better results on PS and, more important, it should give the
same result with all drivers (Window, QT, PS ... QT, for instance
does not allow to change the spacing between the dots of a dotted line).
And also (if possible):
- GLText - support texture fonts (Olivier)
- A prototype of 2D graphics with GL (Olivier and Matevz)
_________________________________________________________________________
Proof/Fons
==========
PROOF Development Plans for 2008
--------------------------------
This note outlines the most important tasks to be completed in 2008.
The following people are involved in the core PROOF development and
responsible for the tasks outlined below:
- Gerri Ganis (70%)
- Jan Iwaszkiewicz (50%)
- Anar Manafov (50%)
- Jorry Palm (40%)
- Fons Rademakers (50%)
In addition there are some people from Atlas (Neng) and Alice (Jan Fiete)
working on different aspects of PROOF.
Tasks for Summer release:
* Documentation (All)
* Stability (Gerri).
Root out lockups that we still see from time to time.
* Packetizer improvements (Jan)
Come to a full understanding of packetizer performance under
different environments.
* Scheduler interface to Jan's scheduler and Condor (Jan, Neng)
* Improved error handling in case of error in user selector code (Jorry)
* Fix all outstanding issues from Savannah (Anar, me).
* Client side version of CPU processor (e.g. TProccesor class)
Tasks for Xmas release:
* Updated PROOF GUI integrated in the new browser (summer student)
* Mulitple sub-masters on large local cluster to parallelize result merging
(Anar)
* Daemon (xrootd) free PROOF on single multi-core machine (Gerri if 100%)
* Further optimization of PROOF in Grid (Anar)
Get grid aware proxy as xrootd plugin optimize number of connections
to client
_________________________________________________________________________
Proof/Jan
=========
Work plan:
Iterative process of testing and improving the PROOF
scheduler and adding new features.
Planned steps:
- tests with the Wisconsin group and on ALICE CAF,
- adding support for removing workers during the session/query (including
an API to an external scheduler),
- adding workers per query (at least cloning the set of libs),
- defining the set of nodes based on the data location,
- fair share, history-based scheduler (using Monalisa DB in the first
approach).
- testing different scheduling policies and finding appropriate
solutions for typical clusters expected to be deployed in centers belonging
to the different tiers of LCG (e.g. Tier 0 of ALICE, Tiers 2 & 3 of ATLAS).
- further developing the formal description of processing time of a
packet and a query,
- considering different (dis)utility functions (e.g. the weighted
average job processing time),
- looking for further improvements depending on the test results.
Other tasks in PROOF:
- defining a standard automatized tests of performance; combining the
ProofBench with a root file being a "data base" of queries,
- integration with Condor,
- resubmitting of packets in case of lost workers.
_________________________________________________________________________
Proof/Gerri
=====
March 2008
----------
-Fixes / consolidation
Solve PROOF instabilities problems at CAF (< Feb 10th)
Consolidation of dataset and package managers (< Feb 20th)
New PROOF tests
Setup small cluster on 3 lxbuild ad hoc machines ( < Feb 29th)
-Developments
Integrate proper performance and memory monitoring (Anna's work)
XROOTD: VOMS support and a few other GSI related issues
-Documentation
Fill missing parts, move to new scheme (DocBook?)
-PROOF User support
Add new tutorials
CAF , ATLAS (BNL), CMS (Oviedo)
June 2008
---------
PROOF Developments
-Dynamic addition / removal of PROOF workers
-Session resiliance to XROOTD restart
-Self-discovery of PROOF worker nodes / sub clusters
-Consolidate GSI-based setups (temporary sandboxes, VOMS roles)
Next
----
-Restructuring and refactoring
TProof API way too large: some functionality belongs to TProofMgr
datasets, packages, queries, ...
Separate out master functionality from TProof ( TMaster ?)
...
-Optimization of local PROOF setups
Asynchronous-reading in TSocket (w/ dedicated reader thread)
Move up async message queue infrastructure from TXSocket
Relevant also to the remote ROOT session machinery
Implement TProofPlayerLocal
Remove master level
Start local workers directly from the ROOT shell
no daemons, should work on Windows as well
_________________________________________________________________________
Bertrand
========
EVE - CMS Event Display related development
GUI
New classes:
TGSplitFrame: a (horizontally or vertically) splittable composite frame
TGShapedFrame: an irregular shaped composite frame (base class)
TGShapedToolTip: a toopltip like shaped composite frame (to display
graphics i.e. histograms)
TGEventHandler: an event handler to be able to change the way events
(i.e. mouse clicks) are handled in Eve.
This will allow to have several modes in GL (i.e. picking,
selection, edition,...)
...
OpenGL
New classes
TGLEmbeddedViewer: a lightweight version of TGLSAViewer, without menubar
and without editor, meant to be embedded (for multiple
GL views/projections)
...
Eve
New classes
TEveListTree: a very clean TGListTree, basically only emitting signals,
to let the user (slots) event handling (for full control)
TEveListTreeItem: same than above
...
More to come, depending on the CMS requests.
Mainly development in Eve (i.e. configuration managment) and GL
_________________________________________________________________________
Matevz
======
March:
gl/
1. split event handling and selection management off TGLViewer
2. optimize scene updates
eve/
1. compound object handling
2. 3-levels of selection (element, compound, master)
3. coherent handling of multiple views, esp. regarding selection
4. preliminary implementation of configuration saving
5. preliminary calorimeter representation
March->June:
Consolidate these developments until the production release, possibly
adding 2D graphics with GL and consolidation of Timur's plot-painters.
We will also have to do some work for Alice ...
July->Dec:
eve/ and gl/:
1. dynamic visualization
2. support for multi-threading (scene updates, data recalculation)
3. serialization of eve primitives
4. remote visualization
_________________________________________________________________________
Andrei:
=======
Mostly maintenance for geometry package
-Code stability in production conditions (ALICE using it in simulation,
reconstruction, alignment)
-Better work and focusing understanding memory leaks and bottlenecks in the
program flow -> possible speed optimizations
-Bug fixing, improving class and system documentation
No new major developments planned at this point
-Still some new features will be implemented for visualization
(maybe together with EVE development) e.g. GL TGeoTrack and animation
Same maintenance mode for GEOMBUILDER and G4ROOT
_________________________________________________________________________
Wim
===
there is one "big bang" that I have: use python distutils in the configure
script for locating the python header files and libraries. This will require
extensive testing, as it is highly visible to the user. I hope that our new
department here (we moved from NERSC to CRD) will have sufficient different
testing platforms for me now.
Another big change will be to let MethodProxy's behave more like python
functions. This is needed for Viper. However, that is virtually guaranteed
to be transparent to current users.
Finally, the work that I have been doing since the start of the year, is to
go through my TODO list, cleanup of long-standing minor items, as well as a
general cleanup of code (notably interactions with root/meta and CINT). For
the user, this is stuff in the margin.
_________________________________________________________________________
Joerg/TMVA
==========
An update about TMVA: we have a few minor bug fixes that are mainly related
to the GUI and one that is related to the BDT standalone class we are writing.
There is one more item that needs fixing in our GUI, then I will send you a
last update for TMVA, which perhaps could go into 5.18.00x if such a thing is
going to be built.
For the future development we want to deploy a restructured TMVA where the
TMVA core software has changed considerably. We will provide this for the next
ROOT development release.
_________________________________________________________________________
Wouter
======
RooFit development plans for June
---------------------------------
* Major update of inline code documentation
* Major update of RooFit manual (two round: 1 = feb, 2 = june)
* Further upgrading of functionality of p.d.f persistence through
RooWorkspace. Coding is already done for a large part but was not
committed to 5.18 because it needs more testing
* Work on integration handling
* Interfacing to MathMore functions and numeric integration routines
(Not a very big project - not structurally invasive)
* Reworking of integration control interface. Partially tied to
previous project. Also not structurally very invasive.
* Add objects representing running integrals in addition to definite
integrals (needed for RooStats)
* More regression tests
RooFit development plans for Dec (preliminary)
----------------------------------------------
* Work on multi-host parallelization of fitting and toy mc generation
building on RooWorkspace streaming ability to be able to transfer
problem definition from one host to another. Explore possibility
to PROOF interface to organize this.
* There may be more...
Given the program for June, I do not foresee bulk changes close to June
other than perhaps documentation updates, which I expect to be 80%
of the total work.
Concerning RooStats, I have not been discussing this with Kyle recently
(i.e. 2008), but we're both still very interested to work out this project
soon. I hope to see Kyle around ATLAS week to discuss more details.
With that caveat I tentatively expect that we'll have a initial suit of
tools ready for June and more expansive suite for Dec. Most of the work is
still in setting up the right organizational structure for these tool class
as the information required for the problem definition for real-life
statistics issues tend to be rather complex. I think our target for June
should be to get that right and have 1-2 example implementations. More methods
and tools will then follow for the Dec release. But we might
go faster...