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

Similar documents
INTRODUCTION TO THE ANAPHE/LHC++ SOFTWARE SUITE

Packages. LASER Summer School on Software Engineering 2013, Elba Island, Italy Pere Mato/CERN. Lecture 3. Monday, September 9, 13

A Prototype of the CMS Object Oriented Reconstruction and Analysis Framework for the Beam Test Data

Introduction to Geant4

Geant4 activities at DESY

Hall D and IT. at Internal Review of IT in the 12 GeV Era. Mark M. Ito. May 20, Hall D. Hall D and IT. M. Ito. Introduction.

Gamma-ray Large Area Space Telescope. Work Breakdown Structure

CLAS 12 Reconstruction Software

Deferred High Level Trigger in LHCb: A Boost to CPU Resource Utilization

The LHCb Alignment Framework

Virtualizing a Batch. University Grid Center

Geant4 in a Distributed Computing Environment

A Geometrical Modeller for HEP

Data and Analysis preservation in LHCb

Overview of HEP software & LCG from the openlab perspective

LCG Conditions Database Project

Summary of the LHC Computing Review

CMS Simulation Software

Experience with Data-flow, DQM and Analysis of TIF Data

Suez: Job Control and User Interface for CLEO III

Frank Gaede, DESY, SLAC Simulation Meeting March 16/ Persistency and Data Model for ILC Software

DQM4HEP - A Generic Online Monitor for Particle Physics Experiments

Monitoring of Computing Resource Use of Active Software Releases at ATLAS

CMS event display and data quality monitoring at LHC start-up

Frank Gaede, DESY, LCWS 2005, Stanford, CA March Overview of Simulation and Reconstruction Tools in Europe

LHCb Computing Strategy

where the Web was born Experience of Adding New Architectures to the LCG Production Environment

LHCb Computing Technical Design Report

Database code in PL-SQL PL-SQL was used for the database code. It is ready to use on any Oracle platform, running under Linux, Windows or Solaris.

LHCb Distributed Conditions Database

Smallworld Core Spatial Technology 4 Smallworld MAGIK : The object oriented language for an object oriented world

BOSS and LHC computing using CernVM and BOINC

Cloud solution consultant

CLAS12 Software Organization and Documentation

Bristol t e Exeter t e

ATLAS NOTE. December 4, ATLAS offline reconstruction timing improvements for run-2. The ATLAS Collaboration. Abstract

Cloud solution consultant

L1 and Subsequent Triggers

CouchDB-based system for data management in a Grid environment Implementation and Experience

XBS Application Development Platform

TOPLink for WebLogic. Whitepaper. The Challenge: The Solution:

Histograms And N-tuples

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

Offline Tutorial I. Małgorzata Janik Łukasz Graczykowski. Warsaw University of Technology

LAr Event Reconstruction with the PANDORA Software Development Kit

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

CREATE 2 Control Room Engineering Advanced Toolkit Environment

Andrea Sciabà CERN, Switzerland

LHCb Computing Resources: 2018 requests and preview of 2019 requests

Software Engineering Chap.7 - Design and Implementation

1. Introduction. Outline

Simulation and data reconstruction framework slic & lcsim. Norman Graf, Jeremy McCormick SLAC HPS Collaboration Meeting May 27, 2011

Trivial Data Analysis for Geant4 Geant4 v9.3p01

MATLAB-Based Policy Simulator

Large Scale Software Building with CMake in ATLAS

BRUNEL. User Guide. LHCb Reconstruction Program. Corresponding to Brunel version v9r1. Issue: 0 Date: 20 March 2002

ITIL Service Lifecycle Strategy

Overview of LHCb applications and software environment. Bologna Tutorial, June 2006

Migration to Service Oriented Architecture Using Web Services Whitepaper

Performance quality monitoring system (PQM) for the Daya Bay experiment

ALICE Simulation Architecture

Servicing HEP experiments with a complete set of ready integreated and configured common software components

Using Java for Scientific Computing. Mark Bul EPCC, University of Edinburgh

BRUNEL LHCb Reconstruction Program. User Guide Corresponding to Brunel version v9r1. Version: 9.1 Issue: 0 Date: 20 March 2002

HP Universal CMDB. Software Version: DDMI to Universal Discovery Migration Walkthrough Guide

1 Introduction. V. Fine, Y. l%yak,?? Perevoztchikov, T.Wenaus

Ch 1: The Architecture Business Cycle

Getting Started with GEM

Vision Document for Multi-Agent Research Tool (MART)

Geant4 v9.5. Kernel III. Makoto Asai (SLAC) Geant4 Tutorial Course

Understanding the Open Source Development Model. » The Linux Foundation. November 2011

A better Connection for The Perth Convention Exhibition Centre

The full detector simulation for the ATLAS experiment: status and outlook

