Skip to content
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 performance testing setup to Kedro #4172

Merged
merged 3 commits into from
Sep 23, 2024
Merged

Add performance testing setup to Kedro #4172

merged 3 commits into from
Sep 23, 2024

Conversation

ankatiyar
Copy link
Contributor

Description

Part of #4128

Development notes

I've managed to set the performance testing framework using asv on my fork of Kedro: https://github.com/ankatiyar/kedro

The setup is -

❗ Disclaimer ❗ : This might not immediately work and might require tweaks with permission issues as follow up PRs so I would like to get a first draft in to test the action with the dummy test.

Developer Certificate of Origin

We need all contributions to comply with the Developer Certificate of Origin (DCO). All commits must be signed off by including a Signed-off-by line in the commit message. See our wiki for guidance.

If your PR is blocked due to unsigned commits, then you must follow the instructions under "Rebase the branch" on the GitHub Checks page for your PR. This will retroactively add the sign-off to all unsigned commits and allow the DCO check to pass.

Checklist

  • Read the contributing guidelines
  • Signed off each commit with a Developer Certificate of Origin (DCO)
  • Opened this PR as a 'Draft Pull Request' if it is work-in-progress
  • Updated the documentation to reflect the code changes
  • Added a description of this change in the RELEASE.md file
  • Added tests to cover my changes
  • Checked if this change will affect Kedro-Viz, and if so, communicated that with the Viz team

Signed-off-by: Ankita Katiyar <ankitakatiyar2401@gmail.com>
@ankatiyar ankatiyar marked this pull request as ready for review September 17, 2024 17:02
Signed-off-by: Ankita Katiyar <ankitakatiyar2401@gmail.com>
@ElenaKhaustova
Copy link
Contributor

ElenaKhaustova commented Sep 18, 2024

@ankatiyar , this looks great!

I have a short question just for my understanding.

How publishing results is happening for the newly created repo: https://github.com/kedro-org/kedro-benchmark-results?

I see in your example it's happening every time the results are committed to the main: https://github.com/ankatiyar/benchmark-kedro/blob/c4971ae3d47f26b32dc43b4fe356ed629cc93f19/.github/workflows/publish-benchmark.yml#L6

But in the new repo with the benchmark results the workflow looks different: https://github.com/kedro-org/kedro-benchmark-results/blob/7bd633596c3289ae18a70818099d7ef27b86539f/.github/workfllows/publish-results.yml#L4

Is that on purpose?

@ankatiyar
Copy link
Contributor Author

@ElenaKhaustova Thanks for taking a look! Github actions are not currently enabled on kedro-org/kedro-benchmark-results and will have to be enabled by an admin so I've just got a basic version of the workflow on there. It'll need to be updated later. With this PR I wanted to get the setup on the kedro repo set up first and make sure the results are being committed to kedro-benchmark-results first. As long as the results show up there, they will show up on the report when we enable actions there.

@ElenaKhaustova
Copy link
Contributor

@ElenaKhaustova Thanks for taking a look! Github actions are not currently enabled on kedro-org/kedro-benchmark-results and will have to be enabled by an admin so I've just got a basic version of the workflow on there. It'll need to be updated later. With this PR I wanted to get the setup on the kedro repo set up first and make sure the results are being committed to kedro-benchmark-results first. As long as the results show up there, they will show up on the report when we enable actions there.

That totally makes sense, thanks for explaining!

Copy link
Contributor

@ElenaKhaustova ElenaKhaustova left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work, us usual 🚀

@merelcht
Copy link
Member

This looks really great! My main question is how this would work with a full Kedro project, like the one @lrcouto has been building?

Would it maybe make sense to have a separate repo for all benchmarking tests to not pollute the main repo?

@ankatiyar
Copy link
Contributor Author

ankatiyar commented Sep 23, 2024

This looks really great! My main question is how this would work with a full Kedro project, like the one @lrcouto has been building?

Would it maybe make sense to have a separate repo for all benchmarking tests to not pollute the main repo?
@merelcht

I've left a comment here #4128 (comment) with a proposal for the performance test setup over-all. Would like to get your thoughts.

I think it is possible to also have the benchmark tests in a separate repo but I think this is the simplest setup and I'm worried that they might end up being neglected if they are. It will also help to have these tests here to execute the second part of the proposal, to run performance tests for PRs against main to see if any regression is being added by a particular PR before merging.

@noklam
Copy link
Contributor

noklam commented Sep 23, 2024

My question are:

  • How do we store the result and how big are those files? Is is small enough to keep it in Git?
  • Is it possible to backfill historical commits? There have been few refactor that may affect performance, will be interesting to see at least in 0.19 how this change.

@ankatiyar
Copy link
Contributor Author

ankatiyar commented Sep 23, 2024

@noklam

Copy link
Contributor

@noklam noklam left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for getting this work nicely!

@ankatiyar ankatiyar enabled auto-merge (squash) September 23, 2024 16:08
@ankatiyar ankatiyar merged commit a268b97 into main Sep 23, 2024
34 checks passed
@ankatiyar ankatiyar deleted the performance-setup branch September 23, 2024 16:16
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

Successfully merging this pull request may close these issues.

4 participants