AndrasKovacs / normalization-bench

Lambda normalization and conversion checking benchmarks for various implementations
MIT License
53 stars 7 forks source link

Suspicious average time for OCaml HOAS Nat 10M normalization #10

Closed Hirrolot closed 10 months ago

Hirrolot commented 11 months ago

I have re-run the OCaml HOAS benchmark and obtained the following numbers:

Show the stats ``` Nat 5M conversion Iterations: 5 true true true true true Average time: 0.401441s Nat 5M normalization Iterations: 5 true true true true true Average time: 2.850329s Nat 10M conversion Iterations: 5 true true true true true Average time: 0.779622s Nat 10M normalization Iterations: 5 true true true true true Average time: 10.962495s Tree 2M conversion Iterations: 5 true true true true true Average time: 0.049158s Tree 2M normalization Iterations: 5 true true true true true Average time: 0.281091s Tree 4M conversion Iterations: 5 true true true true true Average time: 0.081503s Tree 4M normalization Iterations: 5 true true true true true Average time: 0.548169s Tree 8M conversion Iterations: 5 true true true true true Average time: 0.160363s Tree 8M normalization Iterations: 5 true true true true true Average time: 1.153197s ```

The suspicious line is Average time: 10.962495s. From the README.md stats I see that it's 965 milliseconds on your machine, which is a huge difference.

I've compiled my code with -O3 and my compiler version is 5.0.0 (build with Flambda).

What are your thoughts on this? Does this particular test really take 965 milliseconds on your machine?

AndrasKovacs commented 11 months ago

Try to run it with s=10000000 in OCAMLRUNPARAM, as in the README. That gets me 1.1s for that on ocamlopt-5.0.0 without flambda on my current laptop, not far from the old 965 ms.

Hirrolot commented 10 months ago

Indeed -- with OCAMLRUNPARAM set to s=10000000 it worked much faster. Probably an OCaml implementation peculiarity or something.