A Dataflow Meta-Computing Framework for Event Processing in the H1 experiment



Similar documents
Ralf Gerhards presented detailed plans to install and test LSF batch system on the current H1 PC-Farm and make it available to H1 users this summer.

Event Logging and Distribution for the BaBar Online System

Scalable Multi-Node Event Logging System for Ba Bar

Object Database Scalability for Scientific Workloads

Online Performance Monitoring of the Third ALICE Data Challenge (ADC III)

Chapter 11 I/O Management and Disk Scheduling

First-year experience with the ATLAS online monitoring framework

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl

Objectivity Data Migration

HDFS Users Guide. Table of contents

Online Backup Client User Manual

Graylog2 Lennart Koopmann, OSDC /

ORACLE INSTANCE ARCHITECTURE

1. Product Information

Online Backup Client User Manual Linux

Online Monitoring in the CDF II experiment

The Google File System

The H.E.S.S. Data Acquisition System

Scaling Objectivity Database Performance with Panasas Scale-Out NAS Storage

Memory Database Application in the Processing of Huge Amounts of Data Daqiang Xiao 1, Qi Qian 2, Jianhua Yang 3, Guang Chen 4

RecoveryVault Express Client User Manual

CHESS DAQ* Introduction

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

MapGuide Open Source Repository Management Back up, restore, and recover your resource repository.

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS

Online Backup Linux Client User Manual

Improved metrics collection and correlation for the CERN cloud storage test framework

Online Backup Client User Manual

A High-Performance Storage System for the LHCb Experiment Juan Manuel Caicedo Carvajal, Jean-Christophe Garnier, Niko Neufeld, and Rainer Schwemmer

Online Backup Client User Manual

Performance monitoring at CERN openlab. July 20 th 2012 Andrzej Nowak, CERN openlab

Azul Compute Appliances

Online Backup Client User Manual Mac OS

Online Backup Client User Manual Mac OS

Implementing Network Attached Storage. Ken Fallon Bill Bullers Impactdata

Network Attached Storage. Jinfeng Yang Oct/19/2015

Keystone 600N5 SERVER and STAND-ALONE INSTALLATION INSTRUCTIONS

CatDV Pro Workgroup Serve r

What is LOG Storm and what is it useful for?

Backup with synchronization/ replication

How to Ingest Data into Google BigQuery using Talend for Big Data. A Technical Solution Paper from Saama Technologies, Inc.

Metalogix SharePoint Backup. Advanced Installation Guide. Publication Date: August 24, 2015

Introweb Remote Backup Client for Mac OS X User Manual. Version 3.20

Journal of science STUDY ON REPLICA MANAGEMENT AND HIGH AVAILABILITY IN HADOOP DISTRIBUTED FILE SYSTEM (HDFS)

High-Volume Data Warehousing in Centerprise. Product Datasheet

IMPLEMENTING GREEN IT

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Backup architectures in the modern data center. Author: Edmond van As Competa IT b.v.

Globus Striped GridFTP Framework and Server. Raj Kettimuthu, ANL and U. Chicago

Universidad Simón Bolívar

A REVIEW PAPER ON THE HADOOP DISTRIBUTED FILE SYSTEM

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

Installation and Setup: Setup Wizard Account Information

Next Generation Operating Systems

Merkle Hash Trees for Distributed Audit Logs

Support Document: Microsoft SQL Server - LiveVault 7.6X

Chapter 6, The Operating System Machine Level

Hypertable Architecture Overview

BIRT Document Transform

The CMS analysis chain in a distributed environment

Using Symantec NetBackup with Symantec Security Information Manager 4.5

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

RevoScaleR Speed and Scalability

Software Scalability Issues in Large Clusters

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

ATLAS TDAQ Monitoring Questionnaire

Facebook: Cassandra. Smruti R. Sarangi. Department of Computer Science Indian Institute of Technology New Delhi, India. Overview Design Evaluation

Types Of Operating Systems

Agenda. Enterprise Application Performance Factors. Current form of Enterprise Applications. Factors to Application Performance.

