SEAL Project Overview Lorenzo Moneta/ CERN-EP on behalf of the SEAL team ACAT03 IX International Workshop on Advanced Computing and Analysis Techniques.

Slides:



Advertisements
Similar presentations
Seal Dictionary Applications Area Internal Review 20 October 2003 Stefan Roiser / CERN.
Advertisements

D. Düllmann - IT/DB LCG - POOL Project1 POOL Release Plan for 2003 Dirk Düllmann LCG Application Area Meeting, 5 th March 2003.
Blueprint RTAGs1 Coherent Software Framework a Proposal LCG meeting CERN- 11 June Ren é Brun ftp://root.cern.ch/root/blueprint.ppt.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
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.
OpenAlea An OpenSource platform for plant modeling C. Pradal, S. Dufour-Kowalski, F. Boudon, C. Fournier, C. Godin.
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.
M Gallas CERN EP-SFT LCG-SPI: SW-Testing1 LCG-SPI: SW-Testing LCG Applications Area GridPP 7 th Collaboration Meeting LCG/SPI LCG.
REVIEW OF NA61 SOFTWRE UPGRADE PROPOSAL. Mandate The NA61 experiment is contemplating to rewrite its fortran software in modern technology and are requesting.
Nightly Releases and Testing Alexander Undrus Atlas SW week, May
IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research KEK, Tsukuba, December 2003
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 Software Process panel SPI GRIDPP 7 th Collaboration Meeting 30 June – 2 July 2003 A.Aimar -
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.
CINT & Reflex: New Reflection Data Structures Masa(haru) Goto Agilent Philippe Canal Fermilab/CD Stefan Roiser, Axel Naumann PH/SFT.
DOSAR Workshop, Sao Paulo, Brazil, September 16-17, 2005 LCG Tier 2 and DOSAR Pat Skubic OU.
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.
March 27, 2007HPC 07 - Norfolk, VA1 C++ Reflection for High Performance Problem Solving Environments Tharaka Devadithya 1, Kenneth Chiu 2, Wei Lu 1 1.
ROOT Application Area Internal Review September 2006.
LCG-SPI: SW-Testing LCG AppArea internal review (20/10/03)
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.
The POOL Persistency Framework POOL Project Review Introduction & Overview Dirk Düllmann, IT-DB & LCG-POOL LCG Application Area Internal Review October.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
SEAL Framework & Services LCG AA Internal Review 20 October, 2003 Radovan Chytracek / CERN on behalf of SEAL team.
The LHC Computing Grid Project (LCG) and ROOT Torre Wenaus, BNL/CERN LCG Applications Area Manager John Harvey, CERN EP/SFT Group Leader
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
SEAL and PI Project Status LHCC Comprehensive Review of LCG November 2004 P. Mato / CERN.
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.
5 Novembre 2001 Vincenzo Innocente AFT Agenda 1 AFT Tasks l Architecture l Framework l Framework specializations l Utility Toolkit l Graphics tools l Data.
- LCG Blueprint (19dec02 - Caltech Pasadena, CA) LCG BluePrint: PI and SEAL Craig E. Tull Trillium Analysis Environment for the.
12 March, 2002 LCG Applications Area - Introduction slide 1 LCG Applications Session LCG Launch Workshop March 12, 2002 John Harvey, CERN LHCb Computing.
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,
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.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
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.
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.
SPI Software Process & Infrastructure Project Plan 2004 H1 LCG-PEB Meeting - 06 April 2004 Alberto AIMAR
12 March, 2002 LCG Applications Area - Introduction slide 1 LCG Applications Session LCG Launch Workshop March 12, 2002 John Harvey, CERN LHCb Computing.
Elements of LCG Architecture Application Architecture Blueprint RTAG 8 th June 2002 P. Mato / CERN.
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
(on behalf of the POOL team)
Dirk Düllmann CERN Openlab storage workshop 17th March 2003
Project Status and Plan
Module 01 ETICS Overview ETICS Online Tutorials
Simulation Framework Subproject cern
SEAL Project Core Libraries and Services
Planning next release of GAUDI
Presentation transcript:

