Límites de trabajo
Cuando envías un trabajo a una QPU de IBM®, primero se valida para garantizar que pueda ejecutarse en la QPU, con el fin de reducir la probabilidad de que el trabajo falle después de haber esperado a que pase por la cola. Estas comprobaciones incluyen la aplicación de los límites que se describen a continuación. Si se superan estos límites, la pila de software cuántico no podrá gestionar esa carga de trabajo y, por lo general, se producirá un error.
- Algunas opciones primitivas aumentan el tamaño del circuito. Los límites descritos se comprueban tras el aumento previsto del tamaño del circuito. En concreto, estas opciones aumentan el tamaño del circuito:
- El desacoplamiento dinámico y el gate-folding ZNE introducen puertas adicionales que se incluyen en las instrucciones para el Límite máximo de instrucciones de bajo nivel por qubit.
- Gate-folding ZNE introduce puertas adicionales de dos qubits relevantes para el límite de Número máximo de puertas de dos qubits por trabajo. El número de puertas de dos qubits se multiplica por la suma de los factores de ruido solicitados en la ZNE de plegado de puertas.
- Los límites notificados por los campos
backend.configuration()max_shotsymax_experimentsya no son relevantes ni se aplican. Estos campos se eliminarán en un futuro próximo. - Estos límites son por trabajo, no por PUB (Bloque Primitivo Unificado).
Ejecuciones máximas
Como máximo, se permiten 10 millones de ejecuciones para los trabajos de Sampler debido al tamaño de la salida. El número de ejecuciones es el producto del número de circuitos por el número de disparos, siendo los circuitos aquellos que se generan tras la emisión de los elementos de un PUB.
Por ejemplo, si tienes un PUB con un circuito y parámetros con forma (4, 1), esto renderizaría 4 circuitos. Si has solicitado 2000 disparos, entonces el número total de ejecuciones es .
Tenga en cuenta que si habilita Pauli-twirling en su trabajo de Sampler, el número total de disparos se basa en los num_randomizations valores shots_per_randomization y. Para más TwirlingOptions detalles, consulte.
Número máximo de instrucciones de bajo nivel por qubit
El servicio permite hasta 26.8 millones de instrucciones del sistema de control por qubit. Esto garantiza que los circuitos de usuario encajen en la memoria de instrucciones del sistema de control. El siguiente ejemplo muestra cómo transpilear un circuito y contar cuántas instrucciones hay de cada tipo.
La siguiente tabla describe cómo el sistema traduce las instrucciones del circuito de la arquitectura del conjunto de instrucciones (ISA) a instrucciones del sistema de control al calcular este límite.
Instrucción | Recuento |
|---|---|
rz | 1 |
delay | 1 |
sx | 2 |
x | 2 |
cx | 5 |
cz | 5 |
ecr | 5 |
measure | 10 |
reset | 17 |
init | 50 |
Esta tabla recoge la heurística utilizada en la validación y no refleja el número exacto de instrucciones utilizadas para implementar una operación.
Ejemplo
Defina los circuitos, transpílelos y obtenga un recuento de cuántas puertas se ejecutarán.
from qiskit import QuantumCircuit
from qiskit.transpiler import generate_preset_pass_manager
from qiskit_ibm_runtime import QiskitRuntimeService
num_qubits = 50
ghz = QuantumCircuit(num_qubits)
ghz.h(range(num_qubits))
ghz.cx(0, range(1, num_qubits))
op_counts = ghz.count_ops()
# Choose the least busy backend
service = QiskitRuntimeService()
backend = service.least_busy(operational=True, simulator=False)
pm = generate_preset_pass_manager(optimization_level=3, backend=backend)
transpiled_ghz = pm.run(ghz)
op_counts = transpiled_ghz.count_ops()
print(f"Post-Transpilation gates: {op_counts}")Para obtener más información, consulta Transpile contra backends personalizados.
Número máximo de puertas de uno y dos qubits por circuito
El número máximo de puertas de un solo qubit es el siguiente:
- 30 millones de puertas RZ
- 20 millones de puertas SX
El número máximo de puertas de dos qubits por circuito es de cinco millones. Esto garantiza que el trabajo pueda manipularse dentro de los límites de memoria de la pila de software de bajo nivel.