An Oracle White Paper June High Performance Connectors for Load and Access of Data from Hadoop to Oracle Database

Guideline for stresstest Page 1 of 6. Stress test

Distributed File Systems

How To Install An Aneka Cloud On A Windows 7 Computer (For Free)

CATS-i : LINUX CLUSTER ADMINISTRATION TOOLS ON THE INTERNET

ZooKeeper. Table of contents

Using Linux Clusters as VoD Servers

Integrity Checking and Monitoring of Files on the CASTOR Disk Servers

Design Issues in a Bare PC Web Server

Achieving Real-Time Business Solutions Using Graph Database Technology and High Performance Networks

Actian Analytics Platform Express Hadoop SQL Edition 2.0

BaBar and ROOT data storage. Peter Elmer BaBar Princeton University ROOT Oct. 2002

Introduction 1 Performance on Hosted Server 1. Benchmarks 2. System Requirements 7 Load Balancing 7

Performance Monitoring of the Software Frameworks for LHC Experiments

WhatsUp Gold v16.3 Installation and Configuration Guide

Hadoop and Map-Reduce. Swati Gore

The Revised SAP J2EE Engine 6.20 Cluster Architecture

Apache Hadoop. Alexandru Costan

Computer Virtualization in Practice

Planning the Installation and Installing SQL Server

HPC performance applications on Virtual Clusters

Installation and Deployment

Semester Thesis Traffic Monitoring in Sensor Networks

PBS + Maui Scheduler

LinuxWorld Conference & Expo Server Farms and XML Web Services

File Management. Chapter 12

Intellicus Cluster and Load Balancing (Windows) Version: 7.3

DeltaV Remote Client. DeltaV Remote Client. Introduction. DeltaV Product Data Sheet. Remote engineering and operator consoles

Chapter 1 Computer System Overview

How To Set Up An Intellicus Cluster And Load Balancing On Ubuntu (Windows) With A Cluster And Report Server (Windows And Ubuntu) On A Server (Amd64) On An Ubuntu Server

Remote PC Guide Series - Volume 2b

Transcription:

A Dataflow Meta-Computing Framework for Event Processing in the H1 experiment Alan Campbell 1, Ralf Gerhards 1, Christoph Grab 2, Janusz Martyniak 3, Tigran Mkrtchyan 1, Sergey Levonian 1, Jacek Nowak 3 1 (Deutsches Elektronen-Synchrotron, DESY, Hamburg) 2 (Institut f. Teilchenphysik, ETH-ZH, (Hoenggerberg, CH-8093 Zuerich),Zuerich) 3 (Institute of Nuclear Physics, Cracow) Abstract Linux based networked PCs clusters are replacing both the VME non uniform direct memory access systems and SMP shared memory systems used previously for the online event filtering and reconstruction. To allow an optimal use of the distributed resources of PC clusters an open software framework is presently being developed based on a dataflow paradigm for event processing. This framework allows for the distribution of the data of physics events and associated calibration data to multiple computers from multiple input sources for processing and the subsequent collection of the processed events at multiple outputs. The basis of the system is the event repository, basically a first-in first-out event store which may be read and written in a manner similar to sequential file access. Events are stored in and transferred between repositories as suitably large sequences to enable high throughput. Multiple readers can read simultaneously from a single repository to receive event sequences and multiple writers can insert event sequences to a repository. Hence repositories are used for event distribution and collection. To support synchronisation of the event flow the repository implements barriers. A barrier must be written by all the writers of a repository before any reader can read the barrier. A reader must read a barrier before it may receive data from behind it. Only after all readers have read the barrier is the barrier removed from the repository. A barrier may also have attached data. In this way calibration data can be distributed to all processing units. The repositories are implemented as multi-threaded CORBA objects in C++ and CORBA is used for all data transfers. Job setup scripts are written in python and interactive status and histogram display is provided by a Java program. Jobs run under the PBS batch system providing shared use of resources for online triggering, offline mass reprocessing and user analysis jobs. Keywords: Dataflow, Meta-computing, CORBA, C++, Python, Java, H1 1 Background and Motivation The electron proton collider HERA at the DESY laboratory in Hamburg and the H1[1] experiment will complete major upgrades in 2001. To cope with the expected increased luminosity and therefore the increased demands on data storage and data handling, the H1 Collaboration is pursuing a major revision of its computing environment. The primary goal of the work reported here is to merge the functionalities of the present Level 4 (software) trigger and of the present quasi online reconstruction (called L5[2]) into a single operational unit. Therefore the current L4 system, a farm of PowerPC processors integrated in the VME based data acquisition system [3], is replaced by a farm of networked PCs under the Linux operating system ( L45 ) and will take over all tasks of the current L5 system which is running on a single SGI Challenge computer. The hardware is located a few kilometers away from the experiment in the DESY Computer Center and is connected to the DAQ system using parallel fast Ethernet links. The same PC farm has replaced the

SGI multiprocessor machines for H1 analysis batch jobs. Hence the linux PC farm provides the computing platform for all computing tasks from online software trigger to massive data analysis and the manpower requirements are reduced significantly due to the concentration on a single platform. This approach has become possible due to the enormous increase in performance of commodity PCs and networks and the availability of high quality open-source software since the initial L4 and L5 systems were introduced almost 10 years ago. The move from dedicated hardware to networked PCs has given us the opportunity to develop a software system which is open for all users and all event processing tasks on all our computing systems. This will allow to run simultaneously online L45 filtering and multiple offline reprocessing chains and in addition open the possibility of meta-computing to user analysis jobs, allowing for faster analysis despite the greatly increased data volume. 2 Requirements The meta-computing framework must be capable of transferring a stream of events from a source ( or multiple sources ) through multiple processing tasks and out to one or more sinks. A source may be a selection of events from a sequence of files or online data from the H1 experiment. A sink may be disk or tape files or a special data logging task. It must be possible to require that certain groups of events from the input stream remain grouped on the output stream, for example events from different data taking runs must not be mixed despite the large variations in processing time between events. The online L45 filter task must be capable of maintaining a continuous input data rate of 7 MB/s and output rate of 2 Mbytes/s. The data throughput should be independent of individual event sizes which vary greatly from several hundred kilobytes for complex e-p interaction events to just a few bytes for special calibration records or compressed data summary format events. In addition to event data calibration constants must be distributed to the processing nodes ahead of the data to which they apply. For the L45 filter a few calibration constants may be changed on a short timescale for immediate use from a particular event number within a run. The L45 filter program is based on the full reconstruction program h1rec which consists of large Fortran code for charged particle and calorimeter shower identification. Event data BOS banks are transfered in the H1 specific machine independent FPACK[4] format and monitor histograms are stored in the H1 specific LOOK[5] package. Especially for online L45 processing we require to access for immediate display the monitor histograms filled within the Fortran code. In addition histograms must be collected from all processing tasks, summed and stored on a per run basis. At a later stage support for H1 DST data in ROOT[6] [7] format and ROOT histograms may be required. As the L45 processing and filtering step is run on raw data from H1 before storage on persistent media a certain degree of robustness against program and machine failure is required. In particular a crash of the full reconstruction program h1rec should not lead to a loss of events and a new process should be started automatically. Failure of complete machines should be recoverable without halting the data flow, and it must be possible to add additional processors at any time. In the rare case of the failure of a complete machine some data loss may be tolerable as long as it can be quantified. 3 Implementation Tools We choose to base our implementation on CORBA. This has several major advantages over raw sockets and message passing infrastructures like PVM[8]: parameter marshaling code is generated automatically, connection setup is handled completely by the ORB, the remote calls are machine architecture and language independent, and calls are unaware if the objects are

