Replies: 3 comments
-
This sounds good. The best boundary between pulses and timestreams (and the need for one) is still not completely clear to me, but the revised concept is a good starting point. I think tying reusability to the class is not wise – some (low-level) pulses will be recycled a lot, but high level compositions much less. At some point we should think about possible persistence mechanisms that reflect these different needs. Another point I am not convinced about is that timestreams are used to synchronize between qubits. I would currently favor parallel nesting of pulses. BTW, there are a few packages worth looking at: Capabilities of what will likely be our next generation hardware: Software provided and maintained by manufacturer, including driver: Another quantum computing software package: [edit by Lukas: removed attached quote of the initial post] |
Beta Was this translation helpful? Give feedback.
-
Thanks for the summary!
|
Beta Was this translation helpful? Give feedback.
-
It might be prudent to go through some lab scenarios and show how they would be implemented for the different proposals. One lab scenario is pulse optimization, and I am not sure how to implement it with your updated proposal. |
Beta Was this translation helpful? Give feedback.
-
Initial Concept
Pulses
Pulses are elementary control signals (voltage over time) for qubit hardware. Basic pulses can be defined via pulse tables or directly as waveforms. More complex pulses can be constructed by nesting, i.e., combining existing pulses. Pulses can be parameterized, meaning that a pulse definition can be used as a template which only defines a general control signal structure but leaves certain concrete values (e.g. height of a peak or duration of a slope) open until given concrete values.
Pulses are not aware of the context they are used in, thus are unable to respond to measured hardware data. Therefore, control structures (conditional branching, loops) cannot be realized on pulse level.
Timestream
Timestreams represent a sequence of pulses executed on a single (output) channel and establish a correspondence between output and input channels. This means, they configure the measurement hardware and input processing in accordance to the pulses which are to be executed.
Furthermore, since they receive data obtained from the hardware, they can also implement control structures, changing the pulses to be executed at runtime. Timestream may be nested to encourage reuse of pulse sequences with control structures.
Additionally, timestreams provide functionality to execute a pulse optimization experiment (or calibration run) by enabling feedback loops, i.e., executing the given pulse sequence, analyzing and evaluating the measured data using a solver to optimize the pulse and then repeating the process.
Criticism
Revised Concept
Control structures are moved from the timestream to the pulse level. Nesting for timestreams is discarded. Thus, the ability to define arbitrary complex control signals is moved entirely into the pulse level. This requires pulses to have some knowledge of their environment at runtime, however they should remain decoupled entirely from the data acquisition software.
Timestreams now only function as a representation of a channel, essentially being pulse dispatchers or drivers for channels for a single run. They are still configured with a sequence of pulses to run, which are then executed in order.
The distinction between pulses and timestreams is that pulses are intended to be representations of reusable, control singals that perform a well-defined operation on a single (qubit) channel. Timestreams specify - for an upcoming experiment or other execution - which pulses should be exeucted on a channel in this concrete execution.
Synchronization between channels (timestreams) is achieved in the following way: All timestreams are guaranteed to start and proceed simultaneously (with the same execution "velocity"). Due to this, pulses are synchronized during the entire execution. Thus, to apply an operation on multiple channels, the corresponding pulses have to be attached to the respective timestreams at the same time. (Later on, objects representing gates on multiple qubits can facilitate this).
To address the last point of criticism, a multichannel pulse can establish this correspondence between individual pulses.
Figure: A pulse node representing conditional branching.
Figure: Example of a complex pulse with branching and loops, composed out of simpler subpulses.
Do you think that these changes address the criticism and fulfills your needs?
Beta Was this translation helpful? Give feedback.
All reactions