Replies: 2 comments
-
As I understand out of your request, you want the parameters to be more flexible and smarter than just being values. You want to classify and prioritize them, and, at some point, they are more than just values, more like the result of a function call. In reaction to this request and @pcerf's in #7, I would propose the following changes to the pulse class:
Parameters itself will become an abstract class, of which we can derive 4 subclasses:
I would propose the following behaviour of the propagation:
In my eyes, these modifications are not very clean and structured, but they are a first step to fulfill your requirements. |
Beta Was this translation helpful? Give feedback.
-
Sounds like a good start. Note that measured values may be associated with qubits, so MeasuredParam and EnvironmentParam may overlap. Another aspect that may take some additional thought is mapping qubit parameters onto a specific qubit. The value of a parameter used in a generic pulse will often depend on which qubit the pulse is applied to, so the pulse definition should include something like "use parameter X for the qubit targeted". The target qubit would only be determined later, e.g. when an algorithm is defined. |
Beta Was this translation helpful? Give feedback.
-
Many pulses will have variable parameters that are not known when the pulse is defined. Examples include:
Type 3 are currently handled through pardefs in pulsegroups, type 1 by modifying dictionaries. There is probably no sharp boundary between 1 and 2.
One very desirable change is to introduce parameter names for easier information.
Furthermore, there should be mechanism to control how parameter values are propagated through a pulse tree. Some will be taken from qubit - specific or global calibrations, some will be set when a specific experiments is conducted. There will probably be occasions when one wants to override default parameters from the calibrations - e.g. to check if a calibration is still good.
Similar to pulses, the parameters need to be documented. The reference and complexity issue is probably less severe here. Saving the values of all relevant pulses with each measurement might be enough.
I would suggest to develop the concept along these lines:
Pulse default < qubit/system values < User specified (A < B means B overrides A)
Beta Was this translation helpful? Give feedback.
All reactions