local or remote ( location independence ). A performance comparison of several freely available CORBA implementations led us to choose omniorb C++ [9] as basis for the main dataflow infrastructure due to the excellent data transfer throughput and the small footprint as well as the strict standards compliance. In addition we deploy omnipy and python scripts for job control, native jdk1.3 CORBA and swing for graphical status display, and jdk1.3 CORBA and JAS[10] for online histogram browsing. 4 Details of Dataflow The dataflow is organized by data transfer between CORBA event repository objects. The event repository is basically a first-in first-out event store which may be read and written in a manner similar to sequential file access. Events are actually stored in the repository as suitably large sequences instead of individually and entire sequences are transfered between repositories over the network to enable high throughput, independent of event size. An event repository repository with its reader and writer tasks is depicted in Figure 1. Data Flow LEGEND Event Event Sequence READERS Barrier WRITERS EVENT REPOSITORY FIFO Barrier with attached data Persistent Barrier Cache Figure 1: CORBA Event Repository Multiple readers can read simultaneously from the same repository to receive subsequent event sequences. The multiple reads are handled by separate ORB server threads per client machine with only a short mutually exclusive section to remove a sequence pointer from the repository FIFO buffer. No expensive data copying is required. Similarly multiple writers can hand over event sequences to the repository simultaneously. Hence repositories are used for both event distribution and collection. A method is needed to separate the event flow into blocks such that events stay within a block. All output events within a block must reach their final destination before events from the next block, although events within a block may be dropped as is often the case in the L45 filter application. Practically block boundaries are start and finish of data taking runs in the case of online processing and the start and end of data files for offline processing. Additional block boundaries may mark eg every hundredth calibration pulser event to trigger the preparation of a new calibration. To support this synchronisation of the event flow the repository implements barriers. Like event sequences barriers are inserted into the repository FIFO store. A barrier is assigned

an incremental number when it is first written to its source repository and retains this number as it is transferred from repository to repository. Synchronisation is obtained by requiring that all writers write a barrier before any readers can read it. Further writers can continue to write event sequences in front of a barrier which has already been written by another writer. As soon as all writers have written a particular barrier that barrier becomes readable. Unlike event sequences barriers are not removed from the repository until they have been read by all readers. However a given reader can read event sequences ( or further readable barriers ) behind barriers which they have already read. Only when all readers have read a barrier is it removed from the repository. Hence each barrier is distributed to all processing units and recombined at the final sink repository. As data events cannot skip across a barrier this ensures the required synchronisation. Of course the repositories must be sufficiently large and the barriers sufficiently infrequent so that the overall data flow is not hindered. In order to support insertion of additional processing units in an established data flow readers and writers must perform an open ( or login ) operation on the repository. This makes a contract with the repository to provide/read all barriers from a particular barrier number. Attachment to the dataflow is a 3 step process; first the downstream repository is contacted and a contract made to deliver the front-most non-readable barrier ( or next barrier to come if no barrier is present in the repository ), then the upstream repository is opened and a promise made to read the front-most barrier, and finally the contract with the downstream repository is modified to correspond to the barrier which is now known from the upstream repository. Similar care must be taken to cleanly detach from the dataflow and a method is required to logout readers and writers from repositories in the case of abrupt abortion of a task. This is one of the responsablities of the controller framework described below. Each barrier contains a type indicating its meaning eg start-of-run, end-of-run, end-ofdataflow. As a barrier flows through the processing code they can trigger special actions, for example the end-of-run barrier triggers the creation and output of run histogram records to the output repository for subsequent summing and logging at the data sink. The special endof-dataflow barrier causes the shutdown of the containing process on its removal from all its repositories. As barriers are broadcast to all processing units and mark a timestamp in the dataflow we can use them also as an elegant mechanism for distribution of calibration and geometry constants to the processing nodes by attaching data records to them. If we introduce a barrier with attached calibration data this data can be received and kept in the analysis program and is therefore available for the processing of subsequent events. Hence we avoid separate requests to the central database from the many processing tasks and ensure that the same constants are used by all processing units even if the database is updated in the meantime. This mechanism allows also the timely distribution of run settings for online data which are not yet stored in the central database, as well as the introduction of new constants from a particular event number within an ongoing run as is for example required in the case of a sudden shift of the collision vertex within the H1 detector. In order to ensure the availability of the correct calibration constants to processing units inserted into an established dataflow barrier records with attached data are not deleted when they are removed from a repository but instead are inserted in the associated persistent barrier cache replacing there any older version of the barrier data. A new reader reads first all barriers from the barrier cache before continuing to read from the repository, thus receiving all necessary calibration data.

