SEAL and PI Project Status LHCC Comprehensive Review of LCG 22-23 November 2004 P. Mato / CERN.

Slides:



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

SEAL Reflex, the new Reflection Library Stefan Roiser (for the LCG/SEAL Dictionary work package) LCG Applications Area Meeting, Oct. 6, 2004.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Simulation Project Organization update & review of recommendations Gabriele Cosmo, CERN/PH-SFT Application Area Internal.
Simulation Project Organization update & review of recommendations Gabriele Cosmo, CERN/PH-SFT Application Area Internal.
MathMore Lorenzo Moneta, Andràs Zsenei ROOT Workshop 30/9/2005.
SPI Software Process & Infrastructure GRIDPP Collaboration Meeting - 3 June 2004 Jakub MOSCICKI
SEAL V1 Status 12 February 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
TILC09, April 2009, Tsukuba P. Mato /CERN.  Former LHCb core software coordination ◦ Architect of the GAUDI framework  Applications Area manager.
REVIEW OF NA61 SOFTWRE UPGRADE PROPOSAL. Mandate The NA61 experiment is contemplating to rewrite its fortran software in modern technology and are requesting.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
Advanced Analysis Environments What is the role of Java in physics analysis? Will programming languages at all be relevant? Can commercial products help.
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
SEAL Project Status and Plans LHCC Comprehensive Review of LCG-AA November 2003 P. Mato / CERN.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
Conditions DB in LHCb LCG Conditions DB Workshop 8-9 December 2003 P. Mato / CERN.
Java Root IO Part of the FreeHEP Java Library Tony Johnson Mark Dönszelmann
The LCG SPI project in LCG Phase II CHEP’06, Mumbai, India Feb. 14, 2006 Andreas Pfeiffer -- for the SPI team
LCG Applications Area – Overview, Planning, Resources Torre Wenaus, BNL/CERN LCG Applications Area Manager LHCC Comprehensive Review.
SEAL: Core Libraries and Services Project CERN/IT After-C5 Meeting 6 June 2003 P. Mato / CERN.
ROOT Application Area Internal Review September 2006.
The SEAL C++ Reflection System Stefan Roiser (for the LCG/SEAL Dictionary work package) CHEP 2004, 27. Sept Oct., Interlaken.
SEAL Project Overview Lorenzo Moneta/ CERN-EP on behalf of the SEAL team ACAT03 IX International Workshop on Advanced Computing and Analysis Techniques.
SEAL: Common Core Libraries and Services for LHC Applications CHEP’03, March 24-28, 2003 La Jolla, California J. Generowicz/CERN, M. Marino/LBNL, P. Mato/CERN,
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
SEAL Project Core Libraries and Services 18 December 2002 P. Mato / CERN Shared Environment for Applications at LHC.
LC Software Workshop, May 2009, CERN P. Mato /CERN.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
LCG Applications Area Overview Applications Area Internal Review 30 March – 1 April 2005 Pere Mato/CERN.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
LCIO A persistency framework and data model for the linear collider CHEP 04, Interlaken Core Software, Wednesday Frank Gaede, DESY -IT-
INFSO-RI Enabling Grids for E-sciencE ARDA Experiment Dashboard Ricardo Rocha (ARDA – CERN) on behalf of the Dashboard Team.
Software Engineering Overview DTI International Technology Service-Global Watch Mission “Mission to CERN in Distributed IT Applications” June 2004.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
SEAL Project Overview LCG-AA Internal Review October 2003 P. Mato / CERN.
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 SPI Software Process & Infrastructure for LCG Project Overview LCG Application Area Internal.
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
LCG – AA review 1 Simulation LCG/AA review Sept 2006.
- LCG Blueprint (19dec02 - Caltech Pasadena, CA) LCG BluePrint: PI and SEAL Craig E. Tull Trillium Analysis Environment for the.
D. Duellmann - IT/DB LCG - POOL Project1 The LCG Dictionary and POOL Dirk Duellmann.
The SEAL Component Model Radovan Chytracek CERN IT/DB, LCG AA On behalf of LCG/SEAL team This work received support from Particle Physics and Astronomy.
SEAL Project Status SC2 Meeting 16th April 2003 P. Mato / CERN.
Summary of the AIDA workshop AIDA Workshop, July What is AIDA  AIDA defines today interfaces for some common analysis data objects  IHistogram,
Lorenzo Moneta,LHCb Software week, 26 May New ROOT Math Libraries Activities MathLib work package from ROOT SEAL merge new proposed structure for.
LCG Applications Area Internal Review Response (preliminary and brief version) (main points are on last slide) Torre Wenaus, BNL/CERN LCG Applications.
CPT Week, November , 2002 Lassi A. Tuura, Northeastern University Core Framework Infrastructure Lassi A. Tuura Northeastern.
News from EP SFT John Harvey FOCUS Meeting – October 3 rd 2003.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
Project Work Plan SEAL: Core Libraries and Services 7 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Status of SEAL LCG Applications Area Meeting 22 July 2003 P. Mato / CERN Contents Overview Work Packages Status Summary.
D. Duellmann, IT-DB POOL Status1 POOL Persistency Framework - Status after a first year of development Dirk Düllmann, IT-DB.
SPI Software Process & Infrastructure Project Plan 2004 H1 LCG-PEB Meeting - 06 April 2004 Alberto AIMAR
Comments on SPI. General remarks Essentially all goals set out in the RTAG report have been achieved. However, the roles defined (Section 9) have not.
Muon Collider Physics Workshop November 2009, Fermilab P. Mato /CERN.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
POOL Based CMS Framework Bill Tanenbaum US-CMS/Fermilab 04/June/2003.
SPI Report for the LHCC Comprehensive Review Stefan Roiser for the SPI project.
SEAL: Common Core Libraries and Services for LHC Applications
SEAL Project Overview Lorenzo Moneta/ CERN-EP ACAT03
SEAL Project Status LCG Applications Area Internal Review
ROOT Base and SealBase Fons Rademakers Ilka Antcheva Bertrand Bellenot
Project Status and Plan
Simulation Framework Subproject cern
Simulation and Physics
SEAL Project Core Libraries and Services
Presentation transcript:

