Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT -

Slides:



Advertisements
Similar presentations
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2004 Go4 v2.8 Analysis Design.
Advertisements

GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GGO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4G.
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Use of ROOT in the D0 Online Event Monitoring System Joel Snow, D0 Collaboration, February 2000.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
ROOT An object oriented HEP analysis framework.. Computing in Physics Physics = experimental science =>Experiments (e.g. at CERN) Planning phase Physics.
QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Proactor Pattern Venkita Subramonian & Christopher Gill
X-WindowsP.K.K.Thambi The X Window System Module 5.
Go4 v3 - J.Adamczewski, H.G.Essel, S.Linev IT/EE Palaver Go4 version 3.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
Developing Applications with the CSI Framework A General Guide.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 5: Threads Overview Multithreading Models Threading Issues Pthreads Solaris.
13 June 2001M.Al-Turany/Root20011 Mohammad Al-Turany Go4 GSI Darmstadt 13 June 2001.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GGO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4G.
Online Monitoring System at KLOE Alessandra Doria INFN - Napoli for the KLOE collaboration CHEP 2000 Padova, 7-11 February 2000 NAPOLI.
Threads. Readings r Silberschatz et al : Chapter 4.
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
S.Linev: Go4 - J.Adamczewski, H.G.Essel, S.Linev ROOT 2005 New development in Go4.
1 Chapter Overview Monitoring Access to Shared Folders Creating and Sharing Local and Remote Folders Monitoring Network Users Using Offline Folders and.
Online Data Monitoring Framework Based on Histogram Packaging in Network Distributed Data Acquisition Systems Tomoyuki Konno 1, Anatael Cabrera 2, Masaki.
И ЯN R ИI HADES Collaboration Meeting XIX July at GSI in Darmstadt Progress in offline and online QA Offline-QA New dev-s in hhistory Online-QA.
GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GGO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4GO4G.
Go4 v2.2 Status & Overview CHEP 2003
Applications Active Web Documents Active Web Documents.
Chapter 13: I/O Systems.
Section 2.1 Section 2.2 Identify hardware
Module 12: I/O Systems I/O hardware Application I/O Interface
Chapter 13: I/O Systems Modified by Dr. Neerja Mhaskar for CS 3SH3.
Data Transport for Online & Offline Processing
Advanced Topics in Concurrency and Reactive Programming: Asynchronous Programming Majeed Kassis.
Distributed object monitoring for ROOT analyses with Go4 v.3
MVC and other n-tier Architectures
Event Driven Programming Dick Steflik
Lecture 21 Concurrency Introduction
INTER-PROCESS COMMUNICATION
KERNEL ARCHITECTURE.
Client-Server Interaction
Chapter 3: Windows7 Part 2.
CSCI 315 Operating Systems Design
Modified by H. Schulzrinne 02/15/10 Chapter 4: Threads.
I/O Systems I/O Hardware Application I/O Interface
Chapter 3: Windows7 Part 2.
Operating System Concepts
13: I/O Systems I/O hardwared Application I/O Interface
CS703 - Advanced Operating Systems
CS 501: Software Engineering Fall 1999
Software models - Software Architecture Design Patterns
Multithreaded Programming
Prof. Leonardo Mostarda University of Camerino
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
AIMS Equipment & Automation monitoring solution
Go4 GUI and GSI's QtROOT interface
The Go4 eventloop framework: analysis steps
Chapter 13: I/O Systems I/O Hardware Application I/O Interface
Chapter 4: Threads.
Go4 GUI and GSI's QtROOT interface
Chapter 13: I/O Systems.
Analysis Organization: Go4 Analysis Steps and TTask
J. Adamczewski, M. Al-Turany, D. Bertini, H.G. Essel
Module 12: I/O Systems I/O hardwared Application I/O Interface
Message Passing Systems
Presentation transcript:

Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT - GSI Online Offline Object Oriented Go4 Multithreaded Inter-Task Communication with ROOT - writing non-blocking GUIs J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel 04.09.01 Go4 - http://go4.gsi.de

Contents Go4: Software layers and architecture Go4 Requirements Multithreading (threadmanager library) Inter task communication (taskhandler library) Example: GUI task and analysis task GUI implemetation with ROOT-Qt Interface Demo (movie) Summary 04.09.01 Go4 - http://go4.gsi.de

ROOT Framework Go4 Package Layers Go4 Event Analysis Loop (Client) Go4 GUI (Server) Go4TaskHandler Qt Library Go4ThreadManager Interface TThread ROOT Framework 04.09.01 Go4 - http://go4.gsi.de

On-line Analysis with non blocking GUI Requirements of Go4 On-line Analysis with non blocking GUI Analysis based on ROOT Analysis runs permanently Analysis updates graphics asynchronously GUI is never blocked GUI controls and steers analysis 04.09.01 Go4 - http://go4.gsi.de

Threadmanager library Problems to solve Multithreading necessary ROOT classes not inherently thread save  lock object creation and ROOT services  nonblocking GUI and analysis: different tasks Communication between tasks Threadmanager library Taskhandler library 04.09.01 Go4 - http://go4.gsi.de

Go4 Multitasking system Only one working thread per task (object creation, memory allocation, ROOT system calls) Analysis and GUI in separate tasks (non blocking GUI, continuous analysis) Communication: raw socket transport (dedicated threads with TBuffer fields in TGo4Socket) Object streaming by ROOT (working thread uses TGo4Queue methods) 04.09.01 Go4 - http://go4.gsi.de

Functional overview GUI Data Loop Display Task (Server) Drawing Thread Logging Thread Useraction queue queue queue Launch Thread Task Handler Command Thread Data Thread Status Thread Connector Thread IP Network Data Loop Command Thread Data Thread Status Thread Task Handler Two tasks with each including threads and communicating via a transport implementation Display: GUI and X timer (for repeated requests, refresh) run in the main root gApplication loop; GUI callbacks send commands to analysis; Objects (e.g. histograms) are received from analysis by update thread; logger thread receives status information. Both threads and GUI share access to same graphics (Canvas, Listbox, Buttons..) Analysis: Event Loop runs as thread, same thread also executes dynamic commands (like histogram requests) and macros; Status thread sends current analysis state; Controlled from Display by Command thread: queues commands to Event Loop; may cancel/restart eventloop thread in case of latchup; controls a timer notify waiting for TCondition, which blocks the main root gApplication loop, since this showed to affect the thread stability (no TThread::Lock in TApplication). When root system loop is needed (thread restart, macro), block timer notify is released; next time it is blocked by condition wait again. => threadsave TApplication.Run in future? queue queue queue Analysis Tasks (Client 1,2,...) Work Thread Watcher Thread 04.09.01 Go4 - http://go4.gsi.de

 Go4 GUI Complex GUI Qt graphics library Rapid prototyping professional, powerful, free, tools (QtDesigner), well documented  Use ROOT and Qt together! no changes to ROOT sources Go4 GUI architecture: signal-slot mechanism (both Qt and ROOT) gui singleton: registry + dispatcher (modified mediator pattern) persistent status objects per window 04.09.01 Go4 - http://go4.gsi.de

Go4 GUI: Qt-ROOT interface QApplication TApplication QROOTApplication TQApplication Qt Eventloop QApplication::Exec() QTimer ROOT Eventloop TSystem::InnerLoop() TTimer TThread QWidget QWidget TSocket other... TQROOTCanvas QWidget TCanvas TRootGuiFactory TQRootGuiFactory TCanvasImp TQCanvasImp 04.09.01 Go4 - http://go4.gsi.de

Go4 GUI: Qt-ROOT interface Follows the general ROOT GUI ABC no changes in ROOT source necessary Inheritance from ROOT base classes TQRootGuiFactory (TRootGuiFactory) Qt Factory GUI components TQCanvasImp (TCanvasImp) creates a Qt independent main window (QMainWindow) sets TQRootCanvas as a central widget TQApplication (TApplication) ROOT environment set with a Qt GUI factory Inheritance from Qt base class QRootApplication (QApplication) enable Qt evt-loop to drive Qt based GUI applications call ROOT inner loop repeatedly to enable ROOT system events 04.09.01 Go4 - http://go4.gsi.de

Qt Designer screenshot 04.09.01 Go4 - http://go4.gsi.de

Using Qt designer 04.09.01 Go4 - http://go4.gsi.de

Go4 GUI design GUISingleton registry Display command dispatcher status mediator commands Display taskhandler server IP data to analysis register (dependency) update Qt GUI Widgets Status Slots Qt GUI Widgets Status Slots Root GUI Widgets Status Slots Qt GUI Widgets Status Slots 04.09.01 Go4 - http://go4.gsi.de

ready to use for any ROOT application Summary Go4 thread manager package Go4 task handler package Go4 Qt-ROOT interface ready to use for any ROOT application Client task could be analysis framework, slow ctrl,... GUI task can use Qt graphics library Go4 analysis framework and GUI is being under development... http://go4.gsi.de 04.09.01 Go4 - http://go4.gsi.de

Go4 demo monitored histograms ROOT canvas Control panel analysis status Here comes the sun ... local objects remote objects 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Initializing a remote analysis Control of analysis: run status, list object folders Monitor remote histograms continuously Get and update local object copies Working on local histograms (fit panel, save) ROOT TBrowser works in parallel Go4 Browser plots: superimpose, multiwindow 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de

Go4 demo regular ROOT TBrowser, works together with Qt 04.09.01 Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de

Go4 demo Here comes the sun ... 04.09.01 Go4 - http://go4.gsi.de