Zum Hauptinhalt springen

Einführung in Optionen

Du kannst Optionen an Primitives übergeben, um sie nach deinen Bedürfnissen anzupassen. Dieser Abschnitt konzentriert sich auf die Optionen der Qiskit Runtime Primitives. Die Schnittstelle der run()-Methode ist zwar für alle Implementierungen gleich, ihre Optionen jedoch nicht. Informationen zu den Optionen von qiskit.primitives und qiskit_aer.primitives findest du in den entsprechenden API-Referenzen.

Übersicht

Struktur

Beim Aufruf von Primitives kannst du Optionen entweder über eine Options-Klasse oder als Dictionary übergeben. Häufig verwendete Optionen wie resilience_level befinden sich auf der obersten Ebene. Weitere Optionen sind in verschiedene Kategorien gruppiert, z. B. execution. Vollständige Details findest du im Abschnitt Primitive-Optionen festlegen.

Standardwerte

Wenn du für eine Option keinen Wert angibst, erhält sie den speziellen Wert Unset und der serverseitige Standardwert wird verwendet. Der Standardwert ist damit unabhängig von deiner Code-Version immer gleich.

Die Tabellen im Abschnitt Zusammenfassung der Options-Klassen listen die jeweiligen Standardwerte auf.

Optionen festlegen

Optionen können vor der Erstellung eines Primitives definiert und diesem übergeben werden — das Primitive erstellt dabei eine Kopie. Das ist sowohl als verschachteltes Dictionary als auch über die Options-Klassen möglich. Darüber hinaus können die Optionen eines Primitives auch nach seiner Erstellung noch geändert werden. Nutze den Workflow, der am besten zu deiner Anwendung passt. Vollständige Details findest du unter Optionen festlegen.

Zusammenfassung der Options-Klassen

  • Dynamical Decoupling: Optionen für Dynamical Decoupling.
  • Environment: Optionen für die Ausführungsumgebung, z. B. das Logging-Level und Job-Tags.
  • Execution: Optionen für die Primitive-Ausführung, einschließlich der Initialisierung von Qubits und der Wiederholungsverzögerung.
  • Resilience: Erweiterte Optionen zur Konfiguration von Fehlerminderungsverfahren wie Messfehlermitigation, ZNE und PEC.
  • Simulator: Simulator-Optionen wie Basis-Gates, Simulator-Seed und Coupling Map. Gilt nur für den lokalen Testmodus.
  • Twirling: Twirling-Optionen, z. B. ob Gate-Twirling für Zwei-Qubit-Gates angewendet werden soll und wie viele Shots pro Zufallsstichprobe ausgeführt werden.

Verfügbare Optionen

Die folgende Tabelle dokumentiert die Optionen der aktuellen Version von qiskit-ibm-runtime. Ältere Optionsversionen findest du in der qiskit-ibm-runtime API-Referenz, indem du eine frühere Version auswählst.

default_shots

Die Gesamtanzahl der Shots, die pro Circuit und Konfiguration verwendet werden.

Mögliche Werte: Integer >= 0

Standard: None

default_shots API-Dokumentation

default_precision

Die Standardpräzision für jeden PUB- oder run()-Aufruf, der keine eigene Präzision angibt.

Mögliche Werte: Float > 0

Standard: 0.015625 (1 / sqrt(4096))

default_precision API-Dokumentation

dynamical_decoupling

Einstellungen zur Fehlerminderung durch Dynamical Decoupling steuern.

dynamical_decoupling API-Dokumentation

dynamical_decoupling.enable

Mögliche Werte: True, False

Standard: False

dynamical_decoupling.extra_slack_distribution

Mögliche Werte: middle, edges

Standard: middle

dynamical_decoupling.scheduling_method

Mögliche Werte: asap, alap Standard: alap

dynamical_decoupling.sequence_type

Mögliche Werte: XX, XpXm, XY4 Standard: XX

dynamical_decoupling.skip_reset_qubits

Mögliche Werte: True, False Standard: False

environment

environment API-Dokumentation

environment.callback

Aufrufbare Funktion, die die Job ID und das Job result empfängt.

Mögliche Werte: None

Standard: None

environment.job_tags

Liste von Tags.

Mögliche Werte: None

Standard: None

environment.log_level

Mögliche Werte: DEBUG, INFO, WARNING, ERROR, CRITICAL

Standard: WARNING

environment.private

Mögliche Werte: True, False

Standard: False

execution

execution API-Dokumentation

execution.init_qubits

Gibt an, ob die Qubits für jeden Shot in den Grundzustand zurückgesetzt werden sollen.

Mögliche Werte: True, False

Standard: True

execution.rep_delay

Die Verzögerung zwischen einer Messung und dem darauf folgenden Quantencircuit.

Mögliche Werte: Wert im Bereich von backend.rep_delay_range

Standard: Gegeben durch backend.default_rep_delay

max_execution_time

Mögliche Werte: Ganzzahl in Sekunden im Bereich [1, 10800]

