Upload
evangelina-zaro
View
37
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
1
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Work supported by EU RP6 project JRA1 FutureDAQ RII3-CT-2004-506078
Data Acquisition Backbone CoreJö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
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
2
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
CBM data acquisition plan
data dispatcher
FEEdeliver time stamped
data
CNetcollect data into buffers
Detector Detector Detector
collect
~50000 FEE chips
event dispatcher
switching networkBNetsort time stamped data
~1000 links a 1 GB/sec
HNethigh level selection
to high level computing
and archiving~1 GB/sec Output
processing
PNetprocess events
level 1&2 selection
subfarm subfarm subfarm ~100 subfarms
~100 nodes per subfarm
~10 dispatchers → subfarm
~1000 collectors
~1000 active buffers
TNettime distribution
W.F.J.Müller, 2004
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
3
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
GE switch
PC
ABBPCIe
DCB
FE
IB switch
FE
DC
Front end board: sampling ADCs (4*4), clock distribution
Data collector boards, clock distribution to FE
Active Buffer Board*: PCI express card
8-20 PCs dual quadPC
ABBPCIe
*8
*4
bidirectionalevent building
2.5 GBit/s bi-directional (optical) link: data, clock
2.5 GBit/s data links
Gig
abit
Eth
ern
et
FE: Frontend boardDC: Data combiner boardABB: Active Buffer boardGE: Gigabit EthernetIB: InfiniBandMBS: MultiBranchSystem
MBS
CBM use case: Frontend components test
DABC
•A.Kugel, G.Marcus, W.Gao, •Mannheim University Informatics V
DABC PCIe support
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
5
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
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
CBM
GSI
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
6
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
datainput
sortingtaggingfilteranalysis
datainput
sortingtaggingfilteranalysis
IB
PC
PC
GE
analysisarchive
archive
PC
GE: Gigabit EthernetIB: InfiniBand
frontendDataCombinerr
frontendother
frontendReadout scheduler
scheduler
DABC
DABC design: functional overview
DABC data flow
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
7
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Data flow engine: Software objects and threads (1)
Device
Transport
Central data managerMemory pools
DABC Module
portport process
Transport
Device
PCIboard
DABC Manager
File
A module processes data of one or several data streams.Data streams propagate through ports, which are connected by transports and devices
Bufferqueue
Bufferqueue
separate threads
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
8
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Data flow engine: Software objects and threads (2)
DABC Module
port
port
DABC Module
port
port
process process
Device
Transport
Device
Transport
Network
DABC Manager
locally (by reference)
A module processes data of one or several data streams.Data streams propagate through ports, which are connected by transports and devices
Central data managerMemory pools BufferqueueBufferqueue
separate threads
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
9
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Object organisation and Plug-in mechanism
DABC ManagerObject registryControls
interface
SocketDevice
Commands ParametersModulesDevices Plugins
Memory Pools
XDAQ controlsmonitor
xml-configurationset up
Event builder modules
user modules..
Bnet modules
MBSDevice
connect
createBNet-Plugin
configuration
Application Plugins
configuration
usercommands define
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
10
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Controls interface: Generic finite state machine
DoConfigureDoEnable DoStart
DoStop
DoHaltDoHalt
DoHaltF X
H C E R
DoError
• 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)
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
12
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Controls with XDAQ runtime environment
XDAQ Executive (process, addressspace)
Web server (SOAP)
DIM client:Java GUILabView GUIEPICS GUI
SOAP client:Java GUI
Infospace*
XDAQ Application
Modules command queue
DABC Core
DIM server
State machine
Web browser
GRIDCC
* Infospace: remotely accessible parameters
DABC core decoupled from XDAQ environment!
MBS connection
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
13
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
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
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
14
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
DEMO with MBS
• MBS upgrade for DABC• DABC plugins• Control standard stand alone MBS with DABC GUI• Control MBS frontends with DABC event builder
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
15
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
• 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 Upgrade for DABC event builder
MBS application in DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
16
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
inputeventbuilder
input
eventbuilder
GE
GE: Gigabit Ethernet
MBS frontend
MBS frontendsender
sender
TCP
DABC structure
Demo example: Network event building for MBS
Eve
nt g
ener
ato
r
TCP
No commen trigger for demo
LynxOS
Linux PCs
x86-7
x86g-4
lxi013
lxi014
lxi015
lxi016
controller
lxg0517GUI
DIM, Java
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
18
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Device
Transport
DABC Module
portFormatter
File
Transport
Device
MBS
port
Demo example: DABC side, MBS plugins
DABC Moduleport
Senderport
DABC Module
portReceiverport
DABC Module
portEventBuilderport
port
port
Second node
Second node
Local or over network
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
19
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
MbsRead
MbsRead (port) Connect MBS transport Register port
GetBufferSize () Return buffer size
Read (buffer) Read header Read data Return
~MbsRead () Disconnect MBS
MbsFrontend
MbsFrontend () Create commands Register parameters
CreateTransport (port) Create MbsRead
DABC Device
DABC Transport
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 Module
Thread Thread
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 ()
DABC Module
Thread
Demo example: DABC side, MBS plugins
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
22
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Emergency
Just in case the DEMO does not work!
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
23
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Launch MBS
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
24
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Startup and configure MBS
MBS DIM servers
MBS rate meters
MBS nodes and tasks
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
25
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
MBS nodes and tasks running
Start event generator starts acquisition
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
26
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Set MBS as DABC client
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
27
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
MBS stops and waits for DABC
DABC Launcher
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
28
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Launch DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
29
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Configure and enable DABC
DABC DIM servers
Rates of DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
30
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Start DABC
More rates of DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
31
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Stop MBS
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
32
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Stop DABC
Start MBS
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
33
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Configure and enable DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
34
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Start DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
35
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
36
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Commands of DABC and MBS
Output of DABC and MBS
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
37
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Full parameter table of DABC and MBSParameters can be set here, if not locked
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
38
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Shut down DABC
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
39
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Shut down MBS
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
40
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
Shut down MBS servers
26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev
41
DABC
Data Acquisition Backbone Core http://wiki.gsi.de/DABC
All down!