Brainstorming on alternative more scalable alternatives to SMD0 with Mona, Dan, Wilko, Matt, Valerio, Chris on April 8, 2021.

Executive summary:  it seems hard, since in general LCLS don't run at uniform rates in the presence of dead time.  For now stick with the current smd0 approach.

summary:
- have a good smd0 algorithm (20ms), but running up against non-trivial bottlenecks
- special ib mpi builds (5ms)
- optimize the slow-update book-keeping (7ms)
- optimize the smd0 chuck-building algorithm

explore another possibility of fixed-size smd datagrams
- can we do this?
- what do we have to support?
- eb nodes getting coherent sets (same timestamps) of smd
- small data in the stream (e.g. diode value with "small_xtc" kwarg)
- transitions we support:
- slow-update
- transitions like beginstep
- l1acccept
- *** (simplest example of serious issue) even with 2 readout groups (1MHz and 10kHz) deadtime can break
the "uniform rate" (similar problem to sequencer)
- could "pad" missing events
- how would the detector know to pad?
- event-sequence patterns: (opal is big-data, diode is small-data)
- e.g. evt1: opal, evt2: diode, evt3: opal+diode, evt4: none, evt5: none
two smd files: opal-smd, diode-smd
- not a uniform rate: repeating pattern, so EB's would have to "learn"
that pattern, and DAQ would have to guarantee that pattern was
always followed, but it can't, because if deadtime happens the pattern
gets broken
- most of the time in LCLS1 detectors were read out at uniform rate
even with the event-sequencer
- two options:
- abort sequence on deadtime
- have two smd0 modes:

Another possibility:
- run smd0 once and save results so subsequent runs are faster
- decouple smd0 from EB's (no 5ms overhead to ipoverib, slowupdate management?)

- if transitions could be written to a separate file, management becomes easier
because all EB's could read them ("broadcast").
- this also helps us keep the dgrams fixed-size in the l1accept file

"prime example": with all the above requirements: EB's have to be able to
compute the smd offset of events 1000-2000 for every detector

  • No labels