qiskit
qiskit copied to clipboard
`RZXCalibrationBuilder` fails for qubit pairs with `GaussianSquareDrag`
Environment
- Qiskit version: 0.45 and 1.1.0.dev0+c99f325
- Python version: 3.12
- Operating system: Windows
What is happening?
RZXCalibrationBuilder
fails for qubit pairs with GaussianSquareDrag
, because it can't identify the native ECR direction.
How can we reproduce the issue?
The following code
from qiskit import QuantumCircuit
import numpy as np
from qiskit.transpiler import PassManager
from qiskit.transpiler.passes import RZXCalibrationBuilder
backend = provider.get_backend("ibmq_kolkata")
instmap = backend.defaults().instruction_schedule_map
qubits = ...
qc = QuantumCircuit(8)
qc.rzx(np.pi/2, *qubits)
pass1 = RZXCalibrationBuilder(instmap)
qc = PassManager(pass1).run(qc)
works if you set qubits=(4,7)
and fails if you set qubits=(6,7)
.
The error originates here, and is caused by the filter counting comp tones which ignores anything but GaussianSquare
or Waveform
pulses. However, for some pairs (with the pair 6,7
being one of them) the pulses are reported as GaussianSqaureDrag
. The pulses have beta=0
so they are identical to GaussianSquare
, but they are not counted towards the comp tones, which leads to the failure.
What should happen?
The code should run for both qubit pairs.
Any suggestions?
I suspect changing the allowed types in the filter would solve the issue, but I am not familiar enough with this piece code, and what the backends might report for other qubits.
Counting GaussianSquareDrag
with beta=0
is perhaps a safer option.