1 / 37

Work supported by EU RP6 project JRA1 FutureDAQ RII3-CT-2004-506078

D ata A cquisition B ackbone C ore Jörn Adamczewski, Hans G.Essel , Nikolaus Kurz, Sergey Linev GSI, Experiment Electronics: Data Processing group. Again: motivation and use cases Again: system design and achievments since July (Huelva) New: MBS application as example

minda
Download Presentation

Work supported by EU RP6 project JRA1 FutureDAQ RII3-CT-2004-506078

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Data Acquisition Backbone Core Jörn Adamczewski, Hans G.Essel, Nikolaus Kurz, Sergey LinevGSI, Experiment Electronics: Data Processing group Again: motivation and use cases Again: system design and achievments since July (Huelva) New: MBS application as example New: performance measurements (optional) To do Work supported by EU RP6 project JRA1 FutureDAQ RII3-CT-2004-506078 J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  2. Driving forces for DABC Requirements • build events over fast networks • handle triggered or self-trigger front-ends • process time stamped data streams • provide data flow control (to front-ends) • connect (nearly) any front-ends • provide interfaces to plug in application codes • connect MBS readout or collector nodes • be controllable by several controls frameworks 2004 → EU RP6 project JRA1 FutureDAQ* 2004 → CBM FutureDAQ for FAIR Intermediatedemonstrator 1996 →MBS future 50 installations at GSI, 50 external http://daq.gsi.de Use cases • Detector tests • FE equipment tests • Data transport • Time distribution • Switched event building • Software evaluation • MBS event builder • General purpose DAQ Data Acquisition Backbone Core * RII3-CT-2004-506078 • Some use cases J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  3. Use case example: Frontend components test FE Front end board: sampling ADCs, clock distribution FE FE: Frontend board ABB: Active Buffer board 2.5 GBit/sbi-directional (optical) link: data, clock • The goal: • Detector tests • FEE tests • Data flow tests Active Buffer board *: PCI express card ABB PCIe PCIe PC * A.Kugel, G.Marcus, W.Gao, Mannheim University Informatics V J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  4. GE switch Use case example: Frontend components test FE Front end board: sampling ADCs (4*4), clock distribution FE FE: Frontend board DC: Data combiner board ABB: Active Buffer board GE: Gigabit Ethernet IB: InfiniBand MBS: MultiBranchSystem 2.5 GBit/sbi-directional (optical) link: data, clock *8 DCB Data collector boards, clock distribution to FE DC 2.5 GBit/s data links *4 • The goal: • Investigate critical technology • Detector tests • Replace existing DAQ Gigabit Ethernet ABB Active Buffer board: PCI express card ABB PCIe PCIe PC PC 8-20 PCs dual quad MBS Scales up to 10k channels, 160 CPUs bidirectional event building IB switch J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  5. Use case example: simple MBS DABC PC MBS frontend input Triggerbus MBS frontend eventbuilder archive TCP input J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  6. Use case example: complex MBS DABC PC MBS frontend input eventbuilder Triggerbus MBS frontend sender GE PC GE analysis archive PC sender eventbuilder TCP archive input GE: Gigabit Ethernet • DABC structure J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  7. DABC design: global overview DABC PC datainput sorting tagging filter analysis frontendDataCombinerr frontendReadout scheduler GE frontendother IB PC PC analysis archive scheduler sorting tagging filter analysis datainput archive GE: Gigabit Ethernet IB: InfiniBand • DABC data flow J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  8. DABC design: Software objects of data flow engine A module processes data of one or several data streams. Data streams propagate through ports, which are connected bytransportsand devices Module manager DABC Module Bufferqueue port port process Bufferqueue Transport Transport Central data managerMemory pools Device Device PCIboard File J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  9. DABC design: Software objects of data flow engine A module processes data of one or several data streams. Data streams propagate through ports, which are connected bytransportsand devices Module manager DABC Module DABC Module port port process process port port Central data managerMemory pools Bufferqueue Bufferqueue locally (by reference) Transport Transport Network Device Device J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  10. DABC design: Threads and synchronization Commands are synchronized with the data flow through the ActionEvent manager Module thread Command ActionEvent manager Recource granted DABC Module MainLoop ProcessCommand Device thread ActionEvent manager Transport & Queue A device, i.e. socket device controls one port (transport). Once a queue buffer is filled, the transport signals the ActionEvent manager, which in turn calls the MainLoop function of the associated module, orIf MainLoop was waiting for resource or buffer, it continues. J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  11. DABC design: XDAQ* Infrastructure DABC core decoupled from XDAQ environment! Node XDAQ Executive (process, addressspace) Web server (SOAP), DIM** server XDAQ Application (thread), infospace DABC Core (threads) * Standard DAQ framework for LHC CMS experiment Orsini, Gutleber http://xdaqwiki.cern.ch ** DIM: Distributed Information Management System, CERN J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  12. DABC design: Controls & monitoring communication DABC core decoupled from XDAQ environment! XDAQ Executive (process, addressspace) Web browser Web server (SOAP) SOAP client: Java GUI DIM server DIM client: Java GUI LabView GUI EPICS GUI XDAQ Application State machine Infospace* DABC Core Modules command queue GRIDCC * Infospace: remotely accessible parameters • MBS connection J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  13. TCP TCP MBS topologies n x m multiple EBs EB hierarchy Memorymapped bus < 20 MByte/s Eventbuilder 1 Readout 1 Readout Triggerbus Eventbuilder Triggerbus Readout Readout n Eventbuilder m Readout Eventbuilder Time stamped (20 ns) EB data transport Readout Eventbuilder Monitor (analysis) Timebus Timesorter Eventbuilder Archive, RFIO Eventbuilder Readout Eventbuilder Control Node TCP J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  14. Eventbuilder Eventbuilder MBS example topology Detector Detector Detector Detector Triggerbus Readout ADC ADC Readout ADC ADC Readout ADC ADC Readout ADC ADC ADC ADC ADC ADC Trigger ADC Trigger ADC Trigger ADC Trigger ADC Crates Network Multi Branch System GSI Standard J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  15. Task command threadworking threadmessage thread MBS node control and monitor MBS node Commands handled by threads Execution maybe in working thread Message thread maybe not needed commands (text) Task asynchronous External control Memory DAQstatus Dispatcher on request Statusserver Task publish DIM server Messageserver asynchronous messages (text) J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  16. MBS GUI (monitor) J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  17. Sender MBS data channel to DABC, first idea Poll/yield Subevent pipe Task Slots Trigger typeLocal event counternot in subevent Copy/send Task MBSReadout Buffer header Item header (Trigger, counter) Buffer1 Item data(subevent) Item header TriggerEvent interrupt Item data Buffer2(full) TCP DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  18. MBS data channel to DABC, as implemented Readout Subevent pipe Buffers Collector Transport Subevent pipe DABC Readout J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  19. MBS Upgrade for DABC event builder • General upgrades • Large buffers (up to now 32K limit) in MBS. • Large buffers in LMD files. • DABC specific mode • MBS transport in DABC mode blocks, if no DABC is connected. • MBS transport sends variable sized buffers. • Using large buffers and one buffer per stream: no event spanning. • New LMD file format • No buffer structure. • File header, data elements, index table (random access). • No size limit ( > 2 GB). • Supported by event API. • To do • Java based MBS GUI upgrade to integrate into DABC GUI (DIM) • Event server in DABC • MBS application in DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  20. DABC: Local event building for MBS DABC PC MBS frontend input Triggerbus MBS frontend eventbuilder archive TCP input J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  21. DABC: Local event building for MBS MBS Device Transport DABC Module port port Combine port Transport Transport Device Device MBS File J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  22. DABC application: Local Mbs event builder DABC Device DABC Module DABC Device MbsFrontend MbsFrontend ()Create commands Register parameters CreateTransport (port) Create MbsRead MbsCombiner MbsCombiner ()Create commands Register parameters Create ports (n x input, 1x output) MainLoop () Wait input port 1...n Get empty buffer Loop: Add subevent ref. to buffer Size > max? Put buffer to port Return EndLoop ~MbsCombiner () MbsFile MbsFile ()Create commands Register parameters CreateTransport (port) Create MbsStore DABC Transport MbsRead MbsRead (port)Connect MBS transport Register port GetBufferSize () Return buffer size Read (buffer) Read header Read data Return ~MbsRead ()Disconnect MBS DABC Transport MbsStore MbsStore (port)Register port Write (buffer) Filesize > max? close/open Write fragments to file ~MbsStore ()Close last file Thread Thread Thread J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  23. DABC: Network event building for MBS DABC PC MBS frontend input eventbuilder Triggerbus MBS frontend sender GE archive PC sender eventbuilder TCP input GE: Gigabit Ethernet • DABC structure J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  24. DABC: Network event building for MBS MBS Second node Device Transport DABC Module DABC Module port port port port Sender Formatter port Local or over network DABC Module DABC Module port Transport port port port Receiver Combiner port Device Second node File J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  25. DABC application: Mbs event builder over network I DABC Module DABC Module DABC Device MbsCombiner MbsCombiner ()Create commands Register parameters Create ports (1 x input, 1x output) MainLoop () Wait input port 1 Get empty buffer Loop: Add data ref. to buffer Size > max? Put buffer to port Return EndLoop ~MbsCombiner () BNetSender BNetSender ()Create commands Register parameters Create ports (1 x input, n x output) MainLoop () Wait input port 1 Put buffer to next output port ~BNetSender () BNetNetworkDevice BNetNetworkDevice ()Create commands Register parameters CreateTransport (port) () Create BNetNetworkTransport DABC Transport BNetNetworkTransport NetNetworkTransport (port)Register port Write (buffer) Send fragments ~BNetNetworkTransport () Input as before Provided by DABC Provided by DABC Thread Thread Thread J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  26. DABC application: Mbs event builder over network II DABC Device DABC Module DABC Module BNetNetworkDevice BNetNetworkDevice ()Create commands Register parameters CreateTransport (port) Create BNetNetworkTransport MbsEventBuilder MbsEventBuilder ()Create commands Register parameters Create ports (1 x input, 1x output) MainLoop () Wait input port 1 Get empty buffer Build event from input list Put event to buffer Put buffer to port (file store) ~MbsEventBuilder () BNetReceiver BNetReceiver ()Create commands Register parameters Create ports (n x input, 1 x output) MainLoop () Wait for all input ports Add input buffers to output list Put list to output port ~BNetReceiver () DABC Transport BNetNetworkTransportBNetNetworkTransport (port)Register port Read (buffer) Receive fragments ~BNetNetworkTransport () Provided by DABC Provided by DABC Thread Thread Thread • DABC setup J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  27. DABC Setup • Configuration via XML files • ApplicationPlugins (entry point to application libraries) • Call application factories • Application factory classes • CreateDevice • CreateModule • Device->CreateTransport ( Module->GetPort ) • ConnectPorts ( Module1->GetPort, Module2->GetPort ) • CreateMemoryPool • State commands • Startup • Initialize • Run / Stop • Hold / Resume • Shutdown J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  28. DABC: Commands and parameters • CommandsObjects with command description (XML) and ProcessCommand function.Name string: / server / node / application / type.thread.name • server: DIM namespace • node: name:ID (port) • application: namespace::name:ID • type: DEV, MOD, POOL, PLUG • thread: name of module or device or... • name: command (description by related parameter record) • ParametersSame name structure as above • Parameter recordsRecognized by GUI, graphical presentation • Status • Rate • Histogram • Command description • and more J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  29. Java GUI DIM based, run time built from services • IB performance J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  30. DABC further tasks Todo • Controls, GUI • Data formats • Combiner/Time sort • Event building • Final Programming Interface implementation • Final packaging • MBS GUI • Documentation Achieved • Infrastructure • Data flow engine • Very first (0.1) Java GUI • PCI support • MBS event building • Final Programming Interface definitions J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  31. Resources and time • People of data processing groupH.G.EsselJ.AdamczewskiN.KurzS.Linev • People of controls groupmaybe one FTE • People from CBMhopefully • CBM requires in 2008 a data taking systemStart with small system, grow on demandPreliminary controls • NUSTAR ?In discussion • MBS a first test bed J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  32. Network test performance 4x4 bidirectional J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  33. Scaling of performance (FZK) Degration only with large buffers We thank Frank Schmitz, Ivan Kondov and Project CampusGrid at the Institute for Scientific Computing, Forschungszentrum Karlsruhe, for providing resources and support for the large-scale measurements. J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  34. Scaling of performance (Mainz) We thank Klaus Merle and Markus Tacke at the Zentrum für Datenverarbeitung der Johannes Gutenberg Universität, Mainz,for providing resources and support for the large-scale measurements. J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  35. Scaling of performance (Mainz) We thank Klaus Merle and Markus Tacke at the Zentrum für Datenverarbeitung der Johannes Gutenberg Universität, Mainz,for providing resources and support for the large-scale measurements. J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  36. input plugin Network DABC: Full event building example measurement Node 4*Readout Data generators combiner sender 4 nodes, all to all 6 different modules Node receiver builder analysis J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

  37. Dataflow engine and event building rate 4x4 nodes J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

More Related