The JANA Reconstruction Framework David Lawrence - JLab May 25, 2010 5/25/101JANA - Lawrence - CLAS12 Software Workshop.

Slides:



Advertisements
Similar presentations
Building Portals to access Grid Middleware National Technical University of Athens Konstantinos Dolkas, On behalf of Andreas Menychtas.
Advertisements

H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
MCTS GUIDE TO MICROSOFT WINDOWS 7 Chapter 10 Performance Tuning.
MotoHawk Training Model-Based Design of Embedded Systems.
Discovering Computers 2010
Elliott Wolin CLAS12 Software Workshop U of Richmond 25-May-2010.
Chapter Ten Performance Tuning. Objectives Create a performance baseline Create a performance baseline Understand the performance and monitoring tools.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
CLEO’s User Centric Data Access System Christopher D. Jones Cornell University.
The JANA Calibrations and Conditions Database API March 23, 2009 David Lawrence JLab 3/23/091JANA Calibration API David Lawrence -- JLab.
Research on cloud computing application in the peer-to-peer based video-on-demand systems Speaker : 吳靖緯 MA0G rd International Workshop.
Multi-threaded Event Processing with JANA David Lawrence – Jefferson Lab Nov. 3, /3/08 Multi-threaded Event Processing with JANA - D. Lawrence JLab.
I/O bound Jobs Multiple processes accessing the same disc leads to competition for the position of the read head. A multi -threaded process can stream.
Hands-On Microsoft Windows Server 2008 Chapter 1 Introduction to Windows Server 2008.
MCTS Guide to Microsoft Windows Vista Chapter 11 Performance Tuning.
MCTS Guide to Microsoft Windows 7
Introduction to Hall-D Software February 27, 2009 David Lawrence - JLab.
Online Data Challenges David Lawrence, JLab Feb. 20, /20/14Online Data Challenges.
Operating System Review September 10, 2012Introduction to Computer Security ©2004 Matt Bishop Slide #1-1.
The GlueX Collaboration Meeting October 4-6, 2012 Jefferson Lab Curtis Meyer.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Module 7: Fundamentals of Administering Windows Server 2008.
THttpServer class Sergey Linev (GSI). Some history Development was inspired by JSRootIO why not achieve similar functionality with online ROOT application?
1 Computer Architecture Research Overview Rajeev Balasubramonian School of Computing, University of Utah
GlueX Software Status April 28, 2006 David Lawrence, JLab.
V. Serbo, SLAC ACAT03, 1-5 December 2003 Interactive GUI for Geant4 by Victor Serbo, SLAC.
Adaptable Consistency Control for Distributed File Systems Simon Cuce Monash University Dept. of Computer Science and Software.
Status of the LHCb MC production system Andrei Tsaregorodtsev, CPPM, Marseille DataGRID France workshop, Marseille, 24 September 2002.
DANA uses a factory model to deliver data “just in time”
DDM Monitoring David Cameron Pedro Salgado Ricardo Rocha.
CHEP ‘06 David Lawrence JLab C++ Introspection and Object Persistency through JIL David Lawrence Ph. D. Jefferson Lab, Newport News VA.
C++ Introspection and Object persistency Through JIL David Lawrence Ph. D. Jefferson Lab, Newport News VA.
Online Software 8-July-98 Commissioning Working Group DØ Workshop S. Fuess Objective: Define for you, the customers of the Online system, the products.
Consider the program fragment below left. Assume that the program containing this fragment executes t1() and t2() on separate threads running on separate.
Silberschatz, Galvin and Gagne  Operating System Concepts UNIT II Operating System Services.
David Adams ATLAS DIAL: Distributed Interactive Analysis of Large datasets David Adams BNL August 5, 2002 BNL OMEGA talk.
HIGUCHI Takeo Department of Physics, Faulty of Science, University of Tokyo Representing dBASF Development Team BELLE/CHEP20001 Distributed BELLE Analysis.
SoLID simulation with GEMC Zhiwen Zhao 2015/03/26.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Von Neumann Computers Article Authors: Rudolf Eigenman & David Lilja
Monitoring Update David Lawrence, JLab Feb. 20, /20/14Online Monitoring Update -- David Lawrence1.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
October Test Beam DAQ. Framework sketch Only DAQs subprograms works during spills Each subprogram produces an output each spill Each dependant subprogram.
Time Management.  Time management is concerned with OS facilities and services which measure real time.  These services include:  Keeping track of.
GlueX Software Status + Framework Development David Lawrence JLab September 19, /19/081Software Status -- David Lawrence, JLab.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
Event Management. EMU Graham Heyes April Overview Background Requirements Solution Status.
Page 1 2P13 Week 1. Page 2 Page 3 Page 4 Page 5.
David Adams ATLAS ADA: ATLAS Distributed Analysis David Adams BNL December 15, 2003 PPDG Collaboration Meeting LBL.
October 19, 2010 David Lawrence JLab Oct. 19, 20101RootSpy -- CHEP10, Taipei -- David Lawrence, JLab Parallel Session 18: Software Engineering, Data Stores,
Mar 05 - hvdsOffline / HLT1  Athena SW Infrastructure  programming + applying tools wrt. dependencies between packages  developing + testing extra ideas.
MAUS Status A. Dobbs CM43 29 th October Contents MAUS Overview Infrastructure Geometry and CDB Detector Updates CKOV EMR KL TOF Tracker Global Tracking.
1 GlueX Software Oct. 21, 2004 D. Lawrence, JLab.
David Lawrence JLab May 11, /11/101Reconstruction Framework -- GlueX Collab. meeting -- D. Lawrence.
Fermilab Scientific Computing Division Fermi National Accelerator Laboratory, Batavia, Illinois, USA. Off-the-Shelf Hardware and Software DAQ Performance.
Mini-Workshop on multi-core joint project Peter van Gemmeren (ANL) I/O challenges for HEP applications on multi-core processors An ATLAS Perspective.
DANA David Lawrence Oct. 21, D. Lawrence, JLab GlueX Software Workshop Oct Outline Requirements Philosophy Overview of Features Open Questions.
GeantV – Adapting simulation to modern hardware Classical simulation Flexible, but limited adaptability towards the full potential of current & future.
Event Sources and Realtime Actions
Diskpool and cloud storage benchmarks used in IT-DSS
RAID, Programmed I/O, Interrupt Driven I/O, DMA, Operating System
MCTS Guide to Microsoft Windows 7
Chapter 2: System Structures
ASP.NET Caching.
Multiple Processor Systems
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
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:

The JANA Reconstruction Framework David Lawrence - JLab May 25, /25/101JANA - Lawrence - CLAS12 Software Workshop

What is JANA? J Lab ANA lysis framework (more accurately, a reconstruction) framework C++ framework that formalizes the organization of algorithms and data transfer for event based processing True multi-threaded event processing Numerous features custom for experimental Nuclear Physics 5/25/10JANA - Lawrence - CLAS12 Software Workshop2

Why Multi-threading? 5/25/10JANA - Lawrence - CLAS12 Software Workshop Multi-core processors are already here and commonly used. Industry has signaled that this will be the trend for the next several years. Consequence: Parallelism is required Maintaining a fixed memory capacity per core will become increasingly expensive due to limitations on the number of controllers that can be placed on a single die (#pins). Example: Memory accounts for about 10%-25% of system cost today but that will increase by as much as 5%/year over the next several years leading to 50% of system cost going toward RAM

Factory Model 5/25/10JANA - Lawrence - CLAS12 Software Workshop4 STOCK MANUFACTURE in stock? ORDER PRODUCT YES NO FACTORY (algorithm) STOCK MANUFACTURE in stoc k? YES NO FACTORY STOCK MANUFACTURE in stoc k? YES NO FACTORY Data on demand = Don’t do it unless you need it Stock = Don’t do it twice Conservation of CPU cycles!

Complete Event Reconstruction 5/25/10JANA - Lawrence - CLAS12 Software Workshop5 Event Loop Event Processor Event Source HDDM File EVIO File ET system Web Service User supplied code Fill histograms Write DST L3 trigger Framework has a layer that directs object requests to the factory that completes it This allows the framework to easily redirect requests to alternate algorithms specified by the user at run time Multiple algorithms (factories) may exist in the same program that produce the same type of data objects

Multi-threading 5/25/10JANA - Lawrence - CLAS12 Software Workshop6 Event Processor Event Source thread o Each thread has a complete set of factories making it capable of completely reconstructing a single event o Factories only work with other factories in the same thread eliminating the need for expensive mutex locking within the factories o All events are seen by all Event Processors (multiple processors can exist in a program)

Plugins JANA supports plugins: pieces of code that can be attached to existing executables to extend or modify its behavior Plugins can be used to add: – Event Processors – Event sources – Factories (additional or replacements) Examples: – Plugins for creating DST skim files Reconstruction is done once with output to multiple files hd_ana --PPLUGINS=kaon_skim,ppi+pi-_skim run evio – Plugins for producing subsystem histograms Single ROOT file has histograms from several pieces of code hd_root --PPLUGINS=bcal_hists,cdc_hists,tof_hists ET:GlueX 5/25/10JANA - Lawrence - CLAS12 Software Workshop7

Associated Objects 5/25/10JANA - Lawrence - CLAS12 Software Workshop8 Cluster (calorimeter) Cluster (calorimeter) Hit track MC generated Hit object associated objects o A data object may be associated with any number of other data objects having a mixture of types vector clusters; loop->Get(clusters); for(uint i=0; i<clusters.size(); i++) { vector hits; clusters[i]->Get(hits); // Do something with hits } o Each data object has a list of “associated objects” that can be probed using a similar access mechanism as for event-level object requests

9/27 Configuration Parameters MIN_SEED_HITS = 4; MAX_STEP_SIZE = 3.0; // cm gPARMS->SetDefaultParameter("TRKFIND:MIN_SEED_HITS",MIN_SEED_HITS); gPARMS->SetDefaultParameter("TRK:MAX_STEP_SIZE", MAX_STEP_SIZE, " Maximum step size in cm to take when swimming a track with adaptive step sizes "); in a factory’s init method one might write … Variables are data members of factory class Value may be overwritten if user specifies a value at run time NEW: Optional 3 rd argument allows description to be stored with parameter 5/25/10JANA - Lawrence - CLAS12 Software Workshop  Parameters can be set via command line or configuration file  Complete list of parameters can be dumped using option --dumpconfig  Parameters can read in using option --config=filename

5/25/1010JANA - Lawrence - CLAS12 Software Workshop Example Configuration Parameter dump file

5/25/1011JANA - Lawrence - CLAS12 Software Workshop janadot plugin

A closer look at janadot 5/25/1012JANA - Lawrence - CLAS12 Software Workshop

… and in closing … Additional features: – janaroot plugin for auto-magical generation of ROOT trees from data objects – janactl plugin allows for remote control and monitoring of process health via cMsg – Calibration/Conditions DB interface with working Web Service implementation ( doi: / /219/4/ ) – XML geometry interface with integrated Xpath parser – Thread safe stream logging support 5/25/10JANA - Lawrence - CLAS12 Software Workshop13 doi: / /119/4/042018

Backup Slides 5/25/10JANA - Lawrence - CLAS12 Software Workshop14

5/25/10JANA - Lawrence - CLAS12 Software Workshop $US/MB Memory Prices trend: ÷2.5 every 2 years trend: ×2.4 every 2 years Memory Requirements

5/25/10JANA - Lawrence - CLAS12 Software Workshop16

I/O Scaling 5/25/10JANA - Lawrence - CLAS12 Software Workshop17 Multiple processes simultaneously reading and writing to the same local disk will cause the disk head to thrash, ultimately leading to an I/O bottleneck Multiple threads will stream events from a single file leading to much less competition for the head position

18/27 Configuration Parameters 5/25/10JANA - Lawrence - CLAS12 Software Workshop