Skip to main contentIBM Quantum Documentation Preview

Job limits

When you send a job to an IBM® QPU, it is first sent to the job validation service. This service tries to ensure that the job will be able to run on the QPU so you don't have to wait for it to go through the queue and then have the job fail. These checks include enforcing the described limits.

Note

Certain primitive options increase the circuit size. The described limits are checked after the expected increase in circuit size. In particular, these options increase circuit size:


Maximum executions

At most, 5 million executions are allowed. The number of executions is the number of circuits times the number of shots, where the circuits are those generated after PUB elements are broadcasted.

For example, if you have a PUB with one circuit, observables with shape (1, 6), and parameters with shape (4, 1), this would render 4×6=244 \times 6 = 24 circuits (or fewer, if some observables commute). If you requested 2,000 shots, then the total number of executions is 24×2,000=48,00024 \times 2,000 = 48,000.


Maximum number of low-level instructions per qubit

The service permits up to 32 million control-system instructions per qubit. This ensures that the user circuits fit within the control system's instruction memory. The following table describes how the system translates instruction set architecture (ISA) circuit instructions to control system instructions when calculating this limit.

InstructionCount
rz1
delay1
sx2
x2
cx5
cz5
ecr5
measure10
reset17
init50
Note

This table captures the heuristic used in validation and does not reflect the exact number of instructions used to implement an operation.


Maximum number of two-qubit gates per job

This ensures that the job can be manipulated within the memory limits of the low-level software stack. The precise limit depends on the options selected in the Sampler or Estimator query. However, if a job has fewer than 10,000 two-qubit gates, it will pass validation. Some options might allow more, and the service will calculate the limit allowed for the user-selected options and communicate that should your job be rejected in validation.