GAUDI - Architettura e
framework di LHCb
Marco Cattaneo, CERN
Ottobre 1999
19 ottobre 1999
LHCb - GAUDI
1
Riassunto

Introduzione
– L’esperimento LHCb
– Organizzazione del progetto di Calcolo
– Strategia per lo sviluppo del software

Architettura GAUDI
– Scopo e obiettivi
– Scelte del design
– Qualche dettaglio

Implementazione
– Scelte tecnologiche, Tools, ...
– Stato del progetto e piani per il futuro
19 ottobre 1999
LHCb - GAUDI
2
LHCb: L’Esperimento

LHCb é un esperimento all’LHC dedicato a misure con grande
precisione della violazione di CP nel decadimento di Bd e Bs

LHC é uno strumento ideale per produrre grandi quantità di Bd e Bs

Tutti i canali interessanti sono rari, con branching ratios intorno a 10-5.
19 ottobre 1999
LHCb - GAUDI
3
LHCb: Il Rivelatore
19 ottobre 1999
LHCb - GAUDI
4
LHCb in cifre






Collaborazione: ~45 istituti, ~350 persone
Costo: 86 MCHF
Electronica: ~106 canali
Trigger: 4 Livelli. 40 MHz1 MHz 40 kHz  5 kHz 200 Hz
Acquisizione Dati: 100 kB/evento. 2-4 GB/s 20 MB/s. 1.5 106 MIPs
Stato attuale:
– Technical proposal in febbraio 1998
– Approvato in settembre 1998
– Fase R&D per ~2 anni (TDRs nel 2000-2001)
19 ottobre 1999
LHCb - GAUDI
5
Organizzazione del Progetto di
Calcolo
Steering Group
M M C ...
Arch. Review
M A E ...
Technical Review
E M A ...
C
Coordinator
A
Architect
M
Project Manager
E
Project Engineer
Assemble
Support
M
Facilities
CPU farms
Desktop
Storage
Network
System Man.
M
M
Reconstruction
DAQ
M
M
Simulation
Controls
M
M
Analysis
Control Room
A
Frameworks
Architecture, Components,
Integration technology,
Libraries and toolkits
Vendors
IT-PDP
19 ottobre 1999
Vendors, IT-ASD
Support
Build
M
Software
SDE
Process
Quality
Librarian
Training
Webmaster
Vendors
IT-IPT
..
6
Strategia di sviluppo per il nuovo
software

Fase di design con una piccola squadra di 6-8 persone
– architetto, amministratore delle librerie, specialisti dei domini con esperienza
di design e/o programmazione








Stabilire i criteri di base per il design globale
Raccogliere User Requirements e scenari, per convalidare il design
Fare scelte tecnologiche per implementare i primi prototipi
Approccio incrementale allo sviluppo. Release ogni ~4 mesi.
Ciclo di sviluppo guidato dagli utenti. Priorità, feedback, etc.
Design Review completa (~1/anno) seguita da decisioni strategiche
Release accompagnati da documentazione completa
Allargare squadra di sviluppo per coprire nuovi domini
19 ottobre 1999
LHCb - GAUDI
7
Architettura GAUDI

Vogliamo sviluppare una Architettura e un Framework da usarsi a
tutti gli stadi dell’analisi dei dati di LHCb
– Trigger livelli 2 e 3, simulazione, ricostruzione, analisi
– Le applicazioni di controllo (slow control, run control) non sono comprese

Gli utenti (i fisici) svilupperanno le applicazioni personalizzando il
framework;
– ereditando dalle base classes
– usando i componenti del framework
– attraverso parametri di configurazione

I componenti saranno sviluppate anche usando altri frameworks
specializzati (GUI, persistenza, simulazione, . . . )
19 ottobre 1999
LHCb - GAUDI
8
Una serie di Frameworks e di Toolkits.
Un framework principale: GAUDI, vari
frameworks specializzati:
visualizzazione, persistenza,
interattività, simulazione (Geant4), etc.
Una serie di librerie di base: STL,
CLHEP, etc. (Vocabolario)
19 ottobre 1999
Analisi
Simulazione
Ricostruzione
Una serie di applicazioni costruite sopra
i frameworks, che implementano gli
algoritmi di fisica.
Triggers
Struttura del Software
Frameworks
Toolkits
Foundation Libraries
LHCb - GAUDI
9
Principali criteri del design


Separazione tra “dati” e “algoritmi”
Tre tipi di dati:
– “event data” (dati ottenuti dalle collisioni delle particelle - vere o simulate)
– “detector data” (struttura, geometria, calibrazioni, allineamenti, parametri
ambientali,..)
– “statistical data” (istogrammi, …)

Separazione tra dati “persistenti” e dati “transienti”.
– Isolamento del codice degli utenti dalla tecnologia di persistenza
– Criteri di ottimizzazione diversi e/o incompatibili.
– Transiente come ponte tra diverse rappresentazioni.
19 ottobre 1999
LHCb - GAUDI
10
Principali criteri del design (2)

I dati (“data stores”) al centro dell’architettura.
– “Algoritmi” come produttori e consumatori di “data objects”
– Accoppiamenti minimi tra algoritmi

“User code” incapsulato in pochi luoghi specifici:
– “Algoritmi”: Codice di fisica
– “Convertitori”: Convertono data objects da una rappresentazione a un’altra

Ogni componente ha una o più “interfaccie” ben definite, le più
“generiche” possibili.
» In C++, pure abstract class
19 ottobre 1999
LHCb - GAUDI
11
Object diagram
JobOptionsSvc
AppManager
MessageSvc
PObj
PObj
PObj
AlgFactory
EventSelector
Algorithm1
Algorithm1
Algorithm1
EventDataSvc
PersistencySvc
PObject
PObject
PDetElem
DetDataSrv
Obj1
TObj1
TObjContainer
TObjContainer
ObjContainer
DetPerstySvc
Converter
Converter
Converter
TDetElem1
TDetElem1
TDetElem1
Obj3
AnotherPercySvc
Alg
Properties
TObj
TObj
Obj2
TObj
TObj
Obj1
Converter
Converter
Converter
T Detector Store
HistogramSvc
Transient Event Store
PObj
PObj
PObj
uses
creates
navigability
19 ottobre 1999
Hist1
Hist1
Hist1
T Histogram Store
LHCb - GAUDI
HistPerstySvc
PHist
PHist
Converter
12
Interfaccie
EventDataService
• Ogni componente
implementa una o più
interfaccie
• Ogni componente usa
una o più interfaccie
di altri componenti
• Un Algoritmo usa
molti Servizi
DetectorDataService
HistogramService
IDataProviderSvc
IDataProviderSvc
IHistogramSvc
IAlgorithm
ConcreteAlgorithm
IMessageSvc
MessageService
ObjectA
ParticlePropertySvc
19 ottobre 1999
IProperty
ObjectB
IParticlePropertySvc
LHCb - GAUDI
13
Algoritmi
Real dataflow
Data T1
Apparent dataflow
Data T1
Data T2, T3
Transient Event
Data Store
Algorithm
A
Data T2
Algorithm
B
Data T4
Data T3, T4
Data T5
• Un Algoritmo sa solo quali dati
(tipo e nome) usa come input, e
quali creerà come output.
• Il solo accoppiamento tra
algoritmi è tramite i dati.
• L’ordine di esecuzione dei subalgoritmi è la responsabilità
dell’algoritmo genitore.
Algorithm
C
A
Parent
B
C
Data T5
19 ottobre 1999
LHCb - GAUDI
14
Servizi


Agli algoritmi vengono forniti vari servizi
Esempi:
–
–
–
–
–
–
–
–
Job Options service (card files)
Message reporting service
Event/Detector/Histogram data service
Event Selector
Persistency and Conversion services
User Interface (GUI)
Particle property service
...
19 ottobre 1999
LHCb - GAUDI
IService IProperty
Particle Prop.
Service
PP
File
IParticlePropertySvc
Algorithm
Algorithm
15
Event Data Store
retrieveObject( “EcalDigits(3)”,...)
Fetch()
Store()
Event Data
Service
Persistency
Service
Direct
reference
creates
Transient Event Store
19 ottobre 1999
registerObject( “key”,...)
Algorithm
• Mantiene in memoria gli oggetti utilizzabili
da altri oggetti (servizi, algoritmi).
• Recupera oggetti se necessario
• Struttura ad albero (file system)
• Identificazione tramite indirizzo logico
(“/Event/RawEvent/Ecal”)
• Lo Store è il proprietario degli oggetti. È
sua responsabilità fare il clean-up.
LHCb - GAUDI
16
Persistenza
Event Data
Service
Persistency
Service
Converter
Converter
Converter
Sicb/Zebra
SicbCnvSvc
Sicb data
Files
Algorithm
Algorithm
Transient
Event Store
AppManager
OutputStream
OutputStream
19 ottobre 1999
Converter
Converter
Converter
Root I/O
RootCnvSvc
Root data
Files
• Varie tecnologie disponibili simultaneamente:
Objy, Root, Zebra,…
• Convertitori per trasformare gli oggetti da una
rappresentazione a un’altra
LHCb - GAUDI
17
Data Processing Application
Algorithms
Algorithms
Geom
DetElem
Projection view:
version & event time
Detector Description
Editors
Editors
DetElem
DetElem
DetElem
Geom
Geom
Calib
Conversion
Conversion
services
services
DetElem
Slow
Transient detector
store
Other
representations
19 ottobre 1999
DetElem
DetElem
DetElem
? Update
persistency
DetElem
Geom
Calib
LHCb - GAUDI
DetElem
DetElem
DetElem
Geom
Slow
Persistent Detector
Description (DDDB)
Detector
Data
Producers
18
Visualizzazione
Conversion
Service
Converter
Converter
Converter
Transient Event/
Detector Store
Data Item
Selector
• Selects objects
in store
19 ottobre 1999
Representations
Store
(graphical,
textual)
LHCb - GAUDI
User
Interface
19
Configurazione

Quali sono i bottoni disponibili?
– JobOptions. Semplici da usare. Permettono all’utente di modificare le
caratteristiche e parametri di qualsiasi algoritmo o servizio (cards file)
– Properties database. Un modo più sofisticato per modificare le caratteristiche
degli algoritmi e servizi.
– Detector database. Per creare nuove configurazioni del rivelatore o delle
condizioni.
– Scrivere codice specifico. Per esempio è possibile configurare l’applicazione
specificando nelle JobOptions quali algoritmi eseguire e in che ordine.
– User interface. Grafica, command line (scripting language), etc.
19 ottobre 1999
LHCb - GAUDI
20
Packages
GAUDI Framework
• La suddivisione in packages è
un problema architetturale.
• Grosse conseguenze per:
• tempo di compilazione
• dipendenze di link
• configuration management
• taglia dell’eseguibile
• ...
• Le dipendenze tra packages
devono essere approvate
dall’architetto.
• Evitare dipendenze circolari
GaudiExam.
(applications)
RIO
RootCnv
(converters)
SicbCnv
(converters)
LHCbAlg
(algorithms)
DetCnv
(converters)
Futio
(SICB)
CernLib
HbookCnv LHCbEvent
(converters)
CLHEP
DetDesc
(event model)
(detect. model)
Gaudi
(foundations)
STL
Package group
Package dependency
optional
19 ottobre 1999
LHCb - GAUDI
21
Implementazione

Piattaforme:
– WNT, Linux, IBM AIX, HP-UX

Tools e Librerie:
Design tools
Coding rules
Code Management
Configuration Management
Problem tracking
Compilers/Debuggers
Libraries
Documentation
Source code documentation
19 ottobre 1999
Visual Thought, Rational Rose
Interim LHCb coding conventions, SPIDER
Visual Source Safe, CVS
CMT
Planned to use Remedy
Visual C++, GNU EGCS
STL, CLHEP, NAG C, HTL, RIO
FrameMaker
Object Outline, DOC++
LHCb - GAUDI
22
Stato del progetto


Sett ‘98 - nominato architetto, riunita squadra di 6 persone
Nov 25 ‘98 - review esterna dell’architettura
– obiettivi, architecture design document, URD, scenari

Feb 8 ‘99 - GAUDI primo release
– prima software week con presentazioni e tutorials
– pianificazione (insieme agli utenti) del secondo release
– ingrandimento della squadra GAUDI

Mag 30 ‘99 - GAUDI secondo release
– seconda software week …
– pianificazione del terzo release
– ingrandimento della squadra GAUDI (GEANT4 simulation toolkit)


Nov ‘99 - prossimo release e software week
Gen ‘00 - seconda review esterna
19 ottobre 1999
LHCb - GAUDI
23
Lavori in corso:






Integrazione di GEANT4
Visualizzazione, event display
Detector description
Algoritmi e tools per l’analisi dei dati
Evaluazione Java
Collaborazione con LHC++
– Definizione delle interfaccie

Prossimamente: Migrazione del programma di ricostruzione
19 ottobre 1999
LHCb - GAUDI
24
Strategia di migrazione


Obiettivo finale: tutte le applicazioni esclusivamente in OO
Fase di transizione
– Incorporare i programmi di ricostruzione e analisi esistenti in GAUDI (wrap
FORTRAN)
»
»
»
»
Rompere il programma esistente in algoritmi indipendenti
Sviluppare un modello OO completo dell’evento
Scrivere convertitori che permettono l’accesso ai dati nei due formati
Problemi: molti convertitori nelle due direzioni, COMMON blocks etc.
– Nuovi algoritmi possono essere sviluppati esclusivamente in GAUDI
» e.g. Tracking pattern recognition

Fase ibrida
– C++ e FORTRAN coesistono in un unico programma di ricostruzione
» Problemi: 2 detector decriptions, 2 card files, doppia memoria, che formato per l’output?
– Rimpiazzare il FORTRAN gradualmente
19 ottobre 1999
LHCb - GAUDI
25
Conclusioni

Abbiamo completato il primo anno del viaggio verso OO
– L’architettura è definita (interfaccie, componenti)
– Due release del framework sono stati fatti, con una funzionalità minima, per provare
le varie idee.
– Il terzo release, in novembre, avrà una funzionalità sufficiente per incominciare una
migrazione dal FORTRAN.

Abbiamo bisogno di consigli e critiche
– Organizzazione, design fisico, development tools, libraries, foundation libraries, etc.
– Decisioni strategiche del design, frameworks e soluzioni esistenti, etc.
– Strategia di migrazione

Abbiamo bisogno di collaboratori
– Integrazione di altri tools nel framework
– Perfezionamento di componenti esistenti
19 ottobre 1999
LHCb - GAUDI
26
Scarica

gaudi - Cern