IonQ To Become The First Publicly Traded Pure-Play Quantum Computing Company

Learn more about this historic announcement

Best Practices for Using IonQ Hardware

Hardware Overview

Our trapped ion quantum computers are built on a chain of trapped 171Yb+ ions, spatially confined via a microfabricated surface electrode trap within a vacuum chamber. Gates are performed via a two-photon Raman transition using a pair of counter-propagating beams from a mode-locked pulsed laser. This allows for high-quality single and two-qubit transitions and all-to-all connectivity. Initialization is performed via optical pumping, and readout is performed with a combination of a resonant laser, a high numerical aperture lens, and photomultiplier tubes. A more detailed description of our current-generation hardware and its technical specifications can be found in Benchmarking an 11-qubit quantum computer (Nature Communications 10, 5464 [2019]).


Our trapped ion QPUs are fully connected; you may run a two-qubit gate on any pair. The precise mapping of logical to physical qubits is determined at runtime to maximize performance.


Native gates

We compile and optimize your logical gates into the smallest possible set of laser pulses to realize your program on trapped ions, and map your gates onto the ideal pairs using up-to-the minute continuous calibrations. Gates are executed strictly in sequence, not in parallel.

For single-qubit gates, we use the GPI gate, the GPI2 gate and the GZ gate. The GPI and GPI2 gates are simply Rabi oscillations made by driving the qubits on resonance using laser beams in a Raman configuration. In our unique ion trap architecture, each ion is driven by its own laser beams, affecting individual addressing of the ions. The GZ gate is performed by advancing/retarding the phase of this laser beam, creating a ‘virtual’ operation. The gate does not physically change the internal states of the trapped ion at the time of its implementation; it changes the phases of all future operations such that it is equivalent to an actual Z-rotation around the Bloch sphere.

GPI(ϕ)=[0eiϕeiϕ0]GPI (\phi)=\begin{bmatrix} 0 & e^{-i\phi}\\ e^{i\phi} & 0 \end{bmatrix}
GPI2(ϕ)=12[1ieiϕieiϕ1]GPI2 (\phi)= \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & -ie^{-i\phi}\\ -ie^{i\phi} & 1 \end{bmatrix}
GZ(θ)=[eiθ/200eiθ/2]GZ(\theta)= \begin{bmatrix} e^{-i\theta/2} & 0 \\ 0 & e^{i\theta/2} \end{bmatrix}

For entangling, two-qubit gates, we use the Mølmer-Sørenson gate. Invented in 1999 by several groups simultaneously, this entangling gate and the single-qubit gates above constitute a universal gate set. By irradiating any two ions in the chain with a predesigned set of pulses, we can couple ions’ internal states with the chain’s normal modes of motion to create entanglement.

MS=12[100i01i00i10i001]MS= \frac{1}{\sqrt{2}} \begin{bmatrix} 1 & 0 & 0 & -i \\ 0 & 1 & -i & 0 \\ 0 & -i & 1 & 0 \\ -i & 0 & 0 & 1 \end{bmatrix}


Singe-qubit gates such as the GPI and GPI2 are calibrated in two steps, first by tuning the duration and amplitude of Raman lasers to achieve the targeted bit flip, and second, by ensuring that the transition is driven on qubit resonance throughout the course of the gate, which achieves the targeted phase flip. The GZ gate is implemented by simply advancing the phase of the Raman lasers for gates that follow the GZ operation.

MS gates are calibrated by tuning the amplitude of Raman lasers to achieve the desired two-qubit rotation for each pair of qubits. An additional phase calibration is performed to maintain the same reference frame between the MS gate and the single-qubit gate per qubit to achieve the targeted MS unitary as stated above.

Best Practices

Make use of all-to-all connectivity

All-to-all connectivity between our qubits provides maximal flexibility when generating or optimizing circuits. For example, if your circuit has CX(a,b) adjacent to CX(b,a), you can replace them with a single CX gate and a SWAP gate. The swap gate can then typically be moved through the circuit and eliminated even if it increases non-locality.

Prefer XX Gates

XX gates will be implemented directly in our hardware in the future. Therefore, if you have unitaries of the form exp(itP1P2)\exp(i t P_1 P_2), where P1P_1 is a Pauli on qubit 1 and P2P_2 is a Pauli on qubit 2, pass this as RAexp(itX1X2)RBR_A \exp(i t X_1 X_2) R_B, where RAR_A and RBR_B are tensor products of single-qubit rotations.

Prefer RZ Gates

RZ gates are performed virtually and take almost no time compared to RX and RY. If you can rotate your basis to maximize the number of rotations around the Z axis, the quality of your output should benefit. For example, when simulating the transverse-field Ising model, H=i(XiXi+1+Zi)H=\sum_i (X_i X_{i+1} + Z_i) is better than H=i(ZiZi+1+Xi)H=\sum_i (Z_i Z_{i+1} + X_i).

Remove overly-precise gates

Rotation precision for RX and RY is about 10-3 * π. There’s no benefit to supplying gates with angles much smaller than this.

Account for sparse return data

Only non-zero probabilities will be reported back. Keep this in mind when parsing the output.

Optimize shot counts based on expected outputs

Tailor the number of shots to the expected probability distribution of the output state and the number of gates in the circuits. Too many shots will unnecessarily increase cost. Too few shots will result in the output being indistinguishable from noise, especially for output states that have weight on many computational basis states.

Use consistent steps for Trotterized time-evolution

For Trotterized time-evolution, it is often easier to correct the experimental error if the same number of Trotter steps is used for every sample time, vs. if the Trotter step size is fixed and the number of steps is increased to sample at increasing times. See Fig. 2 of this paper.

Use symmetry-based post-selection

A cheap way to increase the fidelity of your NISQ programs is to do symmetry-based post-selection when possible on the output probabilities. For example, if an output computational basis state is theoretically known to be not allowed but shows up anyway, discard it and re-normalize the resulting probability distribution.