1
$\begingroup$

I'm trying to run some quantum circuits on qasm simulator using the noise information from IBM Q quantum device:

provider = IBMQ.load_account()
backend = provider.get_backend('ibmq_casablanca') 
noise_model = NoiseModel.from_backend(backend)
coupling_map = backend.configuration().coupling_map
basis_gates = noise_model.basis_gates

As I print(noise_model), I got

NoiseModel:
  Basis gates: ['cx', 'id', 'reset', 'rz', 'sx', 'x']
  Instructions with noise: ['reset', 'measure', 'x', 'sx', 'id', 'cx']
  Qubits with noise: [0, 1, 2, 3, 4, 5, 6]
  Specific qubit errors: [('id', [0]), ('id', [1]), ('id', [2]), ('id', [3]), ('id', [4]), ('id', [5]), ('id', [6]), ('sx', [0]), ('sx', [1]), ('sx', [2]), ('sx', [3]), ('sx', [4]), ('sx', [5]), ('sx', [6]), ('x', [0]), ('x', [1]), ('x', [2]), ('x', [3]), ('x', [4]), ('x', [5]), ('x', [6]), ('cx', [6, 5]), ('cx', [5, 6]), ('cx', [5, 4]), ('cx', [4, 5]), ('cx', [5, 3]), ('cx', [3, 5]), ('cx', [3, 1]), ('cx', [1, 3]), ('cx', [1, 2]), ('cx', [2, 1]), ('cx', [1, 0]), ('cx', [0, 1]), ('reset', [0]), ('reset', [1]), ('reset', [2]), ('reset', [3]), ('reset', [4]), ('reset', [5]), ('reset', [6]), ('measure', [0]), ('measure', [1]), ('measure', [2]), ('measure', [3]), ('measure', [4]), ('measure', [5]), ('measure', [6])]

So I could see the source of errors as well as qubit connections. However, I wonder as I give this information to qasm simulator and run the experiments, am I using the real-time error rate as the noise model?

result = execute(circ, Aer.get_backend('qasm_simulator'),
                 coupling_map=coupling_map,
                 basis_gates=basis_gates,
                 noise_model=noise_model).result()

If so, should we expect to see any difference between the qasm results and the results from real quantum devices? (I could not print out the noise information, so I'm a bit confused which error values we are using.) Thanks!

$\endgroup$
2
$\begingroup$

I expect you get the Noise Model from the calibrated data of the hardware, however I am not sure how often it is updated. I doubt that it is live or even daily.

You can check the noise model by running

noise_model._local_quantum_errors and noise_model._local_readout_errors

For instance:

device = provider.get_backend('ibmq_armonk')
noise_model = NoiseModel.from_backend(device.properties())
print(noise_model._local_quantum_errors)
print(noise_model._local_readout_errors)

gives

{'id': {'0': QuantumError([([{'name': 'kraus', 'qubits': [0], 'params': [array([[-0.99994317+0.j,  0.        +0.j],
       [ 0.        +0.j, -0.99972553+0.j]]), array([[-0.00832337+0.j,  0.        +0.j],
       [ 0.        +0.j,  0.00832518+0.j]]), array([[0.        +0.j, 0.        +0.j],
       [0.00666197+0.j, 0.        +0.j]]), array([[0.        +0.j, 0.02189868+0.j],
       [0.        +0.j, 0.        +0.j]])]}], 1.0)])}, 'sx': {'0': QuantumError([([{'name': 'kraus', 'qubits': [0], 'params': [array([[-0.99994317+0.j,  0.        +0.j],
       [ 0.        +0.j, -0.99972553+0.j]]), array([[-0.00832337+0.j,  0.        +0.j],
       [ 0.        +0.j,  0.00832518+0.j]]), array([[0.        +0.j, 0.        +0.j],
       [0.00666197+0.j, 0.        +0.j]]), array([[0.        +0.j, 0.02189868+0.j],
       [0.        +0.j, 0.        +0.j]])]}], 1.0)])}, 'x': {'0': QuantumError([([{'name': 'kraus', 'qubits': [0], 'params': [array([[-0.99994317+0.j,  0.        +0.j],
       [ 0.        +0.j, -0.99972553+0.j]]), array([[-0.00832337+0.j,  0.        +0.j],
       [ 0.        +0.j,  0.00832518+0.j]]), array([[0.        +0.j, 0.        +0.j],
       [0.00666197+0.j, 0.        +0.j]]), array([[0.        +0.j, 0.02189868+0.j],
       [0.        +0.j, 0.        +0.j]])]}], 1.0)])}}
{'0': ReadoutError([[0.9756 0.0244]
 [0.0376 0.9624]])}
$\endgroup$
1
$\begingroup$

IBM Quantum Systems are calibrated daily, and the system properties update once this calibration sequence is complete. It means that your noise model could change on a daily basis.

More information in the documentation:

https://quantum-computing.ibm.com/lab/docs/iql/manage/systems/properties

https://quantum-computing.ibm.com/admin/docs/admin/calibration-jobs

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.