12
MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13 Feb 2013 Marcin Byszewski, MMDAQ overview 1 MMDAQ is the data acquisition software used by Micromegas ATLAS upgrade R&D during test beam periods and in the laboratories. Apart from what is presented here it also has satellite programs like offline event browser, data preparation (filtering, clusterisation).

MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Embed Size (px)

DESCRIPTION

13 Feb 2013Marcin Byszewski, MMDAQ overview3 Data validation and monitoring requires that we understand data format. Each new electronics type requires its own class representation Network Device, Chip, Channel

Citation preview

Page 1: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 1

MMDAQ

Content– Overview– Case study – adding support for VMM1 chips– Drawings (data flow, concurrency, error reporting,

scalability, monitoring)

13 Feb 2013

MMDAQ is the data acquisition software used by Micromegas ATLAS upgrade R&D during test beam periods and in the laboratories. Apart from what is presented here it also has satellite programs like offline event browser, data preparation (filtering, clusterisation).

Page 2: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 2

MMDAQDuring the design of the MMDAQ no assumptions were taken on electronics type or readout configuration.• Any combination of data sources (Chips, FEC , SRU)

– (multithreading, dynamic dispatch)• Event building on available variables

– (Trigger#, SRS Time Stamp, EoE FAFA frame)• Client - Server and Detached GUI

– (by interprocess communication)• Scalability

– (multithreading, data buffering design limiting locking)• XML Configuration

13 Feb 2013

Page 3: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 313 Feb 2013

Data validation and monitoring requires that we understand data format.Each new electronics type requires its own class representationNetwork Device, Chip, Channel

Page 4: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 4

Case study: integration of VMM1 During 2012 test beam runs we have acquired data from a heterogeneous readout system using the MMDAQ. It had to be adapted from reading SRS-FECs with 16 APV25 chips each (UDP protocol) to being able to read tracking information from VMM1 chips connected to BNL-DAQ boards and VMM1 trigger data from BNL-FPGA evaluation board.

Challenges and solutions were:• Synchronisation mechanism of data sources, and event building

– Trigger number embedded in data

• Handling of multiple sources of data - each VMM1 board is a UDP data source (= SRS-FEC), albeit with relatively low data rate– MMDAQ-FEC (MMDAQ representation of SRS-FEC) support multiple data sources to limit thread use

for low rate data sources

• VMM1 trigger evaluation board uses TCP protocol– Special MMDAQ-FEC for TCP protocol

13 Feb 2013

Page 5: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 5

Case study: integration of VMM1 • Multiple data sources support for MMDAQ-FEC classes

– Option 1: Each VMM1 board represented as MMDAQ-FEC in MMDAQ (many treads)

– Option 2: MMDAQ-FEC serves multiple VMM1 (one thread for many VMM1s)

13 Feb 2013

Configuration file Option 1:<fec id = "16"> <name>BNL16</name>

<ip>10.0.0.16</ip> <chip id = "0" type = "VMM1"> <name> VMM1.16.00 </name> </chip> </fec><fec id = "17"> ...

Configuration file Option 2:<fec id = "3"> <name>BNL</name> <ip>10.0.0.16</ip> <chip id = "16" type = "VMM1"> <name> VMM1.16.00 </name> </chip> <ip>10.0.0.17</ip> <chip id = "17" type = "VMM1"> <name> VMM1.17.00 </name> </chip>...

Page 6: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 6

Case study: integration of VMM1

13 Feb 2013

FEC APV25processing

FEC BNLprocessing

CSrsChipApv

NICUDPReceiver

Identify data sourceVerify data source

CSrsChipVmm

RootWriter

APV treeVMM tree

ApvChannel(processing)

VMMChannel(processing is no-op)

UDP packets

Support VMM1-BNL-DAQ:By providing 3 derived classes:CSrsChipBnl : public CSrsChipCSrsChannelBnl : public CSrsChannelCRootTreeFillerBnl: public CRootTreeFillerand implementing functions for chip-specific data handling (mostly none for VMM1)

TCPReceiver(For VMM1 trigger

analysis)

TCP packets

(…)

Page 7: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 7

DRAWINGS concurrency, scalability

13 Feb 2013

Page 8: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 8

Receiver

SRS data

source

NICInput buff

De codeUDP

FEC

FEC

UDP Buffer

Process data(ZS)

ChipEvID,

channelsEvID, channelsEvID, channels

ChipEvID,

channelsEvID, channelsEvID, channels

Processed data (channels)

eventID

Writer (RootWriter)

eventID

Data Flow

Event BuilderChip type -> Timeout,

completeness

EvIDEvIDEvID

Timeout / ready

13 Feb 2013

UDP packets with RAW data

RAW

Processed data (channels)Receiver, FEC, Chip, Writer are designed to be extensible by inheritance.

Page 9: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 9

UDPReceiver

SRS data

source

NICInput buff

De codeUDP

FEC

FEC

UDP Buffer

Process data(ZS)

ChipEvID,

channelsEvID, channelsEvID, channels

ChipEvID,

channelsEvID, channelsEvID, channels

Data (channels)

eventID

RootWriter

eventID

Concurrency

Event BuilderChip type -> Timeout,

completeness

EvIDEvIDEvID

Timeout / ready

1

pool

pool

1

13 Feb 2013

Threads / thread pools are represented by distinct colouring.

Page 10: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 10

UDPReceiver

SRS data

source

NICInput buff

De codeUDP

FEC

FEC

UDP Buffer

Process data(ZS)

ChipEvID,

channelsEvID, channelsEvID, channels

ChipEvID,

channelsEvID, channelsEvID, channels

Event BuilderChip type -> Timeout,

completeness

Data (channels)

eventID

RootWriter

eventID

EvIDEvIDEvID

Error reporting

Timeout / ready Timed-out/missing fragment

Queue overflow

Bad ipQueue overflow

Bad dataBad chip idQueue overflow

13 Feb 2013

Page 11: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 11

NIC

FEC

FEC

ChipEvID,

channelsEvID, channelsEvID, channels

ChipEvID,

channelsEvID, channelsEvID, channels

Data (channels)

eventID

RootWriter

eventID

Scalability

Event BuilderChip type -> Timeout,

completeness

EvIDEvIDEvID

Timeout / ready

1

pool

1

NIC UDPReceiver

UDPReceiver

1+1

1+1

lock

13 Feb 201340MB/s(300Hz)

15MB/s per NIC(1.8kHz,16x 520B) Very preliminary

Page 12: MMDAQ Content – Overview – Case study – adding support for VMM1 chips – Drawings (data flow, concurrency, error reporting, scalability, monitoring) 13

Marcin Byszewski, MMDAQ overview 12

UDPReceiver

SRS data

source

NICInput buff

De codeUDP

FEC

FEC

UDP Buffer

Process data(ZS)

ChipEvID,

channelsEvID, channelsEvID, channels

ChipEvID,

channelsEvID, channelsEvID, channels

Data (channels)

eventID

RootWriter

eventID

Monitoring

Event BuilderChip type -> Timeout,

completeness

EvIDEvIDEvID

Timeout / ready

13 Feb 2013

Publisher request

statsstats

stats

stats

stats

Monitoring based onExisting event display program