LHCb Software Strategy LHCb and ITASD meeting 22
LHCb Software Strategy LHCb and IT/ASD meeting 22 November 1999 P. Mato, CERN 1/6/2022 P. Mato, LHCb Computing 1
Outline u LHCb software process u Integration model u Platforms u Languages u Foundation Libraries u Data persistency u Interactive analysis u Dynamic libraries 1/6/2022 P. Mato, LHCb Computing 2
LHCb Software Process u Driven by the LHCb needs – Functionality and priorities driven by user's needs – Migration to O-O via an hybrid phase ( C++ and Fortran ) u Architecture centric – Our Architecture is GAUDI – Established the basic criteria for overall design – Approach: Develop LHCb-specific pieces ourselves, re-use wherever possible externally developed pieces. u Incremental development – 3 public releases of the framework. Each one with more functionality 1/6/2022 P. Mato, LHCb Computing 3
Integration Model u How can we ensure that software developed by others can be integrated into our software system? u There are integration issues we have to understand: – Dependencies and coupling – Interface definition – Model for defining interfaces (integration technology) è We need a HEP wide integration model – Interface specifications, naming, error codes, exceptions, versioning, etc. 1/6/2022 P. Mato, LHCb Computing 4
Platforms u The platforms we need to support are: NT, Linux & HP u NT – Main development platform for the Gaudi development team – So far, very little support for development from IT u Linux – Preferred development platform by users – Production platform u HP – Used for production in various external places. Eg. Lyon 1/6/2022 P. Mato, LHCb Computing 5
Languages u At present, we develop new software with C++ u We use the latest features of the ANSI standard – Namespaces, RTTI, templates, etc. u No major problems with Visual. C++ and EGCS u We are seriously thinking of a possible migration to Java – Prototype of the Gaudi framework in Java for evaluation – Mixing languages issues (C++, Java) è IT + other Labs computing departments should play a leading role in defining the HEP Java environment 1/6/2022 P. Mato, LHCb Computing 6
Foundation Libraries u It is important to use a solid set of widely accepted foundation libraries. – Facilitates software re-use, avoids linking with many libraries, … u We use: native STL, CLHEP, NAG C u Other libraries should be added to the list – Histograms, N-tuples, utilities, etc. è Foundation libraries should be specified within the integration model 1/6/2022 P. Mato, LHCb Computing 7
Data Persistency u We separate the transient and persistent representation of data objects. u We believe in a multi-technology solution u We use today: – Zebra banks for “event data” input – Root I/O for reading and writing of “event data” – Text XML for detector description u Future? – Objectivity? – Expresso? 1/6/2022 P. Mato, LHCb Computing 8
GAUDI Persistency Model Persistency Service Algorithm Transient Event Store 1/6/2022 Sicb data Files Root. Cnv. Svc Converter App. Manager Sicb/Zebra Converter Detector Data Service Root I/O Sicb. Cnv. Svc Output. Stream P. Mato, LHCb Computing 9
Interactive Analysis u There is a need for a modern and powerful interactive analysis tool. – PAW is still used for analysis of simulated event data – ROOT is used in test beams u None of the existing solutions (PAW, ROOT, JAS) is adequate. è The future interactive framework should be well integrated with the experiment’s framework (Gaudi) 1/6/2022 P. Mato, LHCb Computing 10
Dynamic Libraries u We believe run-time libraries help enormously during the development & maintenance phase of any large software system. – Run-time application configuration. It will be impossible to link statically with all possible libraries. – Bugs can be fixed without the need to re-compile everything. – Smaller executables and better usage of memory resources. u Our framework supports static and dynamic libraries è It would be nice if this vision is shared by all software developers 1/6/2022 P. Mato, LHCb Computing 11
- Slides: 11