360 likes | 483 Views
D ata A cquisition B ackbone C ore Jörn Adamczewski , Hans G.Essel, Nikolaus Kurz, Sergey Linev GSI, Experiment Electronics: Data Processing group. Motivation and use cases Core design: dataflow, modules, manager object Application plug-in mechanism Controls and configuration interface
E N D
Data Acquisition Backbone Core Jörn Adamczewski, Hans G.Essel, Nikolaus Kurz, Sergey LinevGSI, Experiment Electronics: Data Processing group Motivation and use cases Core design: dataflow, modules, manager object Application plug-in mechanism Controls and configuration interface Status and Outlook Presentation: DABC live demo Work supported by EU RP6 project JRA1 FutureDAQ RII3-CT-2004-506078 J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Detector Detector Detector FEE deliver time stamped data ~50000 FEE chips ~1000 collectors CNet collect data into buffers collect ~1000 active buffers data dispatcher TNet time distribution ~1000 links a 1 GB/sec switching network ~10 dispatchers →subfarm BNet sort time stamped data event dispatcher subfarm subfarm subfarm PNet process events level 1&2 selection ~100 subfarms ~100 nodes per subfarm processing HNet high level selection to high level computing and archiving ~1 GB/sec Output CBM data acquisition plan W.F.J.Müller, 2004 J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
GE switch CBM use case: 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 Gigabit Ethernet ABB ABB DABC PCIe support PCIe PCIe PC PC 8-20 PCs dual quad Active Buffer Board*: PCI express card MBS bidirectional event building • A.Kugel, G.Marcus, W.Gao, • Mannheim University Informatics V IB switch DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
CBM GSI Motivation for DABC Use cases: • Detector tests • FE equipment tests • Data transport tests • Time distribution tests • Switched event building • MBS event builder Requirements: • build events over fast networks • triggered or self-triggered front-ends • time stamped data streams • data flow control (to front-ends) • connect (nearly) any front-ends • interface for application plug-in code • connect MBS readout or collector nodes • interface for several controls frameworks => DABC for CBM DAQ testing and as future „general purpose“ DAQ system J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
DABC design: functional 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
separate threads Data flow engine: Software objects and threads (1) A module processes data of one or several data streams. Data streams propagate through ports, which are connected bytransportsand devices DABC 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
separate threads Data flow engine: Software objects and threads (2) A module processes data of one or several data streams. Data streams propagate through ports, which are connected bytransportsand devices DABC 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
create BNet-Plugin Bnet modules connect XDAQ controls monitor Event builder modules Application Plugins user modules.. user commands MBSDevice define configuration set up xml-configuration configuration Object organisation and Plug-in mechanism DABC Manager Controls interface Object registry Memory Pools Plugins Devices Modules Commands Parameters SocketDevice J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
DoError DoHalt F X H C E R DoStop DoEnable DoStart DoConfigure DoHalt DoHalt Controls interface: Generic finite state machine • State machine is defined by controls interface of DABC core • ApplicationPlugins implement state transition actions („user code“) • Nodes in B-net may set up state machine hierarchy: (e.g. 1 master node, n worker nodes) J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Controls with XDAQ runtime environment 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
Summary and Outlook Achieved • Core infrastructure • Data flow engine • XDAQ runtime environment • Generic Java GUI • PCI(e) support • MBS event building • Programming Interface definitions Todo • Controls, GUI c't • Data formats • Combiner / time sort • Event building • Programming Interface implementation c't • Configuration DB • Packaging and deployment • Documentation J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
DEMO with MBS • MBS upgrade for DABC • DABC plugins • Control standard stand alone MBS with DABC GUI • Control MBS frontends with DABC event builder J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
MBS Upgrade for DABC event builder • General upgrades • Large buffers (up to now 32K limit) in MBS. • Large buffers in LMD files. • Remote control of MBS via DIM by DABC Java GUI • 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 • Event server in DABC • MBS application in DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
GUI Demo example: Network event building for MBS Linux PCs lxi013 LynxOS lxi015 TCP MBS frontend input eventbuilder x86-7 sender MBS frontend x86g-4 DIM, Java GE lxg0517 lxi016 lxi014 Event generator sender eventbuilder controller TCP input No commen trigger for demo GE: Gigabit Ethernet • DABC structure J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Demo example: DABC side, MBS plugins 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 EventBuilder port Device Second node File J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Demo example: DABC side, MBS plugins DABC Module DABC Device DABC Module MbsFrontend MbsFrontend ()Create commands Register parameters CreateTransport (port) Create MbsRead 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 () MbsFormatter MbsFormatter ()Create commands Register parameters Create ports (1 x input, 1x output) MainLoop () Wait input port 1 Get empty buffer Loop: Add subevent ref. to buffer Size > max? Put buffer to port Return EndLoop ~MbsFormatter () DABC Transport MbsRead MbsRead (port)Connect MBS transport Register port GetBufferSize () Return buffer size Read (buffer) Read header Read data Return ~MbsRead ()Disconnect MBS Thread Thread Thread J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Emergency Just in case the DEMO does not work! J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Launch MBS J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Startup and configure MBS MBS nodes and tasks MBS rate meters J.Adamczewski, H.G.Essel, N.Kurz, S.Linev MBS DIM servers
Start event generator starts acquisition MBS nodes and tasks running J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Set MBS as DABC client J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
DABC Launcher MBS stops and waits for DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Launch DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Configure and enable DABC Rates of DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev DABC DIM servers
Start DABC More rates of DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Stop MBS J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Start MBS Stop DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Configure and enable DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Start DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Commands of DABC and MBS Output of DABC and MBS J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Full parameter table of DABC and MBS Parameters can be set here, if not locked J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Shut down DABC J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Shut down MBS J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
Shut down MBS servers J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
All down! J.Adamczewski, H.G.Essel, N.Kurz, S.Linev