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
- Estimator
- Sampler
- 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.
- 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.
- 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.
- Estimator
- Sampler
default_shots
default_shotsDie Gesamtanzahl der Shots, die pro Circuit und Konfiguration verwendet werden.
Mögliche Werte: Integer >= 0
Standard: None
default_precision
default_precisionDie 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))
dynamical_decoupling
dynamical_decouplingEinstellungen zur Fehlerminderung durch Dynamical Decoupling steuern.
dynamical_decoupling API-Dokumentation
dynamical_decoupling.enable
dynamical_decoupling.enableMögliche Werte: True, False
Standard: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionMögliche Werte: middle, edges
Standard: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodMögliche Werte: asap, alap
Standard: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeMögliche Werte: XX, XpXm, XY4
Standard: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsMögliche Werte: True, False
Standard: False
environment
environmentenvironment.callback
environment.callbackAufrufbare Funktion, die die Job ID und das Job result empfängt.
Mögliche Werte: None
Standard: None
environment.job_tags
environment.job_tagsListe von Tags.
Mögliche Werte: None
Standard: None
environment.log_level
environment.log_levelMögliche Werte: DEBUG, INFO, WARNING, ERROR, CRITICAL
Standard: WARNING
environment.private
environment.privateMögliche Werte: True, False
Standard: False
execution
executionexecution.init_qubits
execution.init_qubitsGibt 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
execution.rep_delayDie 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
max_execution_timeMögliche Werte: Ganzzahl in Sekunden im Bereich [1, 10800]
Standard: 10800 (3 Stunden)
resilience
resilienceErweiterte Resilience-Optionen zur Feinabstimmung der Resilience-Strategie.
resilience.layer_noise_learning
resilience.layer_noise_learningOptionen für das Lernen von Schichtrauschen.
resilience.layer_noise_learning.layer_pair_depths
resilience.layer_noise_learning.layer_pair_depthsMö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
resilience.layer_noise_learning.max_layers_to_learnMögliche Werte: None, Integer >= 1
Standard: 4
resilience.layer_noise_learning.num_randomizations
resilience.layer_noise_learning.num_randomizationsMögliche Werte: Integer >= 1
Standard: 32
resilience.layer_noise_learning.shots_per_randomization
resilience.layer_noise_learning.shots_per_randomizationMögliche Werte: Integer >= 1
Standard: 128
resilience.layer_noise_model
resilience.layer_noise_modelMögliche Werte: NoiseLearnerResult, Sequence[LayerError]
Standard: None
resilience.measure_mitigation
resilience.measure_mitigationMögliche Werte: True, False
Standard: True
resilience.measure_noise_learning
resilience.measure_noise_learningOptionen für das Lernen von Messrauschen.
resilience.measure_noise_learning.num_randomizations
resilience.measure_noise_learning.num_randomizationsMögliche Werte: Integer >= 1
Standard: 32
resilience.measure_noise_learning.shots_per_randomization
resilience.measure_noise_learning.shots_per_randomizationMögliche Werte: Integer, auto
Standard: auto
resilience.pec_mitigation
resilience.pec_mitigationMögliche Werte: True, False
Standard: False
resilience.pec
resilience.pecOptionen für die Fehlerkorrektur mittels probabilistischer Fehlerauslöschung (PEC).
resilience.pec.max_overhead
resilience.pec.max_overheadMögliche Werte: None, Integer >= 1
Standard: 100
resilience.pec.noise_gain
resilience.pec.noise_gainMögliche Werte: auto, Float im Bereich [0, 1]
Standard: auto
resilience.zne_mitigation
resilience.zne_mitigationMögliche Werte: True, False
Standard: False
resilience.zne
resilience.zneresilience.zne.amplifier
resilience.zne.amplifierMögliche Werte: gate_folding, gate_folding_front, gate_folding_back, pea
Standard: gate_folding
resilience.zne.extrapolated_noise_factors
resilience.zne.extrapolated_noise_factorsMögliche Werte: Liste von Floats
Standard: [0, *noise_factors]
resilience.zne.extrapolator
resilience.zne.extrapolatorMögliche Werte: Einer oder mehrere der folgenden: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback
Standard: (exponential, linear)
resilience.zne.noise_factors
resilience.zne.noise_factorsMögliche Werte: Liste von Floats; jeder Float >= 1
Standard: (1, 1.5, 2) für PEA, sonst (1, 3, 5)
resilience_level
resilience_levelGibt 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
seed_estimator
seed_estimatorsimulator
simulatorOptionen, die bei der Simulation eines Backends übergeben werden
simulator.basis_gates
simulator.basis_gatesMö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
simulator.coupling_mapMögliche Werte: Liste gerichteter Zwei-Qubit-Interaktionen
Standard: None, was bedeutet, dass keine Konnektivitätsbeschränkungen gelten (volle Konnektivität).
simulator.noise_model
simulator.noise_modelMögliche Werte: Qiskit Aer NoiseModel oder dessen Darstellung
Standard: None
simulator.seed_simulator
simulator.seed_simulatorMögliche Werte: Integer
Standard: None
twirling
twirlingTwirling-Optionen
twirling.enable_gates
twirling.enable_gatesMögliche Werte: True, False
Standard: False
twirling.enable_measure
twirling.enable_measureMögliche Werte: True, False
Standard: True
twirling.num_randomizations
twirling.num_randomizationsMögliche Werte: auto, Integer >= 1
Standard: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationMögliche Werte: auto, Integer >= 1
Standard: auto
twirling.strategy
twirling.strategyMögliche Werte: active, active-circuit, active-accum, all
Standard: active-accum
experimental
experimentalExperimentelle Optionen, sofern verfügbar.
default_shots
default_shotsDie Gesamtanzahl der Shots, die pro Circuit und Konfiguration verwendet werden.
Mögliche Werte: Integer >= 0
Standard: None
dynamical_decoupling
dynamical_decouplingEinstellungen zur Fehlerminderung durch Dynamical Decoupling steuern.
dynamical_decoupling API-Dokumentation
dynamical_decoupling.enable
dynamical_decoupling.enableMögliche Werte: True, False
Standard: False
dynamical_decoupling.extra_slack_distribution
dynamical_decoupling.extra_slack_distributionMögliche Werte: middle, edges
Standard: middle
dynamical_decoupling.scheduling_method
dynamical_decoupling.scheduling_methodMögliche Werte: asap, alap
Standard: alap
dynamical_decoupling.sequence_type
dynamical_decoupling.sequence_typeMögliche Werte: XX, XpXm, XY4
Standard: XX
dynamical_decoupling.skip_reset_qubits
dynamical_decoupling.skip_reset_qubitsMögliche Werte: True, False
Standard: False
environment
environmentexecution
executionexecution.init_qubits
execution.init_qubitsGibt 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
execution.rep_delayDie 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
execution.meas_type
execution.meas_typeMögliche Werte: classified, kerneled, avg_kerneled
Standard: classified
max_execution_time
max_execution_timeMögliche Werte: Ganzzahl in Sekunden im Bereich [1, 10800]
Standard: 10800 (3 Stunden)
simulator
simulatorOptionen, die bei der Simulation eines Backends übergeben werden
simulator.basis_gates
simulator.basis_gatesMö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
simulator.coupling_mapMögliche Werte: Liste gerichteter Zwei-Qubit-Interaktionen
Standard: None, was bedeutet, dass keine Konnektivitätsbeschränkungen gelten (volle Konnektivität).
simulator.noise_model
simulator.noise_modelMögliche Werte: Qiskit Aer NoiseModel oder dessen Darstellung
Standard: None
simulator.seed_simulator
simulator.seed_simulatorMögliche Werte: Integer
Standard: None
twirling
twirlingTwirling-Optionen
twirling.enable_gates
twirling.enable_gatesMögliche Werte: True, False
Standard: False
twirling.enable_measure
twirling.enable_measureMögliche Werte: True, False
Standard: False
twirling.num_randomizations
twirling.num_randomizationsMögliche Werte: auto, Integer >= 1
Standard: auto
twirling.shots_per_randomization
twirling.shots_per_randomizationMögliche Werte: auto, Integer >= 1
Standard: auto
twirling.strategy
twirling.strategyMögliche Werte: active, active-circuit, active-accum, all
Standard: active-accum
experimental
experimentalExperimentelle 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:
- Dynamic circuits
- Dynamical decoupling
- Fractional gates
- Gate-folding ZNE
- Gate twirling
- PEA
- PEC
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-runtimev0.42.0 oder neuer.
Nicht kompatibel mit dynamischen Circuits.
Nicht kompatibel mit:
- Gate-Twirling
- PEA
- PEC
Kompatibel mit dynamischen Circuits ab qiskit-ibm-runtime v0.42.0 oder neuer.
Nicht kompatibel mit:
- Dynamischen Circuits
- PEA
- PEC
Funktioniert möglicherweise nicht mit benutzerdefinierten Gates.
Nicht kompatibel mit fraktionalen Gates oder Stretches.
Weitere Hinweise:
- Kann mit dynamischen Circuits bei nicht-konditionalen Gates verwendet werden.
- Funktioniert nicht mit Nicht-Clifford-Entanglern.
Nicht kompatibel mit:
- Dynamischen Circuits
- Fraktionalen Gates
- Gate-Folding ZNE
- PEC
Nicht kompatibel mit:
- Dynamischen Circuits
- Fraktionalen Gates
- Gate-Folding ZNE
- PEA
Nächste Schritte
- Weitere Details zu den
EstimatorV2-Methoden findest du in der Estimator API-Referenz. - Weitere Details zu den
SamplerV2-Methoden findest du in der Sampler API-Referenz. - Einzelheiten zur Konfiguration von Fehlerunterdrückung und Fehlerminderung findest du in den entsprechenden Guides.
- Lerne, wie du Optionen festlegst.