LEGACY SYSTEMS MODERNIZATION SERVICES.

User Guide Corresponding to Brunel versions v5r2, v6r1, v7r1

QuickPivot s Interact Coordinated, Dynamic Messaging

THE GEANT4 EXPERIENCE - THE OBJECT ORIENTED DESIGN AND PRODUCTION OF A LARGE PROGRAM

DD4hep-Based Reconstruction. N. Nikiforou, CERN/PH-LCD On behalf of the CLICdp Collaboration and the Linear Collider DD4hep WG

6SigmaRoom R8 What s New

NLC Controls Software R & D Project

OpenVMS migration to i4 and beyond

Final Paper. Automation in Agile Testing. Vijay Kumar - Senior Software Engineer - Testing CenturyLink Technologies

Oliopäivät Modelling Now and in the Future, with Acronyms or without = RSA

Updated tablets allow customers to connect with regional financial institutions

5HTXLUHPHQWVIRUWKH/+&E&RQWUROV

KLOE software on Linux

Best practices for OO 10 content structuring

SMART Guidance for Notes Migrations

Rational Software White paper

SDK USE CASES Topic of the Month FusionBanking Loan IQ

CSE 333 Lecture 1 - Systems programming

Architectural Styles I

Are you Really Helped by Upstream Kernel Code?

LHCb Computing Status. Andrei Tsaregorodtsev CPPM

GEOMETRY DATABASE FOR THE CBM EXPERIMENT AND ITS FIRST APPLICATION TO THE EXPERIMENTS OF THE NICA PROJECT

RELEASE OF GANGA. Basics and organisation What Ganga should do tomorrow Ganga design What Ganga will do today Next steps

Modellistica Medica. Maria Grazia Pia INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

GAUDI Detector Data Model

Atlantis event display tutorial

Implementing a Web Service p. 110 Implementing a Web Service Client p. 114 Summary p. 117 Introduction to Entity Beans p. 119 Persistence Concepts p.

Transcription:

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

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

Software Structure Applications implementing the physics algorithms. One main framework: GAUDI. Triggers Reconstruction Simulation Analysis 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 3

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 4

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 5

Principal design choices Separation between data data and algorithms 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 transient and persistent 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 6

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

Principal design choices (2) Data store -centred ( blackboard 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 interfaces, as generic generic as possible. Stable, shield clients from the (changing) implementation In C++, pure abstract class Marco Cattaneo, 7th February 2000 LHCb - GAUDI 8

Interfaces ApplicationManager ISvcLocator Each component implements one or more interfaces Each component uses one or more interfaces of other components An Algorithm uses many s EventData DetectorData Histogram Message IDataProviderSvc IDataProviderSvc IHistogramSvc IMessageSvc IAlgorithm IProperty ConcreteAlgorithm ObjectA ObjectB ParticlePropertySvc IParticlePropertySvc Marco Cattaneo, 7th February 2000 LHCb - GAUDI 9

Algorithms Physical view Logical view Data T1 Data T1 Data T2, T3 Algorithm A A Parent Data T2 Data T3 Transient data store Data T2 Data T4 Algorithm B C B Data T4 Data T3, T4 Data T5 Algorithm C 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 Marco execution Cattaneo, order 7th February of the sub-algorithms 2000 LHCb is - GAUDI the responsibility of the parent algorithm. 10

s 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... I IProperty Particle Prop. Algorithm Algorithm PP File IParticlePropertySvc Marco Cattaneo, 7th February 2000 LHCb - GAUDI 11

Event Data Store (See Markus Frank s talk, C153) Fetch() Store() Persistency retrieveobject( EcalDigits(3),...) Event Data registerobject( key,...) creates Direct reference Algorithm Transient Event Store 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 12

Persistency (See Markus Frank s talk, C153) ZebraCnvSvc Event Data Persistency Converter Converter Converter Zebra FZ Zebra data Files RootCnvSvc Algorithm Algorithm Transient Event Store Converter Converter Converter Root I/O Root data Files 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 13

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

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

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

Platforms: WNT, Linux, IBM AIX, HP-UX Tools and Libraries: Implementation (see Florence Ranjard's talk, F151) Design tools Coding rules Code Management Configuration Management Problem tracking Compilers/Debuggers Libraries Documentation Source code documentation Visual Thought, Rational Rose Interim LHCb coding conventions CVS CMT Plan to use Remedy Visual C++, GNU EGCS, ddd STL, CLHEP, NAG C, HTL, RIO FrameMaker, Visual Source Safe Object Outline Marco Cattaneo, 7th February 2000 LHCb - GAUDI 17

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

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 lhcb.cern.ch/computing/components/html/ /computing/components/html/gaudimain.html Marco Cattaneo, 7th February 2000 LHCb - GAUDI 19

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

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 21

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 22