-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add benchmarking suite with trackable performance #147
Conversation
Thanks @raar1. It looks good! Two minor questions:
|
Yes, good questions, I also wondered. It seems like the way to remove old benchmarks currently is simply to delete those entries from the latest Regarding the units, this is a bit tricky. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @raar1 !
Let's merge this first version and improve later if needed.
@raar1 For some reason I cannot longer see the performance plots in https://galerkintoolkit.github.io/GalerkinToolkit.jl/dev/bench/ |
@fverdugo Ah... this was my worry before. It seems that building the docs (which only happens on merge) erases the Let me look into whether we can use another branch. Alternatively, the action allows configuration to use another repository. So at worst we could make a First I will check if we can't just use another branch in the same repo or if Seems others have had the same problem: benchmark-action/github-action-benchmark#85 |
OK. So in the documentation I see:
So it looks like the current approach for dealing with this is that we configure the benchmarks to be written to the |
docs/bench on main branch would be my preference, but is this going to work? Is the CI going to be triggered again when pushing to main from the benchmark CI action? I am afraid of some kind of infinite loop. |
Yes, it's indeed a bit unclean. I propose we instead make a I can do that by configuring |
Fixes #148
This PR adds a benchmarking suite with plots of performance changes over time (per commit hash) stored in the gh-pages branch using the https://github.com/benchmark-action/github-action-benchmark github action.
Currently, the benchmarks are in their own directory in
GalerkinToolkitExamples
. This is in order to benchmark example code (such as the hand-written Poisson example) which we will optimize first.However, we may later choose to split off the benchmarks into their own subpackage if that is cleaner (or if we have benchmarks that are not related to the examples). We can decide together what we want to be in there.
The benchmark results are collected and stored in the
gh-pages
branch, indev/bench/
. You can see the generated graphs of performance changes here: https://galerkintoolkit.github.io/GalerkinToolkit.jl/dev/bench/You might need to scroll down a bit to see the
poisson-hand/n=10
benchmark which has more data. The others were earlier tests and only have one data point.I have added some developer documentation about the benchmarking.