CMS - HLT Configuration Management System

Similar documents
The CMS data quality monitoring software: experience and future prospects

ATLAS Nightly Build System Upgrade

The Database Driven ATLAS Trigger Configuration System

The TDAQ Analytics Dashboard: a real-time web application for the ATLAS TDAQ control infrastructure

The ALICE Glance Shift Accounting Management System (SAMS)

An SQL-based approach to physics analysis

ATLAS software configuration and build tool optimisation

Geant4 application in a Web browser

A Tool for Conditions Tag Management in ATLAS

Reliability Engineering Analysis of ATLAS Data Reprocessing Campaigns

CMS High Level Trigger Timing Measurements

Monitoring of large-scale federated data storage: XRootD and beyond.

WLCG Transfers Dashboard: a Unified Monitoring Tool for Heterogeneous Data Transfers.

ATLAS Tracking Detector Upgrade studies using the Fast Simulation Engine

File Access Optimization with the Lustre Filesystem at Florida CMS T2

Improved ATLAS HammerCloud Monitoring for Local Site Administration

Evolution of Database Replication Technologies for WLCG

Striped Data Server for Scalable Parallel Data Analysis

CMS data quality monitoring: Systems and experiences

b-jet identification at High Level Trigger in CMS

The ATLAS EventIndex: an event catalogue for experiments collecting large amounts of data

CMS conditions database web application service

The High-Level Dataset-based Data Transfer System in BESDIRAC

The ATLAS Tier-3 in Geneva and the Trigger Development Facility

Description of CORE Implementation in Java

A new approach for ATLAS Athena job configuration

The evolving role of Tier2s in ATLAS with the new Computing and Data Distribution model

Modular and scalable RESTful API to sustain STAR collaboration's record keeping

LHCb Distributed Conditions Database

First LHCb measurement with data from the LHC Run 2

Improvements to the User Interface for LHCb's Software continuous integration system.

The NOvA software testing framework

Evaluation of the computing resources required for a Nordic research exploitation of the LHC

The DMLite Rucio Plugin: ATLAS data in a filesystem

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

Development of DKB ETL module in case of data conversion

Software for implementing trigger algorithms on the upgraded CMS Global Trigger System

The ATLAS Conditions Database Model for the Muon Spectrometer

Automating usability of ATLAS Distributed Computing resources

Use of containerisation as an alternative to full virtualisation in grid environments.

Streamlining CASTOR to manage the LHC data torrent

TAG Based Skimming In ATLAS

Tests of PROOF-on-Demand with ATLAS Prodsys2 and first experience with HTTP federation

Investigation of High-Level Synthesis tools applicability to data acquisition systems design based on the CMS ECAL Data Concentrator Card example

AGIS: The ATLAS Grid Information System

Security in the CernVM File System and the Frontier Distributed Database Caching System

Persistent storage of non-event data in the CMS databases

The CMS L1 Global Trigger Offline Software

Phronesis, a diagnosis and recovery tool for system administrators

CMS users data management service integration and first experiences with its NoSQL data storage

jspydb, an open source database-independent tool for data management

The GAP project: GPU applications for High Level Trigger and Medical Imaging

DIRAC File Replica and Metadata Catalog

The virtual geometry model

Andrea Sciabà CERN, Switzerland

Monte Carlo Production Management at CMS

Verification and Diagnostics Framework in ATLAS Trigger/DAQ

Online data handling and storage at the CMS experiment

Large scale commissioning and operational experience with tier-2 to tier-2 data transfer links in CMS

Large Scale Software Building with CMake in ATLAS

Benchmarking the ATLAS software through the Kit Validation engine

A framework to monitor activities of satellite data processing in real-time

The CMS High Level Trigger System: Experience and Future Development

Development of datamining software for the city water supply company

Data preservation for the HERA experiments at DESY using dcache technology

Monitoring System for the GRID Monte Carlo Mass Production in the H1 Experiment at DESY

Open access to high-level data and analysis tools in the CMS experiment at the LHC

Persistent storage of non-event data in the CMS databases

Big Data Tools as Applied to ATLAS Event Data

