Presentation is loading. Please wait.

Presentation is loading. Please wait.

First release of Data Acquisition Backbone Core J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev GSI Darmstadt, Germany Experiment Electronics: Data.

Similar presentations


Presentation on theme: "First release of Data Acquisition Backbone Core J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev GSI Darmstadt, Germany Experiment Electronics: Data."— Presentation transcript:

1 First release of Data Acquisition Backbone Core J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev GSI Darmstadt, Germany Experiment Electronics: Data processing group

2 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev FAIR accelerators p-bar target p-linac Super- FRS SIS100 SIS300 HESR CR RESR Unilac SIS 100 NESR HESR Antiproton Prod. Target SIS18 Upgrade CR RESR p-linac SIS 300 Accelerator SuperFRS PANDA Atomic Phys. Plasma Phys. Low Energy Exp. High Energy Exp. NESR Exp. FLAIR Atomic Physics HADES & CBM Experiment FAIR baseline* *FAIR Monthly, April 2009

3 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev CBM experiment at FAIR Dipole magnet Ring Imaging Cherenkov Detector Transition Radiation Detectors Resistive Plate Chambers (TOF) Electro- magnetic Calorimeter Silicon Tracking System Projectile Spectator Detector (Calorimeter) Micro Vertex Detector

4 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev DAQ architectures Detector FEE buffer Readout buffer Switch Processor farm Storage Self-triggered Front-end all hits shipped to DAQ. Data push architecture High-throughput Event building First event selection done in processor farm. Readout buffer outside radiation area. Many Gbyte storage easily possible. Allows L1 decision times of ms Fast links Conventional DAQ L1 trigger HLT FLES CBM DAQ

5 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev InfiniBand performance studies + 25% > 500 MBytes/s bidirectional thanks to Klaus Merle and Markus Tacke at the Zentrum für Datenverarbeitung in Uni Mainz

6 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Hardware tests nXYTER, 128-channel self-triggered readout chip with few ns time resolution, DEFNI collaboration CBM Readout controller (ROC), Kirchhoff Institut für Physik, Heidelberg

7 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Future DAQ requirements Flexible – adopt different kinds of soft- and hardware Compact – use only necessary code Scalable – from small detector tests to 100- nodes clusters Performing – low framework overhead Multiprocessing & multithreading

8 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Multithreading Thread1 void MainLoop() { while (IsWorking()) { … writeSomething(); … } Thread2 void MainLoop() { while (IsWorking()) { … doSomething(); … } Thread3 void MainLoop() { while (IsWorking()) { … calcSomething(); … } Thread4 void MainLoop() { while (IsWorking()) { … readSomething(); … } Deadlock! runs

9 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Multithreading in DABC Thread1Thread2Thread3Thread4 Processor Events queues Events Timeouts Commands Processor Events queues Events Timeouts Commands Processor Events queues Events Timeouts Commands Processor Events queues Events Timeouts Commands Processor ev1 ev2 ev3 runs

10 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev dabc::Buffer References Memory management dabc::Buffer References dabc::MemoryPool Memory blocks Multiple references on resources (blocks) Copy of reference without copy of data Zero copy transfer: PCI/DMA buffer IB/DMA References dabc::Buffer

11 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev User code - modules dabc::Module dabc::PoolHandle dabc::Timer dabc::Port dabc::Parameter dabc::Module provides: I/O ports for communications Pools handles to request memory Timers for timeouts processing Configuration & monitoring parameters

12 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Two kind of modules: sync & async CreatePoolHandle("Pool", 2048, 1); CreateInput("Input", Pool(), 5); CreateOutput("Output0", Pool(), 5); CreateOutput("Output1", Pool(), 5); fCnt = 0; void UserModule::MainLoop() { while (ModuleWorking()) { dabc::Buffer* buf = Recv(Input()); if (fCnt++ % 2 == 0) Send(Output(0), buf); else Send(Output(1), buf); } void UserModule::ProcessIOEvent(dabc::Port*) { while (Input()->CanRecv() && Output(fCnt % 2)->CanSend()) { dabc::Buffer* buf = Input()->Recv(); Output(fCnt++ % 2)->Send(buf); } Explicit loop in ModuleSyncEvent processing in ModuleAsync Constructors mainly the same UserModule Pool Input Output0 Output1 dabc::Module dabc::ModuleSyncdabc::ModuleAsync

13 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Transport & device – dataflow UserModule Pool Input Output0 Output1 File UserModule Pool Input Output0 Output1 UserModule Pool Input Output0 Output1 File DataServer NetworkDevice PCIeDevice node1 node2 Transport Transport: manages buffers queue runs in own thread decouples user code from actual transport functionality Device: represents hardware items manages several transports

14 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Many other features Central dabc::Manager class Configuration with XML files Controlling interface and GUI dabc::Commands Factories (plugins) architecture Application and state machine Event building network (BNET)

15 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev DABC release 1.0 Controls core-test net-test bnet-test mbs bnet-mbs ROC Slim (batch) DIM Java GUI ApplicationsPlugins socket IB verbs* bnet mbs bnet-mbs ROC/udp ROC/ABB* Core Plugins: Implementation of device/transports and experiment specific data handling code (programmers) Applications: Mainly setup or testing programs (users) DABCDABC Download via ROC: CBM Readout Controller board ABB: Active buffer board (PCIe) IB: InfiniBand MBS: Multi Branch System (GSI DAQ) * external packages needed

16 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev DABC in CBM test beam Combiner Sorter raw data calibrated data Input0 Input1 Input2 Output0 Output1 Input0 Output0 Output1 roc::Readout online go4 monitor STS GEM

17 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev DABC as access layer to ROC file I/O online monitor ROC/udp plugin ROC/PCIe plugin User access layer DABCDABC Users scripts, GUIs optic PCIe Ethernet

18 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Planned CBM beam tests Readout boards FEEDetectors Combiner boards Commodity PCs CopperOpticInfiniBand

19 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Event building network test Rnd PCIe Rnd Event builders Senders Receivers Readouts Controller Worker1 Worker2 Worker3 Worker4 InfiniBand Libs for all applications Defaults for all workers Explicit config for PCIe board

20 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Conclusion DABC is general-purpose DAQ framework Can be used for different purposes – from small detectors tests to multi-nodes application Through its plugin architecture can be easy extended to specific needs Open for improvements and new ideas

21 DABCDABC J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev Thanks!


Download ppt "First release of Data Acquisition Backbone Core J. Adamczewski-Musch, H.G. Essel, N. Kurz, S. Linev GSI Darmstadt, Germany Experiment Electronics: Data."

Similar presentations


Ads by Google