-
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
Program API #917
Comments
The E.g., an qibolab/src/qibolab/sequence.py Line 103 in 9031fd5
(though it might also be compiled as another Program with delays, when possible, as this transformation is sometimes useful, both for simpler drivers missing a native align , that could often make use of just the PulseSequence , with no difference, and for those supporting it, but forcing it at runtime - while delay compilation will attempt making it static)
|
The current Qibolab design requires the user to know in advance the whole pulse sequence, before requesting the execution.
However, this limits the possible experiments to be run, since, e.g., it should be possible to branch in real-time based on the acquired data (e.g. #592).
This is hard to represent as a pulse sequence, since the sequence will be the result, but not the instructions describing the execution.
Moreover, other real-time operations could be possible (e.g. sampling random numbers), that have no reasonable description in terms of pulses.
Because of this, the proposal is to deprecate the sequence API (not the pulses themselves, of course) to move towards a program-oriented API, where instructions are specified (which could be pulses, but not only).
The program will have an AST representation, and possibly a textual one (to read it and manually write, while programmatic creation should use the AST types).
We will then turn drivers into compiler backends, just receiving a program and compiling it into the assembly of the device (or whatever representation is exposed to us).
As side remarks:
execute()
signature, Unify execution interface #861, since sweepers will be part of the program, and not separate from the sequenceThe text was updated successfully, but these errors were encountered: