# What are the differences between the IBM machines?

I'm quite new to this field, and have started sending jobs to IBM's quantum computers. I have access to around 11 locations. I can see that these have different numbers of qubits within them, and then different layouts of them as well.

I am trying to test a quantum machine learning network I have trained. However, when I test it on real hardware the different machines are giving me quite different results. For example, with ibmq_essex I get around 62% accuracy, while with ibmq_london I get around 70%.

I am curious to know:

• is there a particular reason for this, outside of just the inherent "randomness" of QM?
• Are different IBM pieces of hardware better for different tasks?

Thanks

Besides number of qubits, the devices can have other differences as well. The architecture of the device can be different, meaning that each device could have different connectivity maps. This would affect the mapping of valid multiqubit gates.

They also can have different error rates at any given time. Calibrations are run on each device daily. These error rates can change after each calibration. If one device has poor error rates compared to another device, it's accuracy will most likely be less than the device with the better error rates.

Those are some high level differences at least.

First of all, the name of backends (devices) have nothing to do with their location! They are all located in US.

Back to your question, as others already mentioned the difference is in the architecture (topology), number of qubits, connectivity, and performance (influenced by various types of errors).

If you click the name of any backend (device) in your IBM_Q Experience dashboard, you'll see detailed information about the error rate for each backend.

For example ibmq_london and ibmq_essex have the same topology and number of quits but qubit_1 in ibmq_london has lower gate error rate compared to the same qubit in ibmq_essex. That's the reason applying the same gate to same qubits on different backends, results in different output.

Update

is there a particular reason for this, outside of just the inherent "randomness" of QM?

Yes, the reason is the difference in performance between devices.
Many factors influence the performance such as number of qubits, connectivity, gate errors (operational error rates), measurement errors (readout error), retention errors (decoherence and dephasing errors).

Are different IBM pieces of hardware better for different tasks?

As long as the number of qubits doesn't limit your choice of device, you'd always go for devices with higher Quantum volume (higher performance). You can find QV in backend specification for each device.

The inherent uncertainty of QM is managed by making sure you're taking enough shots relative to the error bounds and probability of success for a given algorithm. If you don't have exact equations, and haven't done so already, just watching the extent to which your results convergence, or fail to converge, as you increase your shots, is a good first step.

Regarding differences between hardware, some information is aggregated here. But you can also map your logical qubits to the physical qubits of specific hardware, at specific optimization levels directly in Qiskit. This Q&A is a good example with corresponding code.

EDIT: Some of the links in the linked Q&A are apparently dead. This pulse tutorial has a lot of good information on getting backend information in Qiskit. You may also find this tutorial on transpiler passes and optimization levels relevant.