qiskit-experiments icon indicating copy to clipboard operation
qiskit-experiments copied to clipboard

2 Qubit Pulse Backend

Open rupeshknn opened this issue 2 years ago • 6 comments

Summary

Further to #925, in this PR, we add a 2-qubit pulse backed for parallel experiments and multi-qubit gates. This PR is part of the Qiskit Advocate Mentorship Program (QAMP-Fall22).

Details and comments

Co-Authors: JeongWon Kim @bicycle315 Daniel Egger @eggerdj

  • [x] 2 qubit parallel backend (decoupled)
  • [ ] 2 qubit backend with multi-qubit gates
  • [ ] Corresponding tests

rupeshknn avatar Nov 10 '22 20:11 rupeshknn

For your information, you can follow this Qiskit Dynamics tutorial for Simulating backends at the pulse-level with DynamicsBackend. Because several extra arguments are needed to build the Solver instance for a two qubit device, it's much cleaner to allow PulseBackend to take a solver instance in its constructor, rather than adding more arguments. This will also make the PulseBackend robust to future API change of dynamics Solver instance.

nkanazawa1989 avatar Jun 12 '23 05:06 nkanazawa1989

Thank you for your review @nkanazawa1989. I'll go through them and make changes accordingly.

As for using DynamicsBackend, there was an initial meeting with the qiskit-dynamics team and at that point, we had concluded that it was better to have these as independent efforts, primarily to keep things simple and efficient for the tests rather than having something more general. That said, I will check if it is now possible to incorporate DynamicsBackend in PulseBackend without disrupting too much.

rupeshknn avatar Jun 12 '23 13:06 rupeshknn

Yeah I know the PulseBackend implements different approach for circuit simulation, so I don't suggest replacing it with Dynamics Backend (though we can make it a subclass of dynamics and just override the run method to reuse rest of some nice features). The dynamics tutorial is about setup of Solver instance.

nkanazawa1989 avatar Jun 13 '23 04:06 nkanazawa1989

Thanks @rbuckland for implementing two qubit backend. This is necessary for unittest of future two qubit PRs. I think current PulseBackend is not capable of implementing two qubit architecture, and you need a major refactoring of its constructor. Please check my review comments below.

:-) that puzzled me - was not I that created the PR. I can see that the correct author, @rupeshknn has picked up review.

rbuckland avatar Jun 13 '23 06:06 rbuckland

@rbuckland Oh, sorry about bothering you, and thanks for the message. I updated my review comment.

nkanazawa1989 avatar Jun 19 '23 07:06 nkanazawa1989

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar Jul 18 '23 13:07 CLAassistant