Skip to content

Move analysis tools (such as plotting) to pyperf #380

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

Open
mdboom opened this issue Mar 26, 2025 · 3 comments
Open

Move analysis tools (such as plotting) to pyperf #380

mdboom opened this issue Mar 26, 2025 · 3 comments

Comments

@mdboom
Copy link
Contributor

mdboom commented Mar 26, 2025

We should probably be working to move anything that isn't strictly related to automation inside of GitHub Actions upstream to pyperf.

@diegorusso
Copy link
Collaborator

Wishlist:

I'm not sure where all the above belongs to. If something cannot be moved, I would be more than happy also to make bench runner disjoint from GitHub so it can be run manually or on another automation system (Gitlab, Jenkins, cron)

@mdboom
Copy link
Contributor Author

mdboom commented Mar 27, 2025

I'd put these things into 2 categories: Things that are (a) about analyzing 1-2 benchmark runs, and (b) things that are about managing a whole set of benchmark runs. The profiling plots and violin plots are in (a), and could reasonably be moved to pyperf (they are just analogous to tools that already exist there). Things like (b) don't really make sense for pyperf.

If we want to handle things like (b) on things other than GitHub Actions, that really just means reimplementing the workflow descriptions in bench_runner/templates in the format necessary for some other tool. Most of the logic in there already calls out to functionality implemented in Python elsewhere anyway ... we could be more extreme there are also implement the checkout and compilation steps in Python.

Let me propose this as a way forward:

  1. Move as many of the individual steps (checkout, compilation, tuning, benchmarking) into a Python script so it's portable between automation systems.
  2. Implement the configuration on top of that for another automation system.
  3. Move the simple comparative plots to pyperf, and then adjust bench_runner to use those.

I can handle (1) as a first step. It sounds like you are interested in (2). (3) is sort of a "nice to have" and is disjoint and optional from the rest, IIUC.

@mdboom
Copy link
Contributor Author

mdboom commented Apr 18, 2025

Step (1) is complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants