-
Notifications
You must be signed in to change notification settings - Fork 107
TimePerEvent convention
Just to make sure we'll never come up with different definitions, let me write in this wiki what TimePerEvent is meant to be in ReqMgr.
TimePerEvent = (number of events processed) / (walltime of the job)
Here, "walltime" is the amount of time that passes from the beginning of the job until the end. The reference "job" used for estimating TpE in ReqMgr should be configured to have the same time number of cores as the jobs the agent will produced.
Thus, if we get a request with:
- Multicore=8 and TimePerEvent=5: it means we'll process 10 events in 50 secs (using 8 cores)
- Multicore=1 and TimePerEvent=5: it means we'll process 10 events in 50 secs (using 1 core)
If the submitter estimates TpE by timing an 8 core job, but then submits a corresponding 1 core workflow to ReqMgr, the TpE estimates may be off by a factor of 8.
NOTE: The time per event is calculated based on the events that made it to the output file, thus, steps with filter efficiency < 1.0 have their time per event calculated on the output, not on the number of events generated.