You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Pulse Schedule doesn't support parameterization of duration because it immediately evaluates the overlap of instruction over the channel timeslots. Here we implement new program representation called ScheduleBlock which consists of transform_policy: Enum and blocks: List[Union[Instruction, ScheduleBlock]]. The transform_policy represents one of transformation functions defined in qiskit.pulse.transforms and this transform is applied to underlying blocks when the schedule block is converted into Schedule. Because this new representation doesn't have explicit timeslot, it can involve instruction with parameterized duration, and the duration is assigned just before it is converted into schedule (i.e. lazy timeslot evaluation). The implementation of pulse builder is also updated to use this new representation. The ScheduleBlock has compatibility with the Schedule thus there is no usability impact by this update. In addition, Schedule will not be deprecated and coexist with ScheduleBlock in Qiskit Pulse.
This will be split into:
Phase1: Remove timeslot dependency from Instruction
Phase2: Add Call instruction to wrap an appended schedule component by pulse.call
Phase3: Implement ScheduleBlock
Phase4: Update pulse builder implementation
The text was updated successfully, but these errors were encountered:
What is the expected behavior?
Pulse
Schedule
doesn't support parameterization ofduration
because it immediately evaluates the overlap of instruction over the channeltimeslots
. Here we implement new program representation calledScheduleBlock
which consists oftransform_policy: Enum
andblocks: List[Union[Instruction, ScheduleBlock]]
. Thetransform_policy
represents one of transformation functions defined inqiskit.pulse.transforms
and this transform is applied to underlyingblocks
when the schedule block is converted intoSchedule
. Because this new representation doesn't have explicit timeslot, it can involve instruction with parameterized duration, and the duration is assigned just before it is converted into schedule (i.e. lazy timeslot evaluation). The implementation of pulse builder is also updated to use this new representation. TheScheduleBlock
has compatibility with theSchedule
thus there is no usability impact by this update. In addition,Schedule
will not be deprecated and coexist withScheduleBlock
in Qiskit Pulse.This will be split into:
Instruction
Call
instruction to wrap an appended schedule component bypulse.call
ScheduleBlock
The text was updated successfully, but these errors were encountered: