rigetti / qiskit-rigetti

Qiskit provider serving Rigetti hardware & simulator backends.
Apache License 2.0
8 stars 5 forks source link

Fix: Update Qiskit version & populate coupling map #26

Closed j4ustin closed 2 months ago

j4ustin commented 2 years ago
pranavm1502 commented 2 years ago

Looking forward to this PR being merged! Updating will also allow use of QASM3 which can potentially be used to resolve https://github.com/rigetti/qiskit-rigetti/issues/36

dbanty commented 2 years ago

Hey y'all, sorry for letting this languish. I think these changes had been pulled into the rc branch and are now in main, but could you double-check before we cut a new release?

pranavm1502 commented 2 years ago

Given that the Aspen devices have non-contiguous qubit indexing, just adding the coupling_map is not sufficient to us Qiskit transpilers. For example, the following code-snippet throws an error -

from qiskit.transpiler import CouplingMap

graph = qc.quantum_processor.qubit_topology()
h = graph.to_directed()
cm = h.edges()
qc_couplingmap = CouplingMap(cm)
qiskit.transpile(bv_circs[3], coupling_map=qc_connectedmap)

CouplingError: 'coupling graph not connected'

I think the correct way to avoid this problem is to use the faulty_qubit for proper interfacing with Qiskit

See def _create_faulty_qubits_map(backend): at https://qiskit.org/documentation/_modules/qiskit/compiler/transpiler.html#transpile

dbanty commented 2 years ago

@pranavm1502 to be clear, this is something that must be added additionally, but not something which this PR contains that main does not?

For this particular PR, I just want to make sure that everything here has already been incorporated into main before I close this and release that.