Grenzwerte für Jobs
Wenn Sie einen Auftrag an eine QPU von „ IBM® “ senden, wird dieser zunächst überprüft, um sicherzustellen, dass er auf der QPU ausgeführt werden kann. Dadurch soll die Wahrscheinlichkeit verringert werden, dass Ihr Auftrag fehlschlägt, nachdem Sie darauf gewartet haben, dass er die Warteschlange durchläuft. Diese Überprüfungen umfassen die Durchsetzung der nachfolgend beschriebenen Beschränkungen. Werden diese Grenzwerte überschritten, kann die Arbeitslast vom Quanten-Software-Stack nicht bewältigt werden und führt in der Regel zu einem Fehler.
- Bestimmte primitive Optionen erhöhen die Größe der Schaltung. Die beschriebenen Grenzwerte werden nach dem erwarteten Anstieg der Schaltungsgröße überprüft. Diese Optionen erhöhen vor allem die Größe der Schaltkreise:
- Durch die dynamische Entkopplung und die Gatterfaltung ZNE werden zusätzliche Gatter eingeführt, die in die Anweisungen für die maximale Anzahl von Low-Level-Anweisungen pro Qubit einbezogen werden.
- Die ZNE-Gate-Faltung führt zusätzliche Zwei-Qubit-Gates ein, die sich auf die maximale Anzahl von Zwei-Qubit-Gates pro Job beziehen. Die Anzahl der Zwei-Qubit-Gatter wird mit der Summe der Rauschfaktoren multipliziert, die bei der Gatterfaltung ZNE gefordert werden.
- Die von den Feldern
backend.configuration()max_shotsundmax_experimentsgemeldeten Grenzen sind nicht mehr relevant und werden nicht mehr durchgesetzt. Diese Felder werden in naher Zukunft entfernt werden. - Diese Grenzwerte gelten pro Auftrag, nicht pro Primitive Unified Bloc ( PUB ).
Maximale Ausführungen
Aufgrund der Ausgabegröße sind für Sampler-Jobs höchstens 10 Millionen Ausführungen zulässig. Die Anzahl der Ausführungen entspricht der Anzahl der Durchläufe multipliziert mit der Anzahl der Schüsse, wobei die Durchläufe diejenigen sind, die nach der Übertragung der Elemente „ PUB “ erzeugt werden.
Wenn Sie beispielsweise einen PUB mit einem Schaltkreis und Parametern mit der Form (4, 1) haben, würden dadurch 4 Schaltkreise gerendert werden. Wenn Sie 2.000 Schüsse angefordert haben, beträgt die Gesamtzahl der Ausführungen.
Beachten Sie, dass sich die Gesamtanzahl der Aufnahmen, wenn Sie „Pauli-Twirling“ in Ihrem Sampler-Auftrag aktivieren, nach den Werten shots_per_randomization num_randomizations und richtet. Weitere Informationen finden Sie unter TwirlingOptions.
Maximale Anzahl von Low-Level-Befehlen pro Qubit
Der Dienst erlaubt bis zu 26.8 Millionen Steuerungsbefehle pro Qubit. Dadurch wird sichergestellt, dass die Benutzerkreise in den Befehlsspeicher des Steuerungssystems passen. Das folgende Beispiel zeigt, wie man einen Schaltkreis transpiliert und zählt, wie viele Instruktionen es jeweils gibt.
Die folgende Tabelle beschreibt, wie das System bei der Berechnung dieser Grenze Befehle der Befehlssatzarchitektur (ISA) in Befehle des Steuerungssystems übersetzt.
Anweisung | Anzahl |
|---|---|
| rz | 1 |
delay | 1 |
sx | 2 |
x | 2 |
cx | 5 |
cz | 5 |
ecr | 5 |
measure | 10 |
reset | 17. |
init | 50 |
Diese Tabelle gibt die Heuristik wieder, die bei der Validierung verwendet wird, und spiegelt nicht die genaue Anzahl der Anweisungen wider, die zur Implementierung einer Operation verwendet werden.
Beispiel
Schaltungen definieren, transpilieren und die Anzahl der zu ausführenden Gatter ermitteln.
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}")Ausführliche Informationen finden Sie unter Transpile gegen benutzerdefinierte Backends.
Maximale Anzahl von Ein- und Zwei-Qubit-Gates pro Schaltung
Die maximale Anzahl von Ein-Qubit-Gattern ist wie folgt:
- 30 Millionen RZ-Tore
- 20 Millionen SX-Tore
Die maximale Anzahl von Zwei-Qubit-Gattern pro Schaltkreis beträgt fünf Millionen. Dadurch wird sichergestellt, dass der Auftrag innerhalb der Speichergrenzen des Low-Level-Software-Stacks bearbeitet werden kann.