Zulip Chat Archive
Stream: CI
Topic: build bot details
Gabriel Ebner (Jun 14 2021 at 11:34):
@Jannis Limperg Can you give some details on the benchmarking system? From the Azure dashboard, I can see that you're an E4as v4 VM. How is Lean executed? That is, do you compile each file individually or do you run lean --make
? Do you make use of parallelism (the VM has "four" "cores")? (I didn't see this mentioned anywhere.)
Jannis Limperg (Jun 14 2021 at 11:58):
The benchmark runner runs this Docker container with
docker run jlimperg/mathlib-bench-runner daemon runner1 https://mathlib-bench.limperg.de <secret>
If you want comparable timings, you could pull this container on the same VM and do
docker run jlimperg/mathlib-bench-runner oneshot <commit> --runs N
Source code for the container is here; the runner's main
is in this file.
Internally, the runner runs
leanpkg build -- --threads 4 --memory 20000
for the full build. Then it does another build for the per-file timings with
lean -j0 <file>
for each file (using the oleans from the full build).
Actually, I discovered that the runner was misconfigured for a while and ran the full build with --threads 16
. I'm currently testing whether that makes a difference.
Gabriel Ebner (Jun 14 2021 at 14:01):
Thanks! The code looks much more professional than our typical benchmarking scripts! :love: One thing I'm still not clear about: is the 2h30m the time that leanpkg build -- --threads 16 --memory 20000
takes or is the whole benchmarking run (incl. per-file benchmarks)?
Jannis Limperg (Jun 14 2021 at 14:34):
Thanks! The reported time is only leanpkg build
; the per-file run is only used for the per-file timings.
Last updated: Dec 20 2023 at 11:08 UTC