There are many ways how to simulate a quantum circuit on IBM Q. However, in partiuclar I am interested in a difference between qasm_simulator and ibmq_qasm_simulator.

In Qiskit, the former can be called with statement

processor = Aer.backends(name = 'qasm_simulator')[0]

while the latter with

provider = IBMQ.load_account()
processor = provider.backends(name='ibmq_qasm_simulator')[0]

I realized that ibmq_qasm_simulator sends jobs similarly to a real quantum processor, i.e. I see the job in Job pane in IBM Q environment. But this is not the case for qasm_simulator.

In list of services on IBM Q page I found out only one qasm_simulator. So, my question is how these two simulators differ?

  • 2
    $\begingroup$ All Aer backends are local backends (they run on your local machine) and all backends from providers are cloud based. Notice how you call qasm_simulator or statevector_simulator as Aer.backends( <name>) where as you would call ibmq_qasm_simulator or any of the actual hardware as provider.backends(<name>). But overall, they are the same in term of what they do. Do note that all cloud backends have a threshold of $8192$ shots where as 'qasm_simulator` (local simulator) can go up to $1,000,000$ shots. $\endgroup$
    – KAJ226
    Sep 1, 2021 at 15:39

1 Answer 1


ibmq_qasm_simulator performs the simulation on a classic computer on that resides on the cloud, whereas qasm_simulator does it locally on your computer and consumes your CPU.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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