Skip to main content
IBM Quantum Platform

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.

Hinweise
  • 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:
  • Die von den Feldern backend.configuration() max_shots und max_experiments gemeldeten 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 4×2,000=8,0004 \times 2,000 = 8,000 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
rz1
delay1
sx2
x2
cx5
cz5
ecr5
measure10
reset17.
init50
Note

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.

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.