Qubit-Initialisierung
Der Code auf dieser Seite wurde unter Berücksichtigung der folgenden Anforderungen entwickelt. Wir empfehlen die Verwendung dieser oder neuerer Versionen.
qiskit-ibm-runtime~=0.47.0
Wenn ein Schaltkreis auf einer Quantenverarbeitungseinheit (QPU) von IBM® ausgeführt wird, wird in der Regel am Anfang des Schaltkreises ein impliziter Reset eingefügt, um sicherzustellen, dass die Qubits auf Null initialisiert werden. Dies wird durch das Flag init_qubits gesteuert, das als primitive Ausführungsoption festgelegt wird.
Allerdings können Unvollkommenheiten im Rücksetzungsprozess zu Fehlern bei der Zustandsvorbereitung führen. Um den Fehler zu mildern, fügt die QPU außerdem eine Wiederholungsverzögerungszeit (oder rep_delay) zwischen den Schaltkreisen ein. Jedes Backend hat eine andere Standardeinstellung rep_delay, aber in der Regel wird ein Gleichgewicht zwischen der Genauigkeit der Rücksetzung und der Gesamtlaufzeit angestrebt. Ausführen, backend.default_rep_delay um die Standardeinstellung rep_delay für eine bestimmte QPU zu finden.
Da alle QPUs von „ IBM “ eine dynamische Wiederholungsrate verwenden, können Sie die rep_delay für jeden Auftrag ändern. Die Schaltungen, die Sie in einem primitiven Auftrag einreichen, werden für die Ausführung auf der QPU gebündelt. Diese Schaltungen werden durch Iteration über die Schaltungen für jeden angeforderten Schuss ausgeführt; die Ausführung erfolgt spaltenweise über eine Matrix aus Schaltungen und Schüssen, wie in der folgenden Abbildung dargestellt.

Da zwischen den rep_delay Schaltkreisen eingefügt ist, tritt diese Verzögerung bei jedem Schuss der Ausführung auf. Wenn Sie also den Wert senken, verringert rep_delaysich die Gesamtlaufzeit der QPU, allerdings auf Kosten einer höheren Fehlerrate bei der Zustandsvorbereitung, wie die folgende Abbildung zeigt:

Wenn Sie sowohl rep_delay=0 als init_qubits=Falseauch festlegen, „verschmelzen“ die Schaltkreise miteinander, da die Qubits im Endzustand des vorherigen Schusses beginnen.
Beachten Sie, dass die Schaltungen in einem primitiven Job zwar für die QPU-Ausführung gebündelt werden, jedoch keine Garantie für die Reihenfolge besteht, in der die Schaltungen aus PUBs ausgeführt werden. Wenn Sie beispielsweise einreichen pubs=[pub1, pub2], werden die Schaltkreise aus pub1 möglicherweise nicht vor denen aus ausgeführt pub2. Es gibt auch keine Garantie dafür, dass Schaltungen aus demselben Auftrag als einzelner Stapel auf der QPU ausgeführt werden.
Für einen rep_delay primitiven Job angeben
Überprüfen Sie immer den unterstützten rep_delay Bereich für die von Ihnen verwendete QPU. Diese Werte sind nicht für jede QPU gleich und können sich auch im Laufe der Zeit ändern.
Bitte beachten Sie, dass eine Erhöhung von direkte Auswirkungen auf Ihre Ausführungszeit rep_delay und Ihren Kapazitätsverbrauch hat.
from qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler
service = QiskitRuntimeService()
# Make sure your backend supports it
backend = service.least_busy(
operational=True, min_num_qubits=100, dynamic_reprate_enabled=True
)
# Determine the allowable range
backend.rep_delay_range
sampler = Sampler(mode=backend)
# Specify a value in the supported range
sampler.options.execution.rep_delay = 0.0005Nächste Schritte
- Probieren Sie ein Beispiel aus dem Lehrgang Quantum approximate optimization algorithm (QAOA).
- Lesen Sie nach, wie Sie mit Estimator beginnen können.
- Erfahren Sie, wie Sie mit Sampler beginnen können.