Conversation
timeSFMBAL benchmark
No head benchmark results were found. Worker runs
|
dellaert
left a comment
There was a problem hiding this comment.
This looks great to me. I didn’t do a deep dive review, but I figure it’s better to get it up and running and improve over time, rather than being a stickler for details right now.
What would be nice to add is to write down in some readme somewhere (and I have a markdown file in the .github directory for this) what is going on. The (AI?) PR comment is great, but will be forgotten, so maybe just adapt to the PR comment for that readme file?
|
Pretty nifty! I'm curious though if/how this accounts for variability in GitHub Actions runners. We see that jobs can vary quite a bit in time to complete (even just the non-cached jobs), so I'm curious if we're going to end up measuring noise. Perhaps running them in the same runner instance would be better? |
Summary
This PR adds a safe, two-tier benchmark pipeline for
timeSFMBALand enables PR performance reporting without using third-party benchmark actions. Note this will not work before merged (as the "workflow_dispatch" action can only be invoked when on the primary branch).A demo can be seen at ProfFan#14
Sample:
timeSFMBAL benchmark
b48c5f0896925232d9fb283a033c446272aecf5c38f71129194d85b4d4c50a5109d1218948a2578btimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalCholeskytimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalSolvertimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalCholeskytimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalSolvertimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalCholeskytimeSFMBAL/dubrovnik-16-22106-pre.txt/MultifrontalSolverMissing base benchmark cache for:
macos-arm64.Worker runs
b48c5f0896925232d9fb283a033c446272aecf5c38f71129194d85b4d4c50a5109d1218948a2578bb48c5f0896925232d9fb283a033c446272aecf5c38f71129194d85b4d4c50a5109d1218948a2578bb48c5f0896925232d9fb283a033c446272aecf5c38f71129194d85b4d4c50a5109d1218948a2578bWhat Changed
1)
timeSFMBALJSON benchmark outputtiming/timeSFMBAL.cppwith a benchmark JSON mode:--benchmark-action-json <output_file>MultifrontalCholeskyMultifrontalSolver2) New benchmark comparison script
.github/scripts/compare_time_sfmbal_benchmarks.pyN/Aand missing base cache notes).3) Safe split workflow design
.github/workflows/time-sfmbal-benchmark-runner.ymlworkflow_dispatchonlytimeSFMBAL-benchmark-v3-<os>-<arch>-<sha>.github/workflows/time-sfmbal-benchmark.ymlpull_requestonopenedworkflow_dispatchwithpr_number/benchtrigger workflow:.github/workflows/time-sfmbal-benchmark-trigger.yml/bench, dispatches orchestrator.4) Dataset handling in worker runs
https://grail.cs.washington.edu/projects/bal/data/dubrovnik/problem-16-22106-pre.txt.bz2problem-16-22106-pre.txt.bz2from cacheexamples/Data/dubrovnik-16-22106-pre.txtWhy
/benchflows with consistent reporting.