Breakdown of QPU Access TimeΒΆ

As illustrated in Figure 63, the time to execute a single QMI on a QPU, QPU access time, is broken into two parts: a one-time initialization step to program the QPU (blue), and typically multiple (\(R\)) per-sample times for the actual execution on the QPU (repeated multicolor).


A small amount of initialization time spent in low-level operations, denoted as \(\Delta\) in the equations below, is roughly 1 ms and is reported as qpu_access_overhead_time by SAPI.

Diagram showing the breakdown of QPU access time. The implicit horizontal axis in this diagram is time, because this diagram shows how the QPU access time changes over time. QPU access time begins with the single largest fixed block of time: programming time. This block is the same regardless of the number of samples specified. The rest of the block repeats per sample (within a repeating block called QPU sampling time): QPU anneal time per sample, QPU readout time per sample, QPU readout time per sample, and QPU delay time per sample.

Fig. 63 Detail of QPU access time.

The end-to-end time for one sample is further broken into anneal (the anneal proper; green), readout (read the sample from the QPU; red), and thermalization (wait for the QPU to regain its initial temperature; pink). Note that these component times are calculated as average times per sample. Possible rounding errors mean that the sum of these times may not match the total sampling time reported. Thus, for total time \(T\), these times relate as follows:

\begin{eqnarray} T & = & T_p + \Delta + T_s \nonumber \\ T_s / R & \approx & T_a + T_r + T_d, \nonumber \end{eqnarray}


\begin{eqnarray} T_p & = & {programming\_time} \nonumber \\ T_s & = & {sampling\_time} \nonumber \\ \end{eqnarray}


\begin{eqnarray} T_a = & \textrm{(total) } {annealing\_time} \nonumber \\ T_r = & \textrm{(total) } {readout\_time} \nonumber \\ T_d = & {} & \textrm{(total) } {anneal\_schedule} \nonumber \\ & + & \textrm{(total) } {readout\_thermalization} \nonumber \\ & + & \textrm{(total) } {reduce\_intersample\_correlation} \nonumber \\ & + & \textrm{(total) } {reinitialize\_state}. \end{eqnarray}

Note that reinitialize_state is used only for reverse annealing.