Configuration file to launch one acquisition per CRU or EP

Dear all,
I have a configuration file to start readout.exe and StfBuilder for one EP.
The file looks like:

[equipment-rorc-1]
enabled=1
equipmentType=rorc
cardId=#0
id=0
dataSource=Fee
memoryBankName=bank-o2
memoryPoolNumberOfPages=1800
memoryPoolPageSize=1M
rdhUseFirstInPageEnabled=1
firmwareCheckEnabled=0

[consumer-StfBuilder]
enabled = 1
consumerType = FairMQChannel
sessionName = default
fmq-transport = shmem
fmq-name = readout
fmq-type = push
fmq-address = ipc:///tmp/flp-readout-pipe-0
memoryBankName = bank-o2
unmanagedMemorySize = 2G
memoryPoolNumberOfPages = 200
memoryPoolPageSize = 1M
disableSending=0

If I understand it correctly, with this configuration, the readout writes on bank-o2. The StfBuilder reads from this bank and send the output to ipc:///tmp/flp-readout-pipe-0.

What should I do if I want to run with 2 EPs?
Is it enough to add an [equipment-rorc-2], with cardId=#1 and a different bankName, say bank-o2-2
and then create a second [consumer-StfBuilder-2], reading from bank-o2-2 and sending to a different address, say ipc:///tmp/flp-readout-pipe-1?
Is this enough to launch 2 instances of the StfBuilder, each one reading the output of one single EP?
Or should I also define different memory banks?

Thanks in advance for further info,
best regards,
Diego

Hello Diego,

please use readoutAutoConfigure -m full
to generate a configuration compatible with data-distribution.

in case of multiple equipments, a single consumer-stfBuilder should be configured. all equipments must use (share) the same FMQ memory bank.

cheers,
Sylvain

(sorry for the late reply, it seems the “reply by email” I sent this morning failed and I have just been notified)

Hi @sy-c ,
thanks a lot for the info. This surely makes the configuration easier.
I still have a couple of questions though.

I see that the configuration file now has the field [rx-fmq-stfb]. What is this for? AFAIU the Stfb consumer is still defined by: [consumer-fmq-stfb]

Also, if I understand correctly, with this configuration the output of all of the CRUs is sent to the same memory address, which is readout by Stfb. But this means that I can have only one instance of Stfb and I guess of the o2-dpl-proxy. Is there a way to launch some of these processes in parallel? In our case, the two CRUs read out two separate parts of the detector. So in principle each one of them can be processed independently, allowing one to speed-up the operations. Of course, if this is not foreseen, I guess I can still spawn several decoding processes later in the DPL chain, each one reading a fraction of the Specs.

Thanks!
Cheers,
Diego

[rx-fmq-stfb] is not used by readout, it’s for an external test program, not important.

If you want multiple stfb processes, then please start multiple readout processes,
each with the equipment it needs and one consumer-fmq, using different fmq addresses.

However, with a single instance of readout reading all end points and a single stfb, you should be able to configure DPL to make use of the cores parallelism for the processing.

cheers,
sylvain