# Breakdown of QPU Access Time¶

As illustrated in Figure 55, 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).

Note

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.

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}

where

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

and

\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.