36
26.2.08 J.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 Core 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 Status and Outlook Presentation: DABC live demo

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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!

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

23

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

Launch MBS

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

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

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

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

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

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

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

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

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

28

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

Launch DABC

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

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

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

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

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

31

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

Stop MBS

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

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

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

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

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

34

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

Start DABC

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

35

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

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

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

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

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

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

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

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

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

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

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

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

26.2.08J.Adamczewski, H.G.Essel, N.Kurz, S.Linev

41

DABC

Data Acquisition Backbone Core http://wiki.gsi.de/DABC

All down!