SEAL and PI Project Status LHCC Comprehensive Review of LCG November 2004 P. Mato / CERN

23 November 2004SEAL & PI Project StatusP. Mato/CERN2 Contents  Project Overview  SEAL Work Packages –Foundation, Framework, Math Libraries, Dictionaries, Scripting, Documentation  PI Status  Manpower Situation  Status and Milestones  Summary

23 November 2004SEAL & PI Project StatusP. Mato/CERN3 SEAL Overview  Provide the software infrastructure, basic frameworks, libraries and tools that are common among the LHC experiments –Select, integrate, develop and support foundation and utility class libraries –Develop a coherent set of basic framework services to facilitate the integration of LCG and non - LCG software  Scope –Foundation Class Libraries »Basic types (STL, Boost, CLHEP, …), utility libraries, system isolation libraries, domain specific foundation libraries –Mathematical Libraries »Common set of mathematical libraries –Basic Framework Services »Component model, reflection, plugin management, incident (event) management, scripting

23 November 2004SEAL & PI Project StatusP. Mato/CERN4 SEAL Project Work Packages FoundationFoundation and Utility Libraries and Plug-in Manager MathLibsMath Libraries Support and Coordination DictionaryLCG Object Dictionary FrameworkComponent Model and Basic Framework services ScriptingScripting Services DocumentationEducation and Documentation

23 November 2004SEAL & PI Project StatusP. Mato/CERN5 Foundation  Provide support for foundation, utility and operating system isolation libraries  Inventory of existing libraries –  Main external library: Boost –Being adopted by experiments and LCG AA projects  Developed SEAL utility and system libraries complementary to Boost and STL from existing code –SealBase - library containing a large variety of utility classes –SealIOTools - library containing utility classes for stream oriented I/O –SealZip - library for compression I/O and producing archive files  Plugin Manager –Basic concept: advanced object factory, dynamic loading of plugins –Two simple interfaces: object instantiation, plug-in provider

23 November 2004SEAL & PI Project StatusP. Mato/CERN6 Foundation Plans  Not foreseen major new developments in this work package –The work needed is mainly to educate users by developing and setting up tutorials, user-guides and coaching developers  Entering maintenance phase –Additional functionality only on direct demand –Further reduction of unnecessary dependencies in external packages

23 November 2004SEAL & PI Project StatusP. Mato/CERN7 Math Libraries  Aim is to provide a coherent set of Mathematical Libraries to end-users and developers of LHC experiments  Requirement to use the same core library in all environments –simulation, reconstruction and analysis –from C++ and interactively (Python, CINT) via C++ dictionary  Avoid duplication and maintenance burden of similar libraries  Collaboration with experiments, ROOT and Geant4

23 November 2004SEAL & PI Project StatusP. Mato/CERN8 Math Libraries Contents  Selected Functionality (non-exhaustive): –Evaluation of Special and Statistical functions (Pdf) –Numerical Algorithms (Integration, Differentiation, Interpolation, Minimization, etc..) –Linear Algebra –Random Number generators and distributions  Avoid duplicating functionality already present in STL (complex, search and sorting algorithms) and non- mathematical functionality  Detailed inventory available at: »

23 November 2004SEAL & PI Project StatusP. Mato/CERN9 C++ Mathematical Libraries wrap (include) Linear Algebra Random Number Generators to investigate Additional Algorithms Minimization (MINUIT) C++ Function classes GSL BLAS, LAPACK CLHEP MathCore Library Core Algorithms Integration Root Finders Differentiation Math Functions Special Functions Stat. Functions Function Interfaces Interpolation MathExtension Library

23 November 2004SEAL & PI Project StatusP. Mato/CERN10 Mathematical Libraries Organization  A Core Library (MathCore) with most used functionality: –Small library ( order of 1MB size) containing »Special and Statistical functions »Core algorithms »Basic function interfaces for algorithms  Linear Algebra library with vector and matrix classes and their operations  Random number generator and distributions  Extension Library (one or maybe more lib’s) –Sophisticated numerical algorithms, like Minimization »Dependency on Linear Algebra or Random Numbers –C++ classes for math functions and their operations »Arithmetic (+,-,*,/), composition and convolution  And Dictionary libraries for interactivity and persistency

23 November 2004SEAL & PI Project StatusP. Mato/CERN11 Math Libraries Current Status  Developed a C++ MathCore library prototype –Based on GSL for majority of functionality –Can be built together with the needed GSL source code »have a library without external dependency (ROOT requirement) –Library include: »~ 20 Special functions (Bessel, Erf, etc…) implemented following C++ Standard proposal »Most used probability distributions (Chi2, Landau, etc..) »Numerical integration, differentiation and root finders »Generic functions interfaces  Next step is to give to users for feedback and to test the integration with ROOT

23 November 2004SEAL & PI Project StatusP. Mato/CERN12 Tests and Validation studies  Performed extensive evaluation of GSL –Test numerical quality and performance of special functions »Comparison with ROOT and NagC »Good results obtained by GSL for most used functions  Random number generator tests –New tests designed for correlations and to detect non-random sequences  Linear Algebra performance tests –Comparison of various packages (CLHEP, GSL, BLAS/LAPACK, ROOT, UBLAS) in matrix operations used in track fitting

23 November 2004SEAL & PI Project StatusP. Mato/CERN13 Fitting and Minimization  Completed major developments of C++ Minuit –Reached same functionality as in Fortran version –Performed validation tests »Same numerical accuracy and CPU performances –Working on adding a new minimizer algorithm (FUMILI)  MINUIT C++ is used by CMS reconstruction and end-users –Stand-alone package which can be built independently  Provided a Fitting library (FML) for standard fitting problems based on MINUIT –Have also Python interface for interactive users

23 November 2004SEAL & PI Project StatusP. Mato/CERN14 Dictionary  C++ Reflection –Reflection is the ability of a language to introspect it’s own structure at runtime and interact with it in a generic way –A dictionary provides reflection information about types of a certain language to the user  Current version - Reflection(Builder) - in production –POOL & SEAL PyLCGDict  New version - Reflex – released –API done in collaboration with the ROOT team –The idea is a common dictionary between SEAL & ROOT –Several enhancements (e.g. references, enums) –Closer to the C++ ISO standard

23 November 2004SEAL & PI Project StatusP. Mato/CERN15 Reflection Model Type TypeBase Scope ScopeBase Member Class PropertyList … Function Typedef Enum Pointer Namespace TempInstan TemplFamily TempFunction TempClass

23 November 2004SEAL & PI Project StatusP. Mato/CERN16 Reflex and ROOT.h Reflex API lcgdict Reflex data.h ROOT Metaclasses rootcint CINT data CINT Interpreter ROOT I/O Python Interpreter PyReflex Python data CINTex

23 November 2004SEAL & PI Project StatusP. Mato/CERN17 Reflex/ROOT Next Steps  Fill CINT data structures (data and methods) from Reflex on demand. –This is needed to allow interactive work using CINT (ROOT) for classes for which only the Reflex dictionary exists. The code for this already exists in POOL for the LCG/CINT dictionary gateway. –Estimated to 3-4 months  Re-implement the ROOT metaclasses (TClass, TMethod, etc.) on top of Reflex –Estimated to 2 months  Adaptation of the CINT interpreter to run on top of Reflex directly is foreseen in principle but detailed planning will only be done after tasks 1 and 2 are completed.

23 November 2004SEAL & PI Project StatusP. Mato/CERN18 Framework  Component Model –Hierarchy of bases classes to support the component model –User classes inherit from Component or Service –Plug-in functionality for free  The first set of Basic Services came with the new Component Model –Application (Defines the top level Context) –Message Service (Message composition, filtering and reporting) –Configuration Service ( Management of Component properties and loading configurations)

23 November 2004SEAL & PI Project StatusP. Mato/CERN19 Framework Status  The objective has been to integrate SEAL component model into the existing Gaudi/Athena framework and evaluate its costs and benefits –Not yet done due to lack of manpower (LHCb & ATLAS) –The development of new services was put on hold until there is a firm commitment from at least 2 experiments  The new developments in POOL are exploiting the use of SEAL component model to implement true components and services together with the component loader –POOL Relational Abstraction Layer set of components

23 November 2004SEAL & PI Project StatusP. Mato/CERN20 Scripting: Python  Recommendations for developing Python bindings –Architects Forum selected to use Boost.Pyhton –PyLCGDict provides an alternative approach  PyROOT –Provides access to ROOT functionality from Python –Uses ROOT/CINT dictionary –Removed any external dependency and performance improvements –Integrated and distributed with ROOT  PyLCGDict –Access to C++ libraries from Python –Uses LCG dictionary. Automatically generates Python proxies for C++ objects dynamically. –Mapping C++ constructs to Python natural constructs

23 November 2004SEAL & PI Project StatusP. Mato/CERN21 PyLCGDict : Mode d’emploi  A “dictionary” library is produced from class definitions (.h files) –Description of the class –“stub” functions to class methods  Absolutely non-intrusive  The PyLCGDict module does the adaptation between Python objects and C++ objects in a generic way –It works for any dictionary MyClass.h MyDict.so select.xml lcgdict Python interpreter load MyClass.so MyScript.py PyLCGDict

23 November 2004SEAL & PI Project StatusP. Mato/CERN22 PyLCGDict Status  Used mainly by LHCb, ATLAS, PI, etc. –ATLAS: Athena application configuration, simulation configuration, distributed analysis (DIAL), interactive analysis (AOD), etc. –LHCb: interactive Gaudi, physics data analysis (Bender), event display (Panoramix) –PI: gluing various systems (ROOT, HippoDraw, etc.) –Geant4: Geometry import/export (GDML+Python)  Adapting to new Reflex API –Ongoing work adapting to the new API (PyReflex) –Better C++ coverage

23 November 2004SEAL & PI Project StatusP. Mato/CERN23 Documentation  SEAL Workbook –Collection of very practical web pages to teach how to use the various SEAL components –Initial version available since June –  Reference Documentation –Doxygen and LXR generated  Python Courses –Provide assistance in the use of Python –3 day course: Hands-on Introduction to Python Programming –Available through CERN Technical Training programme

23 November 2004SEAL & PI Project StatusP. Mato/CERN24 Software Process Issues  SEAL is a collection of fairly independent packages but there are difficulties to release the “parts” independently –The current build and configuration tools does not facilitate the task –Ongoing work in collaboration with SPI to solve the problem  Fairly compete unit test suit –270 independent test programs –Regularly run under the QmTest test driver on all supported platforms

23 November 2004SEAL & PI Project StatusP. Mato/CERN25 Current Status of PI  Developments of the Analysis Services component is completed –Set of component libraries implementing AIDA interfaces –Flexible: choose implementation at runtime using plug-in manager system from SEAL »ROOT and Native implementations for histograms »Storage (I/O) for Histograms and Tuples in ROOT, HBook and XML compressed format  Provide easy conversion between all formats –Well tested, large number of unit tests »Failures due to differences in implementations –Provided Python bindings to AIDA interfaces using LCG Dictionary and PyLCGDict from SEAL

