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

58 run first hardware benchmarks #110

Merged
merged 9 commits into from
Dec 6, 2024

Conversation

jordandsullivan
Copy link
Collaborator

@jordandsullivan jordandsullivan commented Dec 3, 2024

For this small initial test on a Bell state, UCC looks like it's not quite as performant as Qiskit on IBM's own hardware.

image
image

I'm pretty sure this is down to an inefficient mapping pass in UCC. The circuit UCC generated in this case were more than twice as long as Qiskit:

Qiskit hardware mapped circuit
image

UCC hardware mapped circuit
image

jordandsullivan and others added 4 commits December 2, 2024 19:07
* Initial dockerfile, breaking out requirements.

* Install requirements in Dockerfile, add -e pip flag

* Automated deploy script to AWS

* merge in new shell script changes (#104)

* Move and expand test for logical equivalence

Test moved to test_compile.py

* Delete test_circuit_equivalence.py

Test moved to test_compile.py

* Remove unnecessary qubit parameterizations

Remove unnecessary qubit parameterizations in `test_compiled_circuits_equivalent` and `test_compilation_retains_gateset`

* add basic expectation value benchmark (#96)

* add basic expectation value benchmark

* move compile function to `common.py`

* write data out to json

* make data pipeline more functional

* simplify real check

* Add bug label to new bug report issues

* Add feature tag to feature template issues

* 97 reorg files (#98)

* add basic expectation value benchmark

* move compile function to `common.py`

* write data out to json

* make data pipeline more functional

* simplify real check

* Update naming convention for different benchmarks

* Dry up save results into common function

* Fix init import issue

* Move gate_counters into scripts/common.py for simplicity

* Fix notebook errors, remove old data

* Remove duplicate funciton definitions

* Remove duplicate lines

* Add folder to docstring, call out alterntive benchmark name

---------

Co-authored-by: nate stemen <nate@unitary.fund>

---------

Co-authored-by: Misty-W <82074193+Misty-W@users.noreply.github.com>
Co-authored-by: nate stemen <nate@unitary.fund>

* Update PyTKET rebase pass

---------

Co-authored-by: Misty-W <82074193+Misty-W@users.noreply.github.com>
Co-authored-by: nate stemen <nate@unitary.fund>
@jordandsullivan jordandsullivan linked an issue Dec 3, 2024 that may be closed by this pull request
@jordandsullivan jordandsullivan marked this pull request as ready for review December 3, 2024 06:28
Copy link
Member

@natestemen natestemen left a comment

Choose a reason for hiding this comment

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

Nice work taking UCC to hardware! A really important step towards assessing its viability.

Overall this looks really good! I have a few small notes/questions, but the fact that it runs is awesome.

  1. I think there are some changes unrelated to hardware benchmarks in this PR. Is that intended?
  2. Can we plot error in the observables rather than raw values?
  3. Do you know why the UCC circuit contains a $R_z(-\pi/2)R_z(\pi/2)$ sequence? I guess that's introduced in the mapping phase somehow?

Meta note: reviewing python notebooks on GitHub is not ideal since we lack the capability to comment on specific lines in the rich-diff. The raw-diff works fine, but then it's hard to tell what's happening in the code/images. I'm not sure if there is a worthwhile workaround right now, however.

Copy link
Member

Choose a reason for hiding this comment

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

should this file be contained in this PR? It seems unrelated to hardware benchmarks.

Dockerfile Outdated
Copy link
Member

Choose a reason for hiding this comment

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

This seems unrelated to hardware benchmarks.

coupling_list = target_device.get_edges()
elif isinstance(target_device, list):
# What kind of list is this?
Copy link
Member

Choose a reason for hiding this comment

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

Should we make this a TODO or an issue?

@jordandsullivan jordandsullivan merged commit 63e34a7 into main Dec 6, 2024
@jordandsullivan jordandsullivan deleted the 58-run-first-hardware-benchmarks branch December 6, 2024 00:51
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.

Run first hardware benchmarks
2 participants