introduced CPUCrunchSvc
Move the cpu cruncher from the CPUCruncher Algorithm in GaudiHive to a Service in GaudiSvc that anyone can call (ATLAS can't use the CPUCruncher Alg). Access is via ICPUCrunchSvc::crunch_for(std::chrono::milliseconds)
.
Also add a few more JobOpts:
-
minCalibTime
: keep increasing the number of calibration iterations until this amount of time spent (in milliseconds) in a calibration entry. Each new entry is 1.2x the last one. -
numCalibRuns
: do the calibration loop multiple times. -
calibCorrectionFactor
: apply a numeric correction to the time spent crunching.
calibCorrectionFactor
is useful for taking into account things like TurboBoost, where the actual time an algorithm spends crunching is consistently off the expected calibrated value.