Skip to main content
IBM Quantum Platform

Limites relatives aux travaux

Lorsque vous envoyez une tâche vers un QPU d' IBM®, celle-ci est d'abord validée afin de s'assurer qu'elle peut s'exécuter sur le QPU, ce qui réduit le risque que votre tâche échoue après que vous ayez attendu qu'elle passe par la file d'attente. Ces contrôles consistent notamment à faire respecter les limites décrites ci-dessous. Si ces limites sont dépassées, cette charge de travail ne peut pas être gérée par la pile logicielle quantique et échouera généralement.

Remarques
  • Certaines options primitives augmentent la taille du circuit. Les limites décrites sont vérifiées après l' augmentation prévue de la taille du circuit. En particulier, ces options augmentent la taille des circuits :
  • Les limites signalées par les champs backend.configuration() , max_shots et max_experiments ne sont plus pertinentes ni appliquées. Ces champs seront supprimés dans un avenir proche.
  • Ces limites s'appliquent par tâche, et non par bloc unifié primitif ( PUB ).

Exécutions maximales

En raison de la taille des données de sortie, le nombre d'exécutions autorisées pour les tâches Sampler est limité à 10 millions. Le nombre d'exécutions correspond au nombre de boucles multiplié par le nombre de tirs, les boucles étant celles générées après la diffusion des éléments d' PUB.

Par exemple, si vous avez un PUB avec un circuit et des paramètres de forme (4, 1), cela rendrait 4 circuits. Si vous avez demandé 2 000 tirs, le nombre total d'exécutions est 4×2,000=8,0004 \times 2,000 = 8,000.

Notez que si vous activez le twirling de Pauli dans votre tâche Sampler, le nombre total de prises est basé sur les num_randomizations valeurs shots_per_randomization et. Voir TwirlingOptions pour plus de détails.


Nombre maximal d'instructions de bas niveau par qubit

Le service autorise jusqu'à 26.8 millions d'instructions du système de contrôle par qubit. Cela garantit que les circuits utilisateur s'intègrent dans la mémoire d'instructions du système de commande. L'exemple ci-dessous montre comment transcompiler un circuit et compter le nombre d'instructions de chaque type.

Le tableau suivant décrit comment le système convertit les instructions du circuit d'architecture de jeu d'instructions (ISA) en instructions du système de contrôle lors du calcul de cette limite.

Une instruction
Nombre
rz1
delay1
sx2
x2
cx5
cz5
ecr5
measure10
reset17
init50
Note

Ce tableau reflète l'heuristique utilisée pour la validation et ne reflète pas le nombre exact d'instructions utilisées pour mettre en œuvre une opération.

Exemple

Définissez les circuits, transcompilez-les et obtenez le nombre de portes qui seront exécutées.

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}")

Pour plus de détails, consultez Transpiler contre des backends personnalisés.


Nombre maximal de portes à un et deux qubits par circuit

Le nombre maximal de portes à un qubit est le suivant :

  • 30 millions de portes RZ
  • 20 millions de portes SX

Le nombre maximal de portes à deux qubits par circuit est de cinq millions. Cela garantit que le travail peut être manipulé dans les limites de la mémoire de la pile logicielle de bas niveau.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.