c722d459

By: Kaapo Seppänen <seppanenkaapo@gmail.com>

resolve the model and warm up once per bench run

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

29m34s

Time to Start Worker time Duration Time to finish Idle
Config 0s 1s 1s 1s 0s
Eval 1s 1m12s 1m12s 1m14s 0s
Build 1m13s 0s 0s 1m13s 0s
Test 1m14s 49m54s 28m05s 29m19s 0s
Deploy 29m28s 6s 6s 29m34s 9s
Suite 0s 51m14s 29m34s 29m34s 10s

Timeline

Config Eval Build Test Deploy Compressed gap
0s1m2m3m4m5m6m7m8m9m10m11m12m13m14m15m16m17m18m19m20m21m22m23m24m25m26m27m28m29m