# What is difference between qasm_simulator and ibmq_qasm_simulator?

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?

• 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. Sep 1 at 15:39

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.