Skip to content
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

Implementation of a pulse schedule block #5679

Closed
4 tasks done
nkanazawa1989 opened this issue Jan 22, 2021 · 0 comments
Closed
4 tasks done

Implementation of a pulse schedule block #5679

nkanazawa1989 opened this issue Jan 22, 2021 · 0 comments
Assignees
Labels
type: epic A theme of work that contain sub-tasks
Milestone

Comments

@nkanazawa1989
Copy link
Contributor

nkanazawa1989 commented Jan 22, 2021

What is the expected behavior?

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
@nkanazawa1989 nkanazawa1989 added the type: feature request New feature or request label Jan 22, 2021
@nkanazawa1989 nkanazawa1989 self-assigned this Jan 22, 2021
@taalexander taalexander changed the title Imprementation of pulse schedule block Implementation of a pulse schedule block Jan 22, 2021
@taalexander taalexander added type: epic A theme of work that contain sub-tasks and removed type: feature request New feature or request labels Jan 22, 2021
@taalexander taalexander added this to the 0.18 milestone Jan 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: epic A theme of work that contain sub-tasks
Projects
None yet
Development

No branches or pull requests

2 participants