Improvement of the ALICE Online Event Display using OO patterns and parallelization techniques Mihai Niculescu (Institute of Space Science Romania) for ALICE experiment Amsterdam, CHEP 14-18 October 2013 1
A bit of History (1/2) ALICE Event Display ● (alieve) was mainly developed by Matevz Tadel and Alja Mrak-Tadel Experiment dependent: data ● loading and processing algorithms: – Detector geometry, simulation & reconstructed data – Raw and digits data – High-level trigger events – Visualization scripts Amsterdam, CHEP 14-18 October 2013 2
A bit of History (2/2) ● Experiment independent code was ported to ROOT (REVE) – GUI and OpenGL – now part as a ROOT module – Application core ● Management: obj-browsers, 3D scenes and viewers, events and event navigation ● Environment for CINT scripts – Visualization classes (geometry,extracted shape data, hits,clusters, tracks) Amsterdam, CHEP 14-18 October 2013 3
The Online Story ● In Online mode we want to be able to visualize events as they come, this brings coolness ● Also, proves as a good visual tool for debugging (acquisition, detector algorithms, reconstruction processing chain) ● Basically, in online mode: – 1. Fetch the raw data event – 2. Reconstruct it – 3. Display it – 4. go to 1 or exit if no more events Amsterdam, CHEP 14-18 October 2013 4
The Online Plot 146860 *Below same thing in words rec.C (Reconstruction) DIM client DIM server Fork process /process mngr Amsterdam, CHEP 14-18 October 2013 5
The Online Conflict ● AliEve (visualization) is coupled with reconstruction (data model) – CINT hooks in the reconstruction to call alieve: – No good design – AliEve GUI freezes while reconstruction runs ● Can't change viz. Options/params ● Can't take screenshots – If reconstruction crashes, so do the visualization (alieve) ● Only one single application (alieve) to visualize the online reconstructed data Amsterdam, CHEP 14-18 October 2013 6
The Online Climax ● Proposed solutions, make use of: – HLT Homer protocol ● Reliable & uses TSockets from ROOT – Network sockets ● Pure posix C API ● TSockets: ROOT network API ● ZeroMQ – Network file sharing environment Amsterdam, CHEP 14-18 October 2013 7
A bit about ZeroMQ library ● Intelligent and small socket library for messaging ● Very fast (8 M msg/sec, 30 micro sec latency) – “It's sockets on steroids” ● Many kinds of messaging patterns (Pub/Sub, Req/Rep, Req/Router, Dealer/Rep, Push/Pull, etc.) ● Licensed under LGPL ● Multiple transports (inproc, ipc,tcp,pgm) ● Multi-platform (Windows, Linux, Android,..) ● Automatically deals with socket failures - (re)connect ● Easy to learn and implement Amsterdam, CHEP 14-18 October 2013 8
Improvement of Online event display ● Created an event server with a GUI ● Listens for DIM messages ● contains an online reconstruction server in a separate thread – Reconstructs the incoming raw events – Create the TStreamerInfos of AliESDEvent – Serialize AliESDEvent – Send both to a 0MQ socket as a multi-part message ● Multiple clients can subscribe to this socket ● View is decoupled from model/controller Amsterdam, CHEP 14-18 October 2013 9
Future goals ● Implement the pattern REQUEST-REPLAY in order to fetch previous reconstructed events from the server ● Implement a superuser mode in order to bookmark/save interested events ● Serve events in a different data format (XML,...) to allow clients be independent of ROOT – Clients written with HTML5, iOS SDK, Android,... Amsterdam, CHEP 14-18 October 2013 10
Acknowledgements ● Peter Hristov (CERN) and Andrei Gheata (CERN) for all helpful comments/ideas ● Gerardo Ganis (CERN) for making sense of streamer infos ● Miguel Martinez Pedreira (CERN, office mate) for convincing me to use ZeroMQ Amsterdam, CHEP 14-18 October 2013 11
Thank you for your attention! Amsterdam, CHEP 14-18 October 2013 12
Recommend
More recommend