SEAL Project Overview Lorenzo Moneta/ CERN-EP on behalf of the SEAL team ACAT03 IX International Workshop on Advanced Computing and Analysis Techniques in Physics Research 1-5 December, 2003 KEK

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN2 Outline  Introduction –Scope and motivation  SEAL Work Packages –Description –Current status  Future plans and summary

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN3 Project motivation  What is SEAL ? –project in LCG Application Area –started last year after BluePrint RTAG recommendations –common project on core tools and services »SEAL: Shared Environment for Applications at LHC  SEAL aims to –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  Do not re-invent the wheel –Try to use as much as possible of existing software –Develop/adapt/generalize to achieve necessary level of coherency

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN4 Project scope  Foundation Class Libraries –Basic types (STL, Boost,…), utility libraries, system isolation libraries, domain specific foundation libraries  Mathematical Library –Basic mathematical functions, linear algebra, fitting and minimization libraries  Basic Framework Services –Component model, reflection, plug-in management, incident (event) management, distributed computing, grid services, scripting Basic Framework Foundation Libraries Simulation Framework Reconstruction Framework Visualization Framework Applications... Optional Libraries Other Frameworks Software Structure

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN5 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 GridGrid Services DocumentationEducation and Documentation Not yet active

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN6 Foundation and Utility Libraries  Inventory of existing C++ utilities ( ( –Recommended classes useful for LCG projects and experiments –Large number from Boost (open source project) »Support for Boost is provided (in contact with developers)  Develop in SEAL what is missing in STL and Boost  Have a set of low-level, fairly independent class libraries –  200 classes originated mainly from classlib (CMS) –Basic abstraction and foundation utilities classes –Timing utilities –Stream-oriented I/O, compression and decompression  High quality, efficient, well tested and documented library –Recommend best practice to LHC developers

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN7 Plug-in Manager  Plug-in Management –Service in charge of managing, querying, [un]loading plug-ins  Low level plug-in management (no framework constraints) –Ability to create “module” libraries containing “plug-ins” –Ability to instantiate concrete implementations knowing the plug-in category and the concrete type –Caching information for fast loading »what modules contain »what kind of plug-ins exist and which categories  Imported from CMS IGuana –Basic concept: advanced object factory »Interfaces for object instantiation and plug-in provider –Dynamic loading completely orthogonal — and optional!

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN8 Mathematical Libraries  GSL (Gnu Scientific Library) evaluation –Extensive comparison with NagC –Validation and test suite  Re-implementation of MINUIT in C++ –Prototype available with Migrad and Minos –Undergoing numerical and performance tests »Comparison tests with Fortran version (compatibility within errors)  Linear Algebra –Prototype wrapper around GSL matrices. –Comparison of various linear algebra packages (CLHEP, GSL, [u]CBLAS)  Participation in CLHEP project  Provide to experiments math and statistics libraries to be used in analysis, reconstruction and simulation. –support, consultancy, etc..

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN9 Object Dictionary  Adding “introspection/reflection” capabilities to C++  Use for persistency and interactivity (e.g. Python)  Modern languages provide reflection inherently –In C++ reflection is very limited (RTTI)  The basic C++ concepts shall be supported –e.g. inheritance, methods, data members, accessibility, templates  Seal provides : –Reflection Builder and Reflection (API interface) packages –Dictionary generator to produce dict. source from C++ files »Uses gcc-xml + Python script –Dictionary for some standard packages (STL, CLHEP)  Used by POOL (persistency)

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN10  gcc-xml to parse header-files (extension to gcc )  XML file generated with dictionary information  Python script to generate dictionary C++ code –use an additional XML file to customize class selection  Compiled and loaded at run-time to create dictionary –Provide meta information about the object to the user Dictionary Generator.xml.h lcgdict.h gccxml.xml filter + exten gendict par ser _dict.cpp..Dict.so make selection file (Python script) #include files Reflection Libraries Clients User

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN11 Framework Services  Motivation: –Allow LCG developers and users to write portable and modular code –Provide abstractions for modelling software systems  Component model definition –Basic Components »Set of “base classes” and interfaces needed to build more complex components »Provide standard functionality  instantiation, configuration, lifetime management, etc  Users (framework developers) should model their services using these proposed base classes  SEAL provide in addition a set of basic services implemented following the component model

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN12 SEAL Component Model  Hierarchy of bases classes –Components living in a Context –Services are Components providing their local Context  User classes inherit from Component or Services –Plug-in functionality for free Context Application C1 C2 Component Svc2 C1C6C1C7 Svc1 C1C3C1C4C1C5 Svc1 Service C1C7

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN13 Basic Common Framework Services  Application Service –Defines the top level Context –Defines initial set of Components to be loaded in the application  Message Service –Message composition, filtering and reporting  Configuration Service –Management of Component properties and loading configurations –Multiple backends foreseen: »Gaudi style options,.INI style, CMS style, XML,...  Other services will come later: –Object Whiteboard (Transient Object repository) –Dictionary Service (Loading Dictionaries in the application)

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN14 Scripting Services  Scripting needed for Interactivity, Configuration, Rapid prototyping, Integration (Component bus), etc.  Main scripting language : –Python  Define guidelines for developing Python bindings : –Various tools available (Boost.Python, SWIG) –Recommend solutions: »Boost.Python »LCG Dictionary GUI Python math shell PyGaudi Database EDG API GUI XML Gaudi Frame work PyROOT Root Classes PVSS JPE Java Classes

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN15 Scripting Packages  PyLCGDict –Python extension module to the LCG dictionary –Provide access to C++ libraries from Python, “for free” –Automatically generates Python proxies for C++ objects using dictionary information »Everyone can create binding effortlessly  PyROOT –Python bindings for ROOT classes »access to ROOT functionality from Python –Binding using the ROOT dictionary (CINT) –Missing gateway ROOT -> Python

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN16 Education/Documentation  Produce documentation –Reference documentation (generated with doxygen) –HowTo pages for the released elements »Plugin Manager, Dictionary generation, PyROOT, PyLCGDict, etc. –Release notes  Training material (tutorials) –Help developers incorporating SEAL into the LCG projects and the experiment frameworks  Python courses –Hands-on introduction course to Python programming –Very positive feedback received

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN17 Software Process and QA  Design –Team design sessions –Prototypes using Pythons  Code Review –No formal code reviews –Coding done very often in pairs (XP style) –More than one developer knowledgeable for each package  Testing –More than 200 SEAL unit tests based on CppUnit –All are driven and run automatically by QmTest  Bug reporting and tracking –Savannah Portal ( (

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN18 Future plans (1)  Foundation libraries (Plug-in Manager) –Follow Boost developments –Little development planned in SEAL (hash-maps)  MathLibs: –Produce inventory of mathematical functions –Evolve Minuit C++ into a final product –Linear Algebra studies –Generate dictionary library for Python and CINT  Dictionary: –Implementation of new reflection model »Overcome some existing limitations (typedef,…) –Converge to a common dictionary with CINT ?

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN19 Future plans (2)  Framework: –Develop Whiteboard (object repository) and Dictionary service (loading of dictionary libraries on-demand)  Scripting : –PYLCGDict: »Migrate much of functional core from C++ to Python »Support more natural Python features (eg iterator protocol) –PyROOT: »Unify core with PyLCGDict »Develop gateway ROOT -> Python  Grid : –New LCG project (ARDA) is starting –Expect need to interface to some of the ARDA services  Documentation: –Produce tutorials for foundation classes, Boost, etc..

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN20 Summary  SEAL has delivered basic foundation, utility libraries and object dictionary –The main “client” have been POOL (persistency project) and PI »Plug-in manager is also used in CMS –Very positive feedback received for plug-in manager –Currently being integrated into experiments’ frameworks of LHCB (Gaudi) and ATLAS (ATHENA)  The first version of the Component Model and Framework services is available –Start integrating in POOL and the LHC experiments –Wait for feedback before developing more services  Scripting based on Python –Boost.Python and PyLCGDict recommended for Python bindings –PyLCGDict is used to provide bindings for classes of Physics Interfaces (PI) project

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN21 Acknowledgments: Seal team members: R. Chytracek, J. Generowicz, W. Lavrijsen, M. Marino, P. Mato, S. Roiser, L. Tuura, M. Winkler Conclusions

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN22 Additional Slides

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN23 LCG Application Domain Coverage

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN24 Module Library PluginManager PluginFactoryBase PluginFactory T PluginInfo XXXFactoryXXXInfo ModuleModuleDef ModuleBase MyModuleDef * * PluginCache Client * Plug-in Manager Design  Originated from CMS Iguana

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN25 PropertyListItem MethodField ItemBuilder MethodBuilderFieldBuilderClassBuilder NamespaceBuilder Reflection ReflectionBuilder ClassNamespace Reflection System  Reflection Builder: the loading interface  Reflection : the user API

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN26 LCG Object Dictionary: Usage ROOT I/O LCG Dictionary CINT Dict Streamer.h in out ROOTCINT CINT generated code Dict generating code.adl.xml ADL/GOD Other Clients: (python, GUI, etc.) LCG to CINTDict gateway (2) (1) Population Conversion Reflection GCC-XML

ACAT03, 1-5 Dec. 2003SEAL Project OverviewL. Moneta / CERN27 Seal Component Model  Hierarchy of bases classes  Each Component lives in a Context  Contexts form their own hierarchy  Support for component look-up  A Service provides its own local Context –Components of a Service live in the scope defined by its own Context  User classes inherit from Component or Service –Plug-in functionality for free Component Service MyComponentMyService Context * * 1 Component Factory Component Loader 1