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

Deprecate legacy pulse builder command. #11152

Closed
nkanazawa1989 opened this issue Oct 31, 2023 · 6 comments
Closed

Deprecate legacy pulse builder command. #11152

nkanazawa1989 opened this issue Oct 31, 2023 · 6 comments
Assignees
Labels
type: feature request New feature or request
Milestone

Comments

@nkanazawa1989
Copy link
Contributor

What should we add?

Pulse builder still supports following commands that inject circuit gate operation into the pulse context:

  • qiskit.pulse.builder.call_gate
  • qiskit.pulse.builder.cx
  • qiskit.pulse.builder.u1
  • qiskit.pulse.builder.u2
  • qiskit.pulse.builder.u3
  • qiskit.pulse.builder.x

These are legacy workflow which we implemented before the pulse gate feature. These command introduce weird cyclic dependency between circuit and pulse program, and must be deprecated before the next release.

In addition, following commands are nice to be deprecated as well.

  • qiskit.pulse.builder.active_transpiler_settings
  • qiskit.pulse.builder.active_circuit_scheduler_settings
  • qiskit.pulse.builder.transpiler_settings

Background

Note that the standard program representation in Qiskit is now QuantumCircuit, and pulse programs exist as a microcode (calibration) of the circuit. The pulse builder is a tool to define such microprograms, and circuit -> pulse conversion must be explicitly done with the circuit scheduler. Injecting circuit instruction in pulse program is indeed an opposite workflow.

@nkanazawa1989 nkanazawa1989 added the type: feature request New feature or request label Oct 31, 2023
@nkanazawa1989 nkanazawa1989 added this to the 0.46.0 milestone Oct 31, 2023
@MozammilQ
Copy link
Contributor

@nkanazawa1989 , should I go ahead with this? If I am allowed to?

@nkanazawa1989
Copy link
Contributor Author

Thanks! I just assigned this to you.

@itoko
Copy link
Contributor

itoko commented Nov 1, 2023

Note: An alternative of pulse.x(q) will be pulse.call(backend.target["x"][(q, )].calibration).

@MozammilQ
Copy link
Contributor

A PR for this seems to be very straight forward, just deprecated these functions, modify tests and add a release note, that's it!
But, for three days I am banging my head over how this is a type: feature request ?
I tried seeing into other issues/comments by Naoki but didn't get any hint.
Anyways, I am opening this PR #11191 with whatever I know, if I left something please guide me :)
@itoko , @nkanazawa1989

@MozammilQ
Copy link
Contributor

@nkanazawa1989 , I think this should be closed isn't it?

@nkanazawa1989
Copy link
Contributor Author

Right, thanks for the reminder!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: feature request New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants