qiskit-dynamics
qiskit-dynamics copied to clipboard
Upgrades for `DynamicsBackend.from_backend`
Information
-
Qiskit Dynamics version:
main
-
Python version:
3.10
-
Operating system:
linux
What is the current behavior?
- Instantiating a
DynamicsBackend
usingDynamicsBackend.from_backend
has an incorrect Target object and a redundant subsystem list. Since the only open-access ibmq backends are 127 qubits, backend info is lengthy. -
DynamicsBackend.target.qubit_properties
is empty when Instantiated usingDynamicsBackend.from_backend
. Qubit frequencies are needed to run calibration experiments. The information is available in Solver through an internal attribute_channel_carrier_freqs.
Steps to reproduce the problem
from qiskit_ibm_provider import ibm_provider
from qiskit_dynamics import DynamicsBackend
provider = ibm_provider.IBMProvider()
kyoto = provider.get_backend('ibm_kyoto')
sim_backend = DynamicsBackend.from_backend(kyoto,subsystem_list=[0])
# 1.)
print("num of qubits = ", sim_backend.num_qubits) # or sim_backend.target.num_qubits
# num of qubits = 127
print("subsystem dims = ", sim_backend.options.subsystem_dims`)
# subsystem dims = [3,1,1,1.....(127 times)]
2.)
print(kyoto.target.qubit_properties[0].frequency)
# 4908834667.169063
print(sim_backend.target.qubit_properties[0].frequency)
# TypeError: 'NoneType' object is not subscriptable
Suggested solutions
-
DynamicsBackend.from_backend
must assign aTarget
with the unused qubits instructions removed.` - The qubit frequencies estimate as available in the Hardware should be available in
DynamicsBackend.target.qubit_properties
or alternatively, it can be demonstrated in the tutorial on how to access and add the qubit frequencies to target.