Standard: 10800 (3 Stunden)

max_execution_time API-Dokumentation

resilience

Erweiterte Resilience-Optionen zur Feinabstimmung der Resilience-Strategie.

resilience API-Dokumentation

resilience.layer_noise_learning

Optionen für das Lernen von Schichtrauschen.

resilience.layer_noise_learning API-Dokumentation

resilience.layer_noise_learning.layer_pair_depths

Mögliche Werte: list[int] mit 2–10 Werten im Bereich [0, 200]

Standard: (0, 1, 2, 4, 16, 32)

resilience.layer_noise_learning.max_layers_to_learn

Mögliche Werte: None, Integer >= 1

Standard: 4

resilience.layer_noise_learning.num_randomizations

Mögliche Werte: Integer >= 1

Standard: 32

resilience.layer_noise_learning.shots_per_randomization

Mögliche Werte: Integer >= 1

Standard: 128

resilience.layer_noise_model

Mögliche Werte: NoiseLearnerResult, Sequence[LayerError]

Standard: None

resilience.measure_mitigation

Mögliche Werte: True, False

Standard: True

resilience.measure_noise_learning

Optionen für das Lernen von Messrauschen.

resilience.measure_noise_learning API-Dokumentation

resilience.measure_noise_learning.num_randomizations

Mögliche Werte: Integer >= 1

Standard: 32

resilience.measure_noise_learning.shots_per_randomization

Mögliche Werte: Integer, auto

Standard: auto

resilience.pec_mitigation

Mögliche Werte: True, False

Standard: False

resilience.pec

Optionen für die Fehlerkorrektur mittels probabilistischer Fehlerauslöschung (PEC).

resilience.pec API-Dokumentation

resilience.pec.max_overhead

Mögliche Werte: None, Integer >= 1

Standard: 100

resilience.pec.noise_gain

Mögliche Werte: auto, Float im Bereich [0, 1]

Standard: auto

resilience.zne_mitigation

Mögliche Werte: True, False

Standard: False

resilience.zne

resilience.zne.amplifier

Mögliche Werte: gate_folding, gate_folding_front, gate_folding_back, pea

Standard: gate_folding

resilience.zne.extrapolated_noise_factors

Mögliche Werte: Liste von Floats

Standard: [0, *noise_factors]

resilience.zne.extrapolator

Mögliche Werte: Einer oder mehrere der folgenden: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Standard: (exponential, linear)

resilience.zne.noise_factors

Mögliche Werte: Liste von Floats; jeder Float >= 1

Standard: (1, 1.5, 2) für PEA, sonst (1, 3, 5)

resilience_level

Gibt an, wie stark Fehler abgefedert werden sollen. Höhere Stufen liefern genauere Ergebnisse, benötigen aber mehr Rechenzeit.

Mögliche Werte: 0, 1, 2

Standard: 1

resilience_level API-Dokumentation

seed_estimator

Mögliche Werte: Integer

Standard: None

seed_estimator

simulator

Optionen, die bei der Simulation eines Backends übergeben werden

simulator API-Dokumentation

simulator.basis_gates

Mögliche Werte: Liste der Basis-Gate-Namen, auf die aufgelöst werden soll

Standard: Die Menge aller vom Qiskit Aer Simulator unterstützten Basis-Gates

simulator.coupling_map

Mögliche Werte: Liste gerichteter Zwei-Qubit-Interaktionen

Standard: None, was bedeutet, dass keine Konnektivitätsbeschränkungen gelten (volle Konnektivität).

simulator.noise_model

Mögliche Werte: Qiskit Aer NoiseModel oder dessen Darstellung

Standard: None

simulator.seed_simulator

Mögliche Werte: Integer

Standard: None

twirling

Twirling-Optionen

twirling API-Dokumentation

twirling.enable_gates

Mögliche Werte: True, False

Standard: False

twirling.enable_measure

Mögliche Werte: True, False

Standard: True

twirling.num_randomizations

Mögliche Werte: auto, Integer >= 1

Standard: auto

twirling.shots_per_randomization

Mögliche Werte: auto, Integer >= 1

Standard: auto

twirling.strategy

Mögliche Werte: active, active-circuit, active-accum, all

Standard: active-accum

experimental

Experimentelle Optionen, sofern verfügbar.

Funktionskompatibilität

Aufgrund von Unterschieden im Kompilierungsprozess des Geräts können bestimmte Runtime-Funktionen nicht gleichzeitig in einem einzelnen Job verwendet werden. Wähle den entsprechenden Tab für eine Liste der Funktionen, die mit der ausgewählten Funktion nicht kompatibel sind:

Nicht kompatibel mit:

  • Gate-Folding ZNE
  • PEA
  • PEC
  • Dynamical Decoupling

Weitere Hinweise:

  • Kann mit Gate-Twirling für nicht-konditionale Gates verwendet werden.
  • Kompatibel mit fraktionalen Gates ab qiskit-ibm-runtime v0.42.0 oder neuer.

Nächste Schritte

Empfehlungen