-
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
Plot expectation value benchmarks #168
base: main
Are you sure you want to change the base?
Conversation
the new data isn't the same format
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 for your work in this! Great getting to hack in person together.
I'm wondering why are the relative errors in the hundreds in the first place? What are the actual expectation values? I'd say we want to report errors in terms of a percent.
I think it's because the ideal values are coming out so close to 0 that the relative errors are blowing up. You can find all the most recent results in ucc/benchmarks/results/expval_2025-01-14_20.csv Lines 11 to 14 in 8471ab3
Not sure what the best course of action here is. |
Okay just as a sanity check can you plot the simulated and ideal expectation values and standard deviation, similar to what I did here for #58 (where I was running on real hardware)? This reminds me, we can also simply measure an array of observables in addition to ZZZZZZ like I did there. Maybe just adding in some that measure like XIIIIIII or XXXXXZZZZZ, etc. |
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.
Looking good, a few suggestions.
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.
Trying to understand why the relative errors are in the hundreds? What are the actual expectation values we're getting? Are they what we'd expect?
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.
Perhaps we shouldn't use the same observable on all circuits if it is giving answers that don't seem meaningful.
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.
Per @willzeng , we want to split off the customization of specific observables with the different benchmarks into a separate issue. Can complete this issue with the current all Z observable.
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.
It's a little suspicious how the QAOA, QV, and QCNN circuit results are all basically identical. We should make sure this is real and not an artifact of how we perform simulation (or something else)!
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.
Did you plot the expectation values themselves and standard deviations as suggested above?
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.
Let's compare the compiled gate counts between the different compilers in case they are returning approximately the same circuits.
Description
This PR refactors the expectation value benchmarking script to ensure it works with the
run_benchmarks.sh
script. It also introduces new circuits to broaden the test of the expectation value testing. Scripts to visualize relative and absolute errors across different compilers over time are added, with one plot added to the README.@jordandsullivan we have the option to plot relative or absolute error, but relative is much higher for
ucc
, which I don't understand the reason for.