Open
Description
Describe the bug
- for "ibmq_qasm_simulator" and "simulator_statevector",
backend.num_qubits
returns 32 but submitting a circuit with more than 31 qubits results in a "Circuits do not match the target definition" error - for "simulator_mps",
backend.num_qubits
returns 100 but submitting a circuit with more than 63 qubits results in the same error - for "simulator_stabilizer" and "simulator_extended_stabilizer",
backend.num_qubits
itself throws an error
Steps to reproduce
service = qiskit_ibm_runtime.QiskitRuntimeService()
def test_backend(backend_name, num_qubits):
backend = service.backend(backend_name)
print(f"{backend_name} (backend has {backend.num_qubits} qubits):")
circuit = qiskit.QuantumCircuit(num_qubits, 1)
circuit.measure(0, 0)
job = qiskit_ibm_runtime.Sampler(backend).run(circuit, shots=1)
job.wait_for_final_state()
print(f"{circuit.num_qubits}-qubit circuit: {job.status()}\n")
test_backend("ibmq_qasm_simulator", 31)
test_backend("ibmq_qasm_simulator", 32)
test_backend("simulator_statevector", 31)
test_backend("simulator_statevector", 32)
test_backend("simulator_mps", 63)
test_backend("simulator_mps", 64)
prints:
ibmq_qasm_simulator (backend has 32 qubits):
31-qubit circuit: JobStatus.DONE
ibmq_qasm_simulator (backend has 32 qubits):
32-qubit circuit: JobStatus.ERROR
simulator_statevector (backend has 32 qubits):
31-qubit circuit: JobStatus.DONE
simulator_statevector (backend has 32 qubits):
32-qubit circuit: JobStatus.ERROR
simulator_mps (backend has 100 qubits):
63-qubit circuit: JobStatus.DONE
simulator_mps (backend has 100 qubits):
64-qubit circuit: JobStatus.ERROR
(where for each failing job, job.error_message()
returns "...Circuits do not match the target definition (non-ISA circuits)...")
meanwhile the following two lines fail immediately with a TranspilerError
:
service.backend("simulator_stabilizer").num_qubits # TranspilerError: "The number of qubits for Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]) does not match the number of qubits in the properties dictionary: (0,)"
service.backend("simulator_extended_stabilizer").num_qubits # TranspilerError: "The number of qubits for Instruction(name='cx', num_qubits=2, num_clbits=0, params=[]) does not match the number of qubits in the properties dictionary: (0,)"
Expected behavior
i would expect to be able to submit a circuit with (op to) backend.num_qubits
qubits
Additional Information
- qiskit-ibm-runtime version: 0.21.0
- Python version: 3.11.8
- Operating system: Ubuntu 22.04.1