-
Notifications
You must be signed in to change notification settings - Fork 17
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
Fix duration interpolated sweeper for QM #1115
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1115 +/- ##
==========================================
- Coverage 50.87% 50.65% -0.23%
==========================================
Files 63 63
Lines 2909 2922 +13
==========================================
Hits 1480 1480
- Misses 1429 1442 +13
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
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.
Ok, the only thing I may have to amend is that this is a further decision we're taking within the driver (i.e. taking the minimum length one), and this may have an effect on the results (it certainly has an effect, it may be sizeable).
So, we should start documenting even these choices in public docs, including them in dedicated pages (guides/manual), instead of just updating the function docstrings.
However, this is something which is fully missing in Qibolab, so I would not propose to do it in this PR (which is more a patch for a broken implementation of the interpolated sweeper). But we may consider opening an issue for this, even one specific to QM, and start collecting behaviors that we want to document as part of the docs.
For now, I improved a bit the relevant docstring in ca35c73, including the link to QM docs. Regarding a larger doc refactoring, I agree that it should be in a different PR, so feel free to open an issue. However, I am not sure how much this particular thing is worth documenting, because it is not really a choice, it is the only way the interpolated sweeper will work for arbitrary waveforms in QM (unless I am missing something). They even say in their docs that setting the real-time |
That is correct, in a sense. However, at least historically, Qibolab served the purpose to also abstract its users from the devices. Thus, it is effectively encapsulating the devices' behavior in the drivers. I'd try to go towards a more transparent Qibolab, and that will be the purpose of #917 and related. But for as long as the average Qibolab's user is mostly unaware of the devices' specificities, it'd be better to at least propagate the pointers to the relevant docs in ours. |
Using the Rabi length routine, we noticed that this sweeper works best when we upload the pulse with the minimum duration among the swept values. This is probably due to the inability to compress arbitrary waveforms in real time (see https://docs.quantum-machines.co/latest/docs/Guides/features/?h=interpo#dynamic-pulse-duration).
Using this branch, the Rabi length behaves consistently between 0.1 (http://login.qrccluster.com:9000/MutpaUWhRPa9XlYyhD8mYA==) and 0.2 (http://login.qrccluster.com:9000/xKil3FR_Qv-4El7gQHd3vQ==).
Note that the standard (non-interpolated) sweeper still behaves differently for this experiment, however for that case there is no 0.1 counterpart that we can compare to.