1 GAUDI - The Software Architecture and Framework for building LHCb data processing applications 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.
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)
Marco Cattaneo, 23rd February Status of the software migration  Migration strategy: Where we should be  Status: Where we are  Plans.
Gaudi Framework Tutorial, April Introduction.
Ianna Gaponenko, Northeastern University, Boston The CMS IGUANA Project1 George Alverson, Ianna Gaponenko, and Lucas Taylor Northeastern University, Boston.
REVIEW OF NA61 SOFTWRE UPGRADE PROPOSAL. Mandate The NA61 experiment is contemplating to rewrite its fortran software in modern technology and are requesting.
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.
5 November 2001F Harris GridPP Edinburgh 1 WP8 status for validating Testbed1 and middleware F Harris(LHCb/Oxford)
3 Sept 2001F HARRIS CHEP, Beijing 1 Moving the LHCb Monte Carlo production system to the GRID D.Galli,U.Marconi,V.Vagnoni INFN Bologna N Brook Bristol.
Nick Brook Current status Future Collaboration Plans Future UK plans.
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.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
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.
19 November 98 1 Jürgen Knobloch ATLAS Computing ATLAS Computing - issues for 1999 Jürgen Knobloch Slides also on:
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?
- Early Adopters (09mar00) May 2000 Prototype Framework Early Adopters Craig E. Tull HCG/NERSC/LBNL ATLAS Arch CERN March 9, 2000.
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.
Ianna Gaponenko, Northeastern University, Boston The CMS IGUANA Project1 George Alverson, Ianna Gaponenko and Lucas Taylor Northeastern University, Boston.
Overview Methodology Design Architecture Outline of future work Ideas for discussion.
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.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
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.
CMS High Level Trigger Configuration Management
Moving the LHCb Monte Carlo production system to the GRID
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.
Marco Cattaneo, CERN February 2000
SW Architecture SG meeting 22 July 1999 P. Mato, CERN
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Data Persistency Solution for LHCb
Detector Description in LHCb
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
LHCb Computing Project Organisation Manage Steering Group
Major Design Criteria Clear separation between “data” and “algorithms”
What’s new in version 4 of GAUDI
Summary Computing Model SICb Event Model Detector Description
Introduction to Gaudi Schedule: Timing Topic 20 minutes Lecture
Use Of GAUDI framework in Online Environment
Development of LHCb Computing Model F Harris
Planning next release of GAUDI
LHCb Detector Description Framework Radovan Chytracek CERN Switzerland
Presentation transcript:

1 GAUDI - The Software Architecture and Framework for building LHCb data processing applications Marco Cattaneo, CERN February 2000

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

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

Marco Cattaneo, 7th February 2000LHCb - GAUDI4 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 2000LHCb - GAUDI5 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 2000LHCb - GAUDI6 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 2000LHCb - GAUDI GAUDI object diagram Converter Algorithm Event Data Service Persistency Service Data Files Algorithm Transient Event Store Detec. Data Service Persistency Service Data Files Transient Detector Store Message Service JobOptions Service Particle Prop. Service Other Services Histogram Service Persistency Service Data Files Transient Histogram Store Application Manager Converter

Marco Cattaneo, 7th February 2000LHCb - GAUDI8 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 2000LHCb - GAUDI9 Interfaces ConcreteAlgorithm EventDataService IDataProviderSvc IHistogramSvc IMessageSvc IAlgorithm IProperty ObjectAObjectB Each component implements one or more interfaces Each component uses one or more interfaces of other components An Algorithm uses many Services DetectorDataService HistogramService MessageService ParticlePropertySvc IParticlePropertySvc ApplicationManager ISvcLocator

Marco Cattaneo, 7th February 2000LHCb - GAUDI10 Transient data store Algorithms Algorithm A Algorithm B Algorithm C Data T1 Data T2, T3 Data T2 Data T3, T4 Data T4 Data T5 Logical view 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. A C B Parent Data T1 Data T2 Data T4 Data T3 Data T5 Physical view

Marco Cattaneo, 7th February 2000LHCb - GAUDI11 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... Particle Prop. Service Algorithm PP File IService IParticlePropertySvc IProperty

Marco Cattaneo, 7th February 2000LHCb - GAUDI12 Event Data Store (See Markus Frank’s talk, C153) Event Data Service Persistency Service Algorithm retrieveObject( “EcalDigits(3)”,...) registerObject( “key”,...) Direct reference Fetch() Store() 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. Transient Event Store

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

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

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

Marco Cattaneo, 7th February 2000LHCb - GAUDI16 Package group Package dependency optional 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 Packages Gaudi (foundations) LHCbEvent (event model) HbookCnv (converters) SicbCnv (converters) RootCnv (converters) Applications LHCbAlg (algorithms) DetDesc (detect. model) DetCnv (converters) Futio (ZEBRA) RIO CernLib CLHEP STL GAUDI Framework

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

18 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.

Marco Cattaneo, 7th February 2000LHCb - GAUDI19 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

20 Software Project Organisation Support Facilities CPU farms Desktop Storage Network System Man. Vendors IT-API.. Vendors IT-SD Vendors, IT-API Support Software SDE Process Quality Librarian Training Webmaster MM Build Frameworks Architecture, Components, Integration technology, Libraries and toolkits A Reconstruction M Simulation M Analysis M Controls M Control Room M Assemble DAQ M Steering Group MM C Technical Review EM A... Arch. Review MA E... M A C E Coordinator Architect Project Manager Project Engineer

21 Project history  Sep ‘98 - architect appointed, design team (6 people) constituted  Nov 25 ‘98 - external architecture review objectives, architecture design document, URD, scenarios  Feb 8 ‘99 - first GAUDI release first software week, presentations, tutorials plan second release (together with users) expand GAUDI team  May 30 ‘99 - second GAUDI release second software week, plan third release with users, expand team.  Nov 23 ‘99 - third GAUDI release and software week plan deployment for production applications  Spring ‘00 - second external review

22 Migration Strategy  Objective: all applications exclusively in OO  Transition phase Incorporate existing reconstruction and analysis programs in GAUDI (wrap FORTRAN) Split existing program into independent algorithms Develop an OO event model, write converters to populate it from the FORTRAN banks Incorporate new OO algorithms developed exclusively in GAUDI e.g. Tracking pattern recognition Write converters to make the results available to the FORTRAN world  Many converters in both directions, COMMON blocks etc.  Hybrid phase C++ and FORTRAN coexist in a single reconstruction program ; Two detector descriptions, two cards files, doubled memory use, which output format? Gradually replace FORTRAN