Chapter 4. Using the Transpiler
We’ve been using the QuantumCircuit class to represent quantum programs, and the purpose of quantum programs is to run them on real devices and get results from them. When programming, we usually don’t worry about the device-specific details and instead use high-level operations. But most devices (and some simulators) can carry out only a small set of operations and can perform multiqubit gates only between certain qubits. This means we need to transpile our circuit for the specific device we’re running on.
The transpilation process involves converting the operations in the circuit to those supported by the device and swapping qubits (via swap gates) within the circuit to overcome limited qubit connectivity. Qiskit’s transpiler does this job, as well as some optimization to reduce the circuit’s gate count where it can.
Quickstart with Transpile
In this section, we’ll show you how to use the transpiler to get your circuit device-ready. We’ll give a brief overview of the transpiler’s logic and how we can get the best results from it.
The only required argument for transpile is the QuantumCircuit we want to transpile, but if we want transpile to do something interesting, we’ll need to tell it what we want it to do. The easiest way to get your circuit running on a device is to simply pass transpile the backend object and let it grab the properties it needs. transpile returns a new QuantumCircuit object that is compatible with the backend. The following ...