Root I/O and the Gaudi Framework

Slides:



Advertisements
Similar presentations
Lectures on File Management
Advertisements

H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Athena/POOL integration
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Chapter 1 and 2 Computer System and Operating System Overview
Computer Organization and Architecture
Chapter 8: I/O Streams and Data Files. In this chapter, you will learn about: – I/O file stream objects and functions – Reading and writing character-based.
Transaction. A transaction is an event which occurs on the database. Generally a transaction reads a value from the database or writes a value to the.
FreeRTOS.
System Calls 1.
FINAL MPX DELIVERABLE Due when you schedule your interview and presentation.
Event Data History David Adams BNL Atlas Software Week December 2001.
Device Drivers CPU I/O Interface Device Driver DEVICECONTROL OPERATIONSDATA TRANSFER OPERATIONS Disk Seek to Sector, Track, Cyl. Seek Home Position.
M.Frank LHCb/CERN Using Shared Libraries ã The traditional way ã How to build shared images? ã Benefits ã Process configuration ã Fortran.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
A university for the world real R © 2009, Chapter 9 The Runtime Environment Michael Adams.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Review of Computer System Organization. Computer Startup For a computer to start running when it is first powered up, it needs to execute an initial program.
Device Driver Concepts Digital UNIX Internals II Device Driver Concepts Chapter 13.
Andrea Valassi (CERN IT-DB)CHEP 2004 Poster Session (Thursday, 30 September 2004) 1 HARP DATA AND SOFTWARE MIGRATION FROM TO ORACLE Authors: A.Valassi,
بسم الله الرحمن الرحيم MEMORY AND I/O.
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
Embedded Computer - Definition When a microcomputer is part of a larger product, it is said to be an embedded computer. The embedded computer retrieves.
Athena StoreGate Tutorial: May 30, Objectives Learn how to access data objects using StoreGate How to record/retrieve by TYPE Optionally using keys.
Embedded Real-Time Systems Processing interrupts Lecturer Department University.
I/O and Metadata Jack Cranshaw Argonne National Laboratory November 9, ATLAS Core Software TIM.
Gaudi Framework Tutorial, April Histograms And N-tuples.
Mini-Workshop on multi-core joint project Peter van Gemmeren (ANL) I/O challenges for HEP applications on multi-core processors An ATLAS Perspective.
David Adams ATLAS Hybrid Event Store Integration with Athena/StoreGate David Adams BNL March 5, 2002 ATLAS Software Week Event Data Model and Detector.
HYDRA Framework. Setup of software environment Setup of software environment Using the documentation Using the documentation How to compile a program.
SOFTWARE TESTING TRAINING TOOLS SUPPORT FOR SOFTWARE TESTING Chapter 6 immaculateres 1.
Excel Translator™ Ultimate Risk Solutions, Inc.:
SPiiPlus Training Class
Database Recovery Techniques
Applied Operating System Concepts
Chapter 2: Computer-System Structures
Processes and threads.
Data Structures Using C, 2e
Monitoring and Evaluation Systems for NARS Organisations in Papua New Guinea Day 3. Session 9. Periodic data collection methods.
“Algorithm Tools” what they are, how to get them and how to use them
CS501 Advanced Computer Architecture
Operating Systems (CS 340 D)
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Main Memory Management
Programmable Logic Controllers (PLCs) An Overview.
The Object-Oriented Thought Process Chapter 12
Machine Independent Features
Module 2: Computer-System Structures
Operating Systems Chapter 5: Input/Output Management
Data Persistency Solution for LHCb
Process Description and Control
What’s new in version 5 of GAUDI
Explaining issues with DCremoval( )
Process Description and Control
Module 2: Computer-System Structures
A QUICK START TO OPL IBM ILOG OPL V6.3 > Starting Kit >
Raw Event Conversion Service in BOSS framework
Lecture 18 Syed Mansoor Sarwar
Event Storage GAUDI - Data access/storage Framework related issues
M. Kezunovic (P.I.) S. S. Luo D. Ristanovic Texas A&M University
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Use Of GAUDI framework in Online Environment
Lecture 12 Input/Output (programmer view)
Calibration Infrastructure Design
Chapter 13: I/O Systems “The two main jobs of a computer are I/O and [CPU] processing. In many cases, the main job is I/O, and the [CPU] processing is.
Presentation transcript:

Root I/O and the Gaudi Framework Persistent Data Store Root I/O and the Gaudi Framework

Persistent Data… what? The data exists for later use, after the current run is finished. As input to another run within Gaudi or for external use. Data will be stored in Root files Why? We plan to support Root Analysis. We have the capability to allow IDL to read in Root files. Root2IDL A new version will be available for the Balloon. Gaudi framework provides the necessary converters to read / write Root files.

Where we stand The Gaudi framework provides an Event Persistency Service. The service handles the details of calling the appropriate converter. Converters handle the details of writing the event data to a specific type of file or database. Gaudi v5 & v6 provide converters to write to Root files. Each object to be read / written to Root must provide serialize methods. 2 simple routines: StreamBuffer& serialize( StreamBuffer& s ) const { return s << myData1 << myData2; } StreamBuffer& serialize( StreamBuffer& s ) { return s >> myData1 >> myData2; Each object needs a Root converter – which is setup via a Gaudi provided macro. We can read / write from Root files using either Gaudi v5 or v6.

Event Persistency Service How does it work? Event Loop For each event, the Transient Data Store (TDS) contains the event data. Writing to Root At the end of each event (before the TDS is cleared), data is stored in a Root buffer. For every item in the TDS that has been specified in the job options file: The Data object’s “serialize” method is called to stream the object’s data into a buffer. The Root files produced store objects as TBlobs. write data TDS Algorithms retrieve data Event Persistency Service Root Converter serialize(buffer s) s << data1 << data2 << dataN; s Root File

Reading from an existing Root file Event Loop Occurs at the beginning of an event to fill the TDS or during an algorithm’s execution. For each TBlob retrieved from the Root file, the serialize method for each object is called to populate the object with the appropriate values. The newly created object is then inserted into the TDS. Event Persistency Service Root File TDS Algorithms Root Converter serialize(buffer s) s >> data1 >> data2 >> dataN;

Issues to be Addressed In order to generalize the writing and reading of data into / out of Root files, a generic data object named TBlob is utilized. The TBlob is just a buffer, where the bits of the various data objects is streamed in / out. The actual structure of the data objects as they exist in Gaudi is lost. Fast I/O But…how do we analyze this data? Two Possible Solutions – Short Term & Long Term Convert TBlobs into our data objects. Modify the mechanism for Root I/O in Gaudi to write out the data as full objects. This work will most likely be taken care of in a future version of Gaudi if we can afford to wait. << myData1 << myData2 myData1Bits myData2Bits >> myData1 >> myData2 TBlob Buffer

Issues to be Addressed Continued… Gaudi v5 and Gaudi v6 store data in Root files slightly differently…but use the same basic concept. So Root files generated using v5 cannot be read back in when using v6. Changes will continue, but ultimately, it will converge. In the meantime, lack of backward compatibility can be fixed if deemed necessary… This will become more important as we prepare to create large data sets. The Gaudi team is aware of the situation.

Summary & Shameless Plug Root I/O works in the Gaudi framework. To setup an object to be available for Root I/O requires 3 things: Setup the serialize methods. Use the appropriate converter macro: _ImplementConverter(myTypeofObject) _ImplementContainerConverters(myTypeofObject) Set the appropriate input parameters in the job options file. More details of how to setup Gaudi to write / read Root files will be explained at the software tutorial session tomorrow!