Skip to main content
IBM Quantum Platform

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.

Die erste Spalte steht für Schuss 0.  Die Stromkreise werden in der Reihenfolge von 0 bis 3 durchlaufen.  Die zweite Spalte steht für Schuss 1.  Die Stromkreise werden in der Reihenfolge von 0 bis 3 durchlaufen.  Die übrigen Spalten folgen demselben Muster.
Spaltenweise Ausführungsmatrix

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:

Diese Abbildung zeigt, dass die Fehlerquote bei der Vorbereitung des Zustands zunimmt, wenn der Wert für die Wiederholungsverzögerung gesenkt wird.
Wiederholungsverzögerung gegenüber Fehlerquote

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 den Wert „rep_delay“ für eine QPU

Ü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.0005

Nächste Schritte

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