Marco Cattaneo, CERN February 2000

Slides:



Advertisements
Similar presentations
6/4/20151 Introduction LHCb experiment. LHCb experiment. Common schema of the LHCb computing organisation. Common schema of the LHCb computing organisation.
Advertisements

15 March, 2000LHCb Computing1 Software Review Panel LHCb Answers to Architecture, Data Model and Program Infrastructure Pere Mato for the LHCb Collaboration.
Introduction To System Analysis and Design
25/03/2003Simulation Application for the LHCb Experiment CHEP March 2003 Presented by: W. Pokorski / CERN Authors: I. Belyaev, Ph. Charpentier,
UML - Development Process 1 Software Development Process Using UML (2)
Gaudi Framework Tutorial, April Introduction.
RUP Implementation and Testing
M.Frank LHCb/CERN - In behalf of the LHCb GAUDI team Data Persistency Solution for LHCb ã Motivation ã Data access ã Generic model ã Experience & Conclusions.
Conditions DB in LHCb LCG Conditions DB Workshop 8-9 December 2003 P. Mato / CERN.
Introduction To System Analysis and Design
1 GAUDI - The Software Architecture and Framework for building LHCb data processing applications Marco Cattaneo, CERN February 2000.
5 May 98 1 Jürgen Knobloch Computing Planning for ATLAS ATLAS Software Week 5 May 1998 Jürgen Knobloch Slides also on:
ALICE Simulation Framework Ivana Hrivnacova 1 and Andreas Morsch 2 1 NPI ASCR, Rez, Czech Republic 2 CERN, Geneva, Switzerland For the ALICE Collaboration.
1 Planning for Reuse (based on some ideas currently being discussed in LHCb ) m Obstacles to reuse m Process for reuse m Project organisation for reuse.
LHCb Computing Organisation and Development Strategy Presented to ATLAS Architecture WG July 16th, 1999 J.Harvey / LHCb.
MINER A Software The Goals Software being developed have to be portable maintainable over the expected lifetime of the experiment extensible accessible.
Introduction to Gaudi LHCb software tutorial - September
Subject Slide 1 Roundtable on Software Process Input from LHCb.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
GDB Meeting - 10 June 2003 ATLAS Offline Software David R. Quarrie Lawrence Berkeley National Laboratory
Marco Cattaneo, 15-Sep OO software plans  Major milestone (presented last June) Fully functional SICB replacement by mid-2000  How to get there?
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
GLAST LAT Offline SoftwareCore review, Jan. 17, 2001 Review of the “Core” software: Introduction Environment: THB, Thomas, Ian, Heather Geometry: Joanne.
Detector Description in LHCb Detector Description Workshop 13 June 2002 S. Ponce, P. Mato / CERN.
1 SICBDST and Brunel Migration status and plans. 2 Migration Step 1: SICBMC/SICBDST split  Last LHCb week: Split done but not tested  Software week.
Computing R&D and Milestones LHCb Plenary June 18th, 1998 These slides are on WWW at:
23/2/2000Status of GAUDI 1 P. Mato / CERN Computing meeting, LHCb Week 23 February 2000.
10/2/2000LHCb Computing, CHEP Use of Configuration Management tool in LHCb software J. Harvey, P. Mato, F. Ranjard CERN (Switzerland)
General requirements for BES III offline & EF selection software Weidong Li.
CERN Tutorial, February Introduction to Gaudi.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Marco Cattaneo, 6-Apr Issues identified in sub-detector OO software reviews Calorimeters:18th February Tracking:24th March Rich:31st March.
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
VI/ CERN Dec 4 CMS Software Architecture vs Hybrid Store Vincenzo Innocente CMS Week CERN, Dec
Marco Cattaneo, 3-June Event Reconstruction for LHCb  What is the scope of the project?  What are the goals (short+medium term)?  How do we organise.
Marco Cattaneo, 20-May Event Reconstruction for LHCb  What is the scope of the project?  What are the goals (short+medium term)?  How do we organise.
LHCb Software Week 25/11/99 Gonzalo Gracia Abril 1 r Status of Geant4 in LHCb. r Ideas on how to populate the LHCb Detector Description Data Base (LHCb.
Process 4 Hours.
Architectural Styles of HEP Experiments
Migration of reconstruction and analysis software to C++
LHC-B Computing Computing Tasks Computing Model Software Strategy
The LHCb Software and Computing NSS/IEEE workshop Ph. Charpentier, CERN B00le.
Introduction to Gaudi LHCb software tutorial - December 2010.
Service-centric Software Engineering
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
Software Architecture
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Data Persistency Solution for LHCb
Detector Description in LHCb
Chapter 5 Architectural Design.
What’s new in version 5 of GAUDI
GAUSS - GEANT4 based simulation for LHCb
Simulation and Physics
Geant4 in HARP V.Ivanchenko For the HARP Collaboration
Strategy for development of new software
Major Design Criteria Clear separation between “data” and “algorithms”
Chapter 5 Architectural Design.
Design Yaodong Bi.
Discussion on managing the coexistence of CDF and XML geometry files
What’s new in version 4 of GAUDI
Detector Geometry Description
Summary Computing Model SICb Event Model Detector Description
Use of GEANT4 in CMS The OSCAR Project
Andrea Valassi Pere Mato
Introduction to Gaudi Schedule: Timing Topic 20 minutes Lecture
Use Of GAUDI framework in Online Environment
Planning next release of GAUDI
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Presentation transcript:

Marco Cattaneo, CERN February 2000 GAUDI - The Software Architecture and Framework for building LHCb data processing applications Marco Cattaneo, CERN February 2000 The following are few slides intended to trigger a discussion/brainstorming with the goal of producing an Architecture for the DCS kernel. Definition on Architecture: “The architecture of a system is the structure of the system”. Two main ingredients: A set of building blocks, and a set of collaborations that specify how those building blocks cooperate to provide various system functions. An DCS architecture will allow us to provide set of control applications or control systems that fulfill a range of needs within the DCS domain. An architecture encourages reuse. Analogies in the real world: Gothic architecture, Lego Basic® architecture, Lego Technique® architecture. “To be successful, an object-oriented project must craft an architecture that is both coherent and resilient and then must propagate and evolve the vision of this architecture to the entire development team”, G. Booch, Object Solutions.

Outline Introduction Design choices GAUDI Architecture overview Status Conclusions Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Software Structure Applications implementing the physics algorithms. Triggers Reconstruction Simulation Analysis One main framework: GAUDI. Various specialised frameworks: visualisation, persistency, interactivity, simulation (Geant4), etc. Frameworks Toolkits Basic libraries: STL, CLHEP, etc. (Vocabulary) Foundation Libraries Marco Cattaneo, 7th February 2000 LHCb - GAUDI

GAUDI project goals Develop an Architecture and a Framework to be used at all stages of LHCb data analysis Trigger levels 2 and 3, simulation, reconstruction, analysis Avoid fragmentation and duplication of computing effort Single development team across online and offline domains Identify common components, re-use Give users (physicists) a framework within which to develop applications Rapid transition away from FORTRAN to minimise legacy code A single framework used by all members of the collaboration Transparent use of third-party components wherever possible or necessary GUI, persistency, simulation.... Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Software development strategy Start with small design team of 6-8 people architect, librarian, domain specialists with design/programming experience Collect User Requirements and use-cases Establish basic criteria for the overall design Make technology choices for implementation of initial prototypes Incremental approach to development. Release every ~4 months. Releases accompanied by complete documentation Development cycle driven by the users: priorities, feedback, etc. Strategic decisions after thorough design review (~1/year) Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Principal design choices Separation between “data” and “algorithms” Data objects primarily carry data, have only basic methods e.g. Tracking hits Algorithm objects primarily manipulate data e.g. Track fitter Three basic categories of data: “event data” (obtained from particle collisions, real or simulated) “detector data” (structure, geometry, calibration, alignment, ....) “statistical data” (histograms, ....) Separation between “transient” and “persistent” data. Isolate user code from persistency technology . Different optimisation criteria. Transient as a bridge between independent representations. Marco Cattaneo, 7th February 2000 LHCb - GAUDI

GAUDI object diagram Converter Application Manager Converter Converter Transient Event Store Data Files Message Service Persistency Service Event Data Service JobOptions Service Algorithm Algorithm Algorithm Data Files Transient Detector Store Particle Prop. Service Persistency Service Detec. Data Service Other Services Data Files Transient Histogram Store Persistency Service Histogram Service Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Principal design choices (2) Data store -centred (“blackboard”) architectural style. Algorithms as producers and consumers of data objects Minimal coupling between algorithms, allows independent development. “User code” encapsulated in a few specific places: “Algorithms”: physics code “Converters”: convert data objects between representations Well defined component “interfaces”, as “generic” as possible. Stable, shield clients from the (changing) implementation In C++, pure abstract class Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Interfaces Each component implements one or more interfaces ISvcLocator ApplicationManager IDataProviderSvc IAlgorithm IProperty Each component implements one or more interfaces Each component uses one or more interfaces of other components An Algorithm uses many Services EventDataService ConcreteAlgorithm IDataProviderSvc DetectorDataService IHistogramSvc HistogramService MessageService IMessageSvc ObjectA ObjectB ParticlePropertySvc IParticlePropertySvc Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Algorithms Algorithm A A Transient data store B Algorithm B C Data T1 Physical view Logical view Parent Data T1 Algorithm A A Transient data store Data T2, T3 Data T2 Data T3 B Data T2 Algorithm B Data T4 C Data T4 Data T3, T4 Algorithm C Data T5 Data T5 An Algorithm knows only which data (type and name) it uses as input and produces as output. The only coupling between algorithms is via the data. The execution order of the sub-algorithms is the responsibility of the parent algorithm. Marco Cattaneo, 7th February 2000 LHCb - GAUDI

IParticlePropertySvc Services Various services are provided to algorithms Examples: Job Options service (configuration “card” files) Message reporting service Event/Detector/Histogram data service Event Selector Persistency and Conversion services User Interface (GUI) Particle property service ... IService IProperty PP File Particle Prop. Service IParticlePropertySvc Algorithm Algorithm Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Event Data Store (See Markus Frank’s talk, C153) retrieveObject( “EcalDigits(3)”,...) Fetch() Store() Transient Event Store Event Data Service registerObject( “key”,...) Persistency Service Algorithm Direct reference creates Stores objects that can be used by other objects (services, algorithms). Retrieve objects if necessary Tree structure (file system) Identification by logical address (“/Event/RawEvent/Ecal”) Owns the objects and is responsible for their clean-up. Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Persistency (See Markus Frank’s talk, C153) ZebraCnvSvc Transient Event Store Zebra data Files Zebra FZ Event Data Service Converter Converter Converter Persistency Service RootCnvSvc Algorithm Root data Files Algorithm Root I/O Converter Converter Converter Various technologies available in the same program: Objy, Root, Zebra,… Converters transform objects from one representation to another. Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Detector Description (See Radovan Chytracek’s talk, A155) Editors Detector Data Producers Editors Data Processing Application Algorithms Algorithms Transient detector store Persistent Detector Description (DDDB) Projection view: version & event time Geom Geom DetElem Geom DetElem DetElem DetElem Calib Geom Calib Slow DetElem DetElem Geom DetElem DetElem DetElem DetElem Slow DetElem DetElem Conversion services Conversion services Update persistency Other representations Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Visualisation User Interface Representations Conversion Store Service (graphical, textual) Conversion Service Converter Converter Converter Converter Transient Data Store Data Item Selector User Interface Selects objects in store Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Packages Sub-division into packages is an architectural problem. Gaudi (foundations) LHCbEvent (event model) HbookCnv (converters) SicbCnv RootCnv Applications LHCbAlg (algorithms) DetDesc (detect. model) DetCnv Futio (ZEBRA) RIO CernLib CLHEP STL GAUDI Framework Sub-division into packages is an architectural problem. Important consequences for: compilation time link dependencies configuration management executable size ... Dependencies between packages must be approved by the architect Avoid circular dependencies Package group Package dependency optional Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Implementation (see Florence Ranjard's talk, F151) Platforms: WNT, Linux, IBM AIX, HP-UX Tools and Libraries: Marco Cattaneo, 7th February 2000 LHCb - GAUDI

Work in progress: Integration of GEANT4 Visualisation, event display Algorithms and tools for data analysis Java evaluation Collaboration with AIDA (see Andreas Pfeiffer’s presentation, F82) Definition of interfaces Ongoing discussions with other experiments Deployment for physics applications: migration of reconstruction test beam analysis tracking, RICH pattern recognition ECAL geometry etc.

Conclusions We believe it is fundamental to define an architecture And to provide a framework which implements the architecture Ensures adaptability, maintainability and resilience against change. GAUDI is the LHCb architecture and framework Physicists have started to enjoy the pain! Many new development activities entirely within Gaudi Ongoing migration of existing code to Gaudi framework We welcome advice, criticism, collaboration http://lhcb.cern.ch/computing/Components/html/GaudiMain.html Marco Cattaneo, 7th February 2000 LHCb - GAUDI