3e88cd0d

Author: Kaapo Seppänen <118552719+kaapos@users.noreply.github.com>

Committer: GitHub <noreply@github.com>

Resolve the model and warm up once per bench run (#139)

Each bench batch called EvaluateSamples::run, which resolved the model
(clone plus recompute_dependents) and warmed up the integrand inside the
timed region. For GL1 that setup was about a quarter of the reported warm
runtime, and its cost grows with the number of model parameters.

with_warmed_integrand now prepares the integrand once; bench times only
run_warmed, the evaluation itself. EvaluateSamples and EvaluateSamplesPrecise
share the helper, so their behaviour is unchanged.

Total

7m01s

Time to Start Worker time Duration Time to finish Idle
Config 0s 3s 3s 3s 0s
Eval 4s 49s 49s 53s 0s
Build 52s 0s 0s 52s 0s
Test 53s 14m43s 5m59s 6m53s 0s
Deploy 6m57s 5s 5s 7m02s 3s
Suite 0s 15m41s 7m01s 7m02s 4s

Timeline

Config Eval Build Test Deploy
0s1m2m3m4m5m6m7m