5 Overall Dataflow The overall dataflow is shown in Figure 2 for the L45 filter application with online data input from the H1 experiment. LEGEND TAPE Computer Process H1 Repository L45 L45 DISK Calibration Constants Figure 2: Overall L45 Data Flow Data flows from the data acquisition system via a TCP socket as a stream of FPACK physical records. The input node converts this stream into event sequences and writes it to its repository. A set of 20 dual processor nodes run 3 processes each; a single i/o task containing both input and output repositories for the 2 reconstruction and filter processes L45. Each L45 process reads just single events at a time and a copy of the event is kept within the i/o task so that it is not lost should the L45 process abort. Separate output repositories handle the main output stream and calibration relevant data respectively. Additional threads within the i/o task pull data from the input node(s) and push data to the output nodes. The output node can update calibration constants and insert them as barriers to the current dataflow by request to the input node. For offline analysis programs the i/o and processing tasks can be easily combined in a single process due to the location independence of CORBA objects. A secondary output path is provided for calibration data with the ability to feed updated calibration constants back into the data stream. 6 Environment To facilitate the launching and control of the processes over all nodes a controller framework has been developed. A master controller process is started on the initial node and a slave controller is launched on each node on which dataflow processes should be started - either by utilizing the facilities of the batch system or via ssh. The controller daemon spawns the required processes typically through execution of CORBA requests to the master controller from a python script. The local controller daemons can take appropriate action in the case of death of child processes such as informing the connected repositories and restarting. In addition the controller daemons distribute initialisation parameters, assign unique process identifiers, and maintain lists of all CORBA objects such as repositories and histogram server objects. The master controller object is entered in the CORBA name service and thus acts as a single access point for all objects within the distributed job. A JAVA display program is available which collects the repository object references from the controller and displays the status of all repositories and processes within a job for online status monitoring. We have developed a comfortable histogram display tool based on JAVA and JAS[10]

capable of collecting in real time the histograms from the running reconstruction programs for comparison to reference histograms allowing immediate data quality checks. Further monitoring of the data flow is provided by timestamped log files recording state changes in the repositories ( empty, full, barrier entry ). This allows for diagnosis of bottlenecks and hangups in the dataflow. 7 Status The tools described are nearly complete and final testing is in progress. The code should run in production mode from the startup of H1 datataking in 2001. References [1] I. Abt et al. [H1 Collaboration], The H1 detector at HERA, Nucl. Instrum. Meth. A 386 (1997) 310. [2] U. Berthon et al., Reprocessing H1 Data on a CCCIN2P3 Computer Farm http:// www-zeuthen.desy.de/chep97/paper/435.ps [3] A. J. Campbell, A RISC multiprocessor event trigger for the data acquisition system of the H1 experiment at HERA, IEEE Trans. Nucl. Sci. 39 (1992) 255. [4] V. Blobel, FPACK - a general standalone package for machine independent data input/output, H1 Collaboration Internal Document [5] V. Blobel, LOOK - a system for data analysis http://www-h1.desy.de/icas/ imanuals/look/home.html [6] http://root.cern.ch/. [7] U. Berthon et al., New Data Analysis Environment in H1, http://chep2000.pd.infn. it/short_p/spa_f079.pdf [8] http://www.epm.ornl.gov/pvm/pvm_home.html [9] http://www.uk.research.att.com/omniorb/omniorb.html [10] A.S. Johnson, Java Analysis Studio, http://chep2000.pd.infn.it/short_p/spa_ f250.pdf http://www-sldnt.slac.stanford.edu/jas/.