cmssw: L1RCTProducer Behavior in beginLuminosityBlock

L1RCTProducer behaves in an unusual way in beginLuminosityBlock. There are configuration options that allow it to call updateFedVector every nth lumi or on the nth lumi (defaults are every 100th lumi and the 10th). This is dependent on EventSetup data, probably there are better and more standard ways to do this.

Our motivation in asking about this behavior is related to a proposed performance improvement to the Framework that will allow a stream to skip a lumi if all the events were already processed by other streams. See draft PR #43522. This will help significantly if one stream encounters a very slow event. That stream will not be able to finish the lumi it is processing or any subsequent lumis until that event is done. It is possible for the system to reach the maximum concurrent lumi limit and all streams be stuck until the extremely slow event completes. With the improvement, other streams will be able to finish subsequent lumis and close them and keep working productively.

For most modules, this improvement does not seem to cause any problems. We have been surveying the code looking for modules that might have a problem when a stream skips a lumi (skips the stream begin lumi and stream end lumi transitions). L1RCTProducer would have a problem if some streams skipped a lumi. For example, say on lumi 400 updateFedVector was called in beginLuminosityBlock but some stream skipped lumi 400. Then that stream would get stale results out of updateFedVector until lumi 500.

One other comment. It is possible this unusual behavior is for performance, but it may be counterproductive. As written, updateFedVector gets called for every stream. I can imagine more standard approaches using the EventSetup where it would only be called once when the underlying EventSetup products change.

Here are some questions. Why is the L1RCTProducer written in this way? Can it be changed so it will still work properly if stream are allowed to skip a lumi if all events were already processed by other streams?

FYI @makortel

About this issue

  • Original URL
  • State: open
  • Created 6 months ago
  • Comments: 17 (17 by maintainers)

Most upvoted comments

assign l1