ConorWilliams/libfork

Benchmarks on c7g.16xlarge

thirtythreeforty opened this issue · 5 comments

I managed to get the benchmark suite to run on an AWS c7g.16xlarge instance running Ubuntu 22.04, built with Clang 15 (with Release build type), with the machine otherwise quiet. Benchmarks were done on 8dd4984 (current tip of tree).

See the attached log: results.txt

Fantastic, thank you! Did it output a bunch of .json as well, maybe in the build directory? Bit easier to process than the text logs :)

These results look unbelievable, fib has almost a 128 times speed up!

relative ns/op op/s err% total fork-fib-30
100.0% 204,934,007.00 4.88 0.0% 2.22 fork-fib-30 1 threads
427.9% 47,898,558.00 20.88 0.0% 0.53 fork-fib-30 2 threads
627.0% 32,684,181.00 30.60 0.1% 0.36 fork-fib-30 3 threads
..
12,217.8% 1,677,335.00 596.18 0.3% 0.02 fork-fib-30 61 threads
12,402.7% 1,652,336.00 605.20 0.2% 0.02 fork-fib-30 62 threads
12,622.8% 1,623,529.00 615.94 0.3% 0.02 fork-fib-30 63 threads
12,765.9% 1,605,323.00 622.93 0.3% 0.02 fork-fib-30 64 threads

Yep, here you go: json-results.tgz

How does a 64x thread increase translate to a 128x speedup?

arm

Okay plotting in log space it looks like the 128x thing is just anomalously slow single threaded performance, normalising speed up by 2 * T[2] we get this:

arm

Which I think shows almost perfect scaling for the non memory-limited benchmarks.

Nice. The fib benchmark in particular shows the scaling of the library when it's given a bunch of busy work.

If there are other experiments you want I'd be glad to run them, otherwise you can close this when you're happy with it.