Open rrnewton opened 8 years ago
Finally, with duplicated code between (1) different benchmark modes, and (2) different data structures it's very hard to remember to update each variant and keep everything apples-to-apples. Just be careful.
--runs=1
to the Bench1 harness results in:bench-adaptive-hashmap-1: Prelude.!!: index too large
adaptive and c-adaptive almost coincide with pure for coldPhase
, tested at commit 9dee407.
stack bench adaptive-hashmap:bench-adaptive-hashmap-1 '--benchmark-arguments=--doplot --ops=100000000 --bench=cold --runs=5 --minthreads=1 --maxthreads=12 --ratio=5000 --variants=pure --variants=adaptive --variants=c-adaptive'
Thanks! Could you post a link to the git revision with the plots? This is a scenario where we keep updating and tweaking so its good to know which version it came from.
Since all the checkmarks above are checked off, I was expecting c-adaptive to pull ahead because of some GC savings.. when I can I'll poke at this a bit more to figure out why not. Definitely need to make sure allocation+GCs are happening during that cold phase
@vikraman, when you get a chance I or someone else can show you how to use threadscope if you haven't already used it.
I've been fixing various things about
Bench1.hs
, but there's still a ways to go.GenericImpl
mod
hack that's in there ("Temp/HACK modulus").Remaining mysteries/questions:
coldPhase
, but why doesn'tc-adaptive
yet do better?