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

ci: Add automated benchmarking workflow #1365

Merged
merged 5 commits into from
Apr 29, 2024
Merged

Conversation

daniel-mills-cqc
Copy link
Contributor

@daniel-mills-cqc daniel-mills-cqc commented Apr 27, 2024

Description

Adds a workflow to run benchmarks on each new PR. The version of pytket built from the PR is used in the benchmarks. At the moment this is a simple comparison to Qiskit on quantum volume circuits.

I would like to have a wider conversation about the compilers to compare agains, and the circuits to compile. The outcome of those conversation would feature in later PRs.

I also note that the benchmarks are quite slow. I will experiment with parallelisation in future PRs.

Related issues

N/A

Checklist

  • I have performed a self-review of my code.
  • I have commented hard-to-understand parts of my code.
  • I have made corresponding changes to the public API documentation.
  • I have added tests that prove my fix is effective or that my feature works.
  • I have updated the changelog with any user-facing changes.

Copy link

Compiler PytketIBMQ is best, or equal best on, 14.912280701754383% for circuits.

@daniel-mills-cqc daniel-mills-cqc marked this pull request as ready for review April 27, 2024 13:40
Copy link

Compiler PytketIBMQ is best, or equal best on, 14.912280701754383% for circuits.

Copy link
Collaborator

@cqc-alec cqc-alec left a comment

Choose a reason for hiding this comment

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

Looks good, just a couple of comments.

Comment on lines 81 to 84
- name: Checkout tket
uses: actions/checkout@v4
with:
path: tket
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why is this necessary, as we are just using the downloaded wheel?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ah yes, a bit of a left over from testing. Cheers!

Comment on lines +47 to +48
# Ensure wheels are compatible with MacOS 12.0 and later:
export WHEEL_PLAT_NAME=macosx_12_0_arm64
Copy link
Collaborator

Choose a reason for hiding this comment

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

This shouldn't be necessary as we're testing on macos-14.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thanks!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Would you mind saying a little bit more about that. I'm afraid I'm not so familiar with the steps required to build the wheels.
I tried removing these two lines but see that the build then fails. I'm not sure if I should have expected that?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Hmm, that's a surprise. Ah well, we can keep the lines there, it's not an issue.

Copy link

Compiler PytketIBMQ is best, or equal best on, 14.912280701754383% for circuits.

Copy link
Collaborator

@ferbetanzo ferbetanzo left a comment

Choose a reason for hiding this comment

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

LGTM!

@daniel-mills-cqc daniel-mills-cqc merged commit cf12bd0 into develop Apr 29, 2024
29 checks passed
@daniel-mills-cqc daniel-mills-cqc deleted the automatic_benchmarks branch April 29, 2024 10:06
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.

3 participants