Online remote monitoring facilities for the ATLAS experiment

The AAL project: automated monitoring and intelligent analysis for the ATLAS data taking infrastructure

Towards Monitoring-as-a-service for Scientific Computing Cloud applications using the ElasticSearch ecosystem

Early experience with the Run 2 ATLAS analysis model

An Analysis of Storage Interface Usages at a Large, MultiExperiment Tier 1

Monitoring WLCG with lambda-architecture: a new scalable data store and analytics platform for monitoring at petabyte scale.

Data Analysis in ATLAS. Graeme Stewart with thanks to Attila Krasznahorkay and Johannes Elmsheuser

Agents and Daemons, automating Data Quality Monitoring operations

GStat 2.0: Grid Information System Status Monitoring

Dataflow Monitoring in LHCb

ComPWA: A common amplitude analysis framework for PANDA

PoS(ACAT08)101. An Overview of the b-tagging Algorithms in the CMS Offline Software. Christophe Saout

DIRAC pilot framework and the DIRAC Workload Management System

Performance of popular open source databases for HEP related computing problems

Evolution of ATLAS conditions data and its management for LHC Run-2

Monitoring system for geographically distributed datacenters based on Openstack. Gioacchino Vino

A B2B Search Engine. Abstract. Motivation. Challenges. Technical Report

A DAQ system for CAMAC controller CC/NET using DAQ-Middleware

LHCb Computing Resources: 2019 requests and reassessment of 2018 requests

Improved Information Retrieval Performance on SQL Database Using Data Adapter

3.4 Data-Centric workflow

SNiPER: an offline software framework for non-collider physics experiments

Implementing Online Calibration Feed Back Loops in the Alice High Level Trigger

Data transfer over the wide area network with a large round trip time

Chapter 13 XML: Extensible Markup Language

A new petabyte-scale data derivation framework for ATLAS

Performance of Tracking, b-tagging and Jet/MET reconstruction at the CMS High Level Trigger

DIRAC distributed secure framework

Real-time dataflow and workflow with the CMS tracker data

Stitched Together: Transitioning CMS to a Hierarchical Threaded Framework

CRAB tutorial 08/04/2009

Transcription:

Journal of Physics: Conference Series PAPER OPEN ACCESS CMS - HLT Configuration Management System To cite this article: Vincenzo Daponte and Andrea Bocci 2015 J. Phys.: Conf. Ser. 664 082008 View the article online for updates and enhancements. Related content - The ATLAS High Level Trigger Region of Interest Builder R Blair, J Dawson, G Drake et al. - High level trigger online calibration framework in ALICE S R Bablok, Ø Djuvsland, K Kanaki et al. - The dimuon High Level Trigger Z Z Vilakazi and the Alice Collaboration This content was downloaded from IP address 37.44.198.7 on 19/02/2018 at 23:02

21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015) IOP Publishing Journal of Physics: Conference Series 664 (2015) 082008 doi:10.1088/1742-6596/664/8/082008 CMS - HLT Configuration Management System Vincenzo Daponte CERN, on behalf of the CMS collaboration University of Geneva E-mail: vincenzo.daponte@cern.ch Andrea Bocci CERN, on behalf of the CMS collaboration E-mail: andrea.bocci@cern.ch Abstract. The CMS High Level Trigger (HLT) is a collection of software algorithms that run using an optimized version of the CMS offline reconstruction software. The HLT uses Python configuration files each containing hundreds of "modules", organized in "sequences" and "paths". Each configuration usually uses an average of 2200 different modules and more than 400 independent trigger paths. The complexity of the HLT configurations and their large number require the design of a suitable data management system. The work presented here describes the solution designed to manage the considerable number of configurations developed and to assist the editing of new configurations. 1. Introduction The CMS High Level Trigger (HLT) is implemented running a streamlined version of the CMS offline reconstruction software [1] on thousands of CPUs. The CMS software is written mostly in C++, using Python as its configuration language through an embedded CPython interpreter. The configuration of each process is made up of hundreds of "modules", organized in "sequences" and "paths". As an example, the HLT configurations used for 2012 data taking comprised over 2200 different modules, organized in more than 400 independent trigger paths. The complexity of the HLT configurations together with the high number of configuration produced, used to cope with the changing LHC luminosity and specific detector conditions, require the design of a suitable data management system. The present work describes the designed solution to manage the large number of configurations developed and to assist the editing of new configurations. The system is required to be remotely accessible and OS-independent; moreover the system maintainability and the usability criteria are taken into account as key aspects. To meet these requirements a three-layers architecture (Fig. 1) has been chosen to delegate to each layer a different key task. On top of the database "ConfDB" a logic manager has been introduced to handle the database operations, to keep track of the new versions of a given configuration, to perform the permissions checks and to send a configuration to the user in a suitable format for the user interface. Content from this work may be used under the terms of the Creative Commons Attribution 3.0 licence. Any further distribution of this work must maintain attribution to the author(s) and the title of the work, journal citation and DOI. Published under licence by IOP Publishing Ltd 1

21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015) IOP Publishing Journal of Physics: Conference Series 664 (2015) 082008 doi:10.1088/1742-6596/664/8/082008 GUI Ajax request Data API Ajax (Json) response Database Logic middleware Figure 1. Three-layers architecture: On top of the storage unit (database) is built a middleware hosting the business logic, which communicate with the User interface (GUI). The graphical user interface (GUI) will provide all the features to display, modify and manage the configurations. A web application model has been chosen for this GUI. The design was carried out first by exposing paper sketches to the end-users and on the basis of their feedback a software mockup in HTML and JavaScript was implemented. In order not to increase the complexity of the interface, a set of JavaScript frameworks has been evaluated to cut the overhead provided by the HTML graphic design. At the end of the development process usability test will be carried out in order to measure the impact that the new GUI has on the development of configurations for the CMS-HLT. In particular, in Section 2 the concepts of the HLT Configuration are exposed, and in section 3 the architecture of the logic middleware is outlined. Then in Section 4, the design process of the GUI is reported. Finally in section 5 the future steps are detailed. 2. Domain concept description The starting point for the system design has been the analysis of the main concepts populating the domain of the CMS HLT configuration. A graphical representation of the entities recognized and the relationships among them is given to provide a view as complete as possible. The main entities of the HLT configuration are represented along with the relationships between them. The arrow line indicates a Generalization-Specialization relationship; while the plain line stands for a simple Association relationship. The hollow diamonds on the containing class represent the Aggregation association with a single line that connects it to the contained class; while the filled diamonds on the containing class symbolize the Composition association with lines that connect it to the contained class. 2.1. Formal definitions In this section a formal specification of the operational context is given. This specification is formalized using natural language to define all the concepts identified in the domain. The aim of giving such definitions is to provide a unique semantic for all the objects populating the domain in order to build the relationships among them. The definitions will be listed following a hierarchical order: all the entities deriving from another one will be listed, with the appropriate indentation, below the parent entity. Further information on the relationships among the entities will be provided in the next section. 2