23 November 2004SEAL & PI Project StatusP. Mato/CERN26 Current Status of PI (2)  Ongoing maintenance –Low effort, mainly bug fixes –Release new versions following SEAL, AIDA, etc. releases  Users of PI : –Histogram libraries are used by Gaudi (LHCb + ATLAS) and CMS »LHCb is evaluating to use also AIDA Tuple libraries –Used by Geant4 in advanced examples for storing histograms and tuples –Python layer is used by some physicists for analysis (fitting, etc…)  Need to provide customized download and installation for external users

23 November 2004SEAL & PI Project StatusP. Mato/CERN27 Status of PI: interoperability  Easy interoperability with external tools –Can display histogram in Python using ROOT, JAS and HippoDraw HippoDraw ROOT JAIDA (JAS)

23 November 2004SEAL & PI Project StatusP. Mato/CERN28 Scripting Dictionary Foundation MathLibs SealUtil Framework Packages and Dependencies (v1.4.2) rootboostzlibpcreuuidpythongccxml SealBase SealKernel SealServices PluginManager Reflection ReflectionBuilder SealZip SealIOTools SealSTL SealCLHEP SealROOT clhep PyLCGDict PyROOT Minuit PyBus FML

23 November 2004SEAL & PI Project StatusP. Mato/CERN29 Release Road Map ReleaseDateStatusDescription (goals) V /02/03internal  Establish dependency between POOL and SEAL  Dictionary generation from header files V /03/03public  Essential functionality sufficient for the other existing LCG projects (POOL)  Foundation library, system abstraction, etc.  Plugin management V /07/03public  Essential functionality sufficient to be adopted by experiments  Collection of basic framework services  Scripting support V /09/03public  Corrections and improvements of Framework V /10/03public  Support for ICC and VC++ compilers V /11/03public  Improvements in Plugin Manager  Consolidation Dictionary and Minuit V /03/04public  Bug fixes V /06/04public  Simpler plug-in manager, consolidation component model  New packages PyLCGdict2, FML, Workbook V /11/04public  Bug fixes  New package Reflex

23 November 2004SEAL & PI Project StatusP. Mato/CERN30 SEAL Products and their Usage ATLASAliceCMSLHCbOther Foundation SealBase SealZip SealIOTools PluginManager Framework Component Model Basic Services Dictionary Reflection Lcgdict tool Specific Dictionaries Scripting PyROOT PyLCGDict PyBus MathLibsMinuit In use directlyIn use indirectlyPlanned use

23 November 2004SEAL & PI Project StatusP. Mato/CERN31 Milestones /6/1LateSEAL icc-64 test build support 2004/6/15Done v=15Workbook for SEAL 2004/6/30Done v=65New Dictionary API and reference implementation 2004/7/15Done v=0Mathlib project web 2004/10/1LateFirst version of the C++ mathlib package

23 November 2004SEAL & PI Project StatusP. Mato/CERN32 Manpower Situation Foundation Lassi Tuura (5%) MathLibs Lorenzo Moneta (90%), András Zsenei (100%) Dictionary Stefan Roiser (90%) Framework Radovan Chytracek (20%), Lassi Tuura (5%) Scripting Jacek Generowicz (80%), Massimo Marino (50%) Documentation Jacek Generowicz (20%)  Current SEAL manpower: ~5 FTE  Current PI manpower: ~0.2 FTE  Missing by end-2005: FTEs for remaining development, experiment integration, support, ROOT convergence (Dictionary, MathLibs)

23 November 2004SEAL & PI Project StatusP. Mato/CERN33 Summary  SEAL has delivered a number of components that constitutes the basic foundation and utility libraries and object dictionary –Most of the delivered components are already in use or being tested and planned to be in use by LHC experiments  Ongoing development in two areas mainly: –New C++ Reflection system with the goal to achieve a single dictionary between ROOT and LCG applications –Coherent set of common Mathematical Libraries  PI development is basically finished, entering maintenance phase  Advocating scripting based on Python –Peaceful coexistence between CINT and Python –Powerful tools have been developed (PyROOT, PyLCGDict) –Feedback from early adopters is encouraging (LHCb, ATLAS)