21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015) IOP Publishing Journal of Physics: Conference Series 664 (2015) 082008 doi:10.1088/1742-6596/664/8/082008 Process is the top-level item of a configuration program. The Process aggregates all the configuration information for the cmsrun executable. Trigger Path is one of the main components of a Process, it is an ordered set of Sequences and Modules. It is built to identify (i.e. trigger) a specific event by the sequential execution of its components. EndPath It is a particular kind of Trigger Path. It is always executed after the execution of all regular Trigger Path is completed. It can contain several kind of Module such as Output Module, EDProducer and EDAnalyzer; but it can just include two particular EDFilter: TriggerResultsFilter and HLTPrescaler. Sequence is a component of a Trigger Path. It is an ordered list of Modules, each Sequence carries out a macro-task whose output can be reused in other Trigger Path containing the same Sequence. Module is an elementary entity and it performs a single task. There are several kind of Modules used only inside a Trigger Path, others only outside (still within the Process). The former can also be part of a Sequence. o EDProducer is a Module, it is used inside a Trigger Path or inside an EndPath. Its function is to produce new data from a given input; usually it produces higher level data with respect to the given one. o EDAnalyzer is a Module used inside a Trigger Path or inside an EndPath. Its main task is to analyse data previously produced. It is mainly used in the offline analyses or for monitoring purposes. o EDFilter is a Module used inside a Trigger Path. Its function is to take a decision based on the available data. EDFilters determine whether the data computed are compatible with the wanted event. If yes, the execution continues otherwise it stops.! HLTFilter is a particular kind of EDFilter used mainly during the online session.! HLTPrescaler is a apecial kind of EDFilter that can be used also inside an EndPath. It used to decrease the observation rate of an event, usually when this event occurs often.! TriggerResultsFilter is an EDFilter that can be used also inside an EndPath. Its function is to choose which results have to be stored according to a combination of trigger decisions from other Paths/Triggers. o Output Module can be used only in an EndPath. It specifies where the events, matching its internal selection, are saved. o Source is unique for each Process. It abstracts the real source where the raw data come from (i.e. the detector). o ESSources is used to include a new condition record in the configuration. The conditions can be read from an external source. All the conditions in a record have the same validity period, which is the record validity period. o ESProducers is used to import external condition values. It can write this values in existing records; it cannot create new ones. o Service is a particular class of Module. It provides different functionalities useful to monitor the process of data taking. Parameter-Set (PSet) It is a set of parameters. Those can be simple primitive types or structures. SubProcess is a nested Process inside the main one. It can have all the elements of the main one except for the Source, which is unique. A SubProcess can also have another nested SubProcess and so on. The execution of the nested SubProcesses is iterative. 3

21st International Conference on Computing in High Energy and Nuclear Physics (CHEP2015) IOP Publishing Journal of Physics: Conference Series 664 (2015) 082008 doi:10.1088/1742-6596/664/8/082008 Schedule defines the execution order (i.e. the schedule) of the Paths/Triggers and EndPaths inside a Process. Stream represents a stream of data flowing from the detector (i.e. Point 5) to the storage unit (i.e. Tier 0). Event is the object where the outputs of the modules computation along a Paths/Triggers are stored. Event Content is a list of contents of an Event to keep or drop in a Stream. The contents can be dropped or kept by specifying this list through the following string format: keep drop [ Type Label Instance Process ] + Where: Type > Friendly Type Name. Label > Module Label. Instance > Arbitrary String. Process > Process Name. Dataset is a subset of the collected data. This subset refers to a specific event or to a particular combination of events. Release indicates the CMSSW version on which the Process is based. 2.2. Entities representation In this section a view on the analysed domain entities is provided. In Fig. 2 the main entities of the HLT configuration are represented. The presented diagram also shows the relationships between entities. The arrow line indicates a Generalization-Specialization relationship; while the plain line stands for a simple Association relationship. Configuration Source Path End Path Service ES Source ES Producer Sequence Module Output M. Dataset Stream Global P. Set ED Producer ED Filter ED Analyzer Event Content Figure 2. The diagram of the main entities of an HLT Configuration. The main entity, which groups all the others into the final configuration, is the Process. It can be associated to: 4

one or none Schedule; none or many Trigger Paths; none or many EndPaths; none or many Parameter-Sets; many Modules, in particular: One and only one Source; none or many Services; none or many ESSources; none or many ESProducers; and none or one SubProcess. Vincenzo Dapon The second most important entity is the Trigger Path. As stated above, it includes a series of Modules vincenzo.daponte@cern used to identify a particular event. In detail it can be associated to: none or many Sequence; 1CERN, 2Un one or many Modules such as: none or many EDFilter; on behalf of th none or many EDProducer; none or many EDAnalyzer; Another relevant entity in the HLT configuration domain is the EndPath. It can be associated with none or many Sequences, hence with EDProducers and EDAnalyzers. It has at least one Output Overview Modules and none or many the(hlt) two kind of EDFilter allowedalgorithms in this case: TriggerResultsFilter The CMS High Levelfrom Trigger is a collection of software that run using an and HLTPrescaler. There are other entities in the HLT configuration domain which are taken into optimized version of the CMS offline reconstruction software. The HLT uses Python account especially in the line containing sessions. None or many Stream can be associated to a Process. Each configuration filesoneach hundreds of "modules", organized in "sequences" and "paths". Each configuration usually an average of 2200Moreover, different modules and is more than Stream has a one-to-one association withuses an Output Module. a Stream associated to at 400 independent paths. The complexity HLTTrigger configurations least one Dataset; and eachtrigger Dataset is associated to oneoforthe many Path. and their large number require the design of a suitable data management system. The work presented here describes the solution designed to manage the considerable number of configurations 3. Logic middleware developed and to assist is thebased editing on of new The middleware architecture fourconfigurations. components, as shown in Fig. 3, each addressing a specific task, those components are the Ajax API, the Logic module, the Serialization module and the Data API. A j a x A P I L O G I C Serialization Data API Entity Schemas1 DB Table Wrappers2 Figure 3. The structure of the Logic middleware. Logic middleware The middleware architecture is based on four components, each addressing a specific task. The Ajax API provides the interface used by the GUI to access and manage the contents. The Logic layer implements the operations required to build those contents and perform the required task. The Data API provides to the logic layer a suitable interface to the database, wrapping any low level operation (i.e database query). The Serialization layer ensures the data retrieved by the Logic layer is built according to the standard used in the GUI. This solution is meant to provide high decoupling and high flexibility among the layers. These features can be exploited Archi The system use. To m database, a users secur interface (G

3.1. AJAX API The AJAX API provides the interface used by the GUI to access and manage the contents. This module lists all the exposed methods that can be invoked by the client application through Ajax requests. Each method provides access different contents by triggering the corresponding algorithm in the Logic layer. 3.2. Logic layer The Logic layer implements the operations required to build the contents requested by the client and perform the required task. The method invoked first checks for the inputs to be consistent and then retrieves the necessary data through the Data API. With the collected data, the algorithm invoked builds the content requested by the client and serializes it through the Serialization module to send the response in a suitable JSON format. 3.3. Data API The Data API provides to the logic layer a suitable interface to the database, wrapping any low level operation (i.e. database query). This module is based on two main components: the Entity schema and the Data API itself. The Entity schema abstracts the tables present in the Database at middleware level, providing a direct way to retrieve information from this data source. The Data API implements the query used to retrieve the requested contents from the database. 3.4. Serialization layer The Serialization layer ensures the data retrieved by the Logic layer is built according to the standard used in the GUI. The Logic layer invokes this module once the content requested by client is built to serialize it into JSON format. This operation is performed relying on another schema that abstracts the content entity to the client application level; in particular the data serialized are formatted in a suitable way for being consumed by the client application. 4. GUI design The GUI design was carried out first by exposing paper sketches, as in Fig. 4, to the end-users and based on their feedback a software mock-up was implemented. Figure 4. The sketch of a client application view. The need to provide customized features for each main entity in the Configuration domain led us to choose the Model-View-View Model [2] (MVVM) design pattern for the GUI web application.

View Controller View Model Figure 5. The Model-View-View Model schema. In this pattern, as shown if fig. 5, each view is provided with its own controller and the instances of the domain model concerning that view. At the end of the development process, a usability test will be carried out in order to measure the impact that the new GUI has on the development of configurations for the CMS HLT. 5. Future developments The solution exposed is meant to provide high decoupling and high flexibility among the layers. These features can be exploited in case of database schema changes as well as in case of GUI updates. In both cases just minor changes to the Data API and to the Serialization layer respectively would be required, avoiding extensive modification to the rest of the application. The addition or the substitution of a data source can be easily handled by designing a suitable Data API leaving the other components unchanged. Additional features to be introduced are the parser module to obtain the python version of a desired configuration, this is the format used to run the CMSSW instances. The editing capabilities, already foreseen in the previous design phase are also to be implemented.

References [1] CMS Collaboration, CMS Physics Technical Design Report Vol I: Detector Performance and Software, CERN/LHCC 2006-001. [2] Li, Liu. "Analysis and Application of MVVM Pattern." Microcomputer Applications 12 (2012): 019.