Quantum Elements Orbit – API-Referenz
Qiskit Functions — von Partnerorganisationen entwickelte vorgefertigte Tools — abstrahieren Teile des Softwareentwicklungs-Workflows, um die Erforschung von Algorithmen und die Anwendungsentwicklung im großen Maßstab zu vereinfachen und zu beschleunigen. Klicken Sie hier, um die Anleitung zu dieser Qiskit-Funktion anzuzeigen.
Quantum Elements – Leitfaden zu den Bahnen
„Quantum Elements Orbit“ ist eine Qiskit-Funktion, die Quantenschaltungen für ein ausgewähltes „ IBM Quantum® “-Backend vorbereitet, dynamische Entkopplung (DD) in geplante Leerlauffenster einfügt und die resultierende Arbeitslast über eine „ IBM Quantum “-Primitive ausführt. Workloads können als einzelner Quantum Compute-Job ausgeführt oder in einem serverseitigen qiskit-ibm-runtime Batch auf untergeordnete Jobs aufgeteilt werden. Orbit akzeptiert Sampler- und Estimator-PUBs und gibt einen Standard zurück, PrimitiveResult wobei Orbit-spezifische Metadaten dem Ergebnis auf oberster Ebene sowie jedem Ergebnis des „Primitive Unified Bloc“ ( PUB ) beigefügt sind.
backend_name Wird weggelassen, wählt Orbit ein geeignetes, am wenigsten ausgelastetes „ IBM Quantum “-Backend aus, das für den „ IBM Quantum “-Compute-Service verfügbar ist. options Wird weggelassen oder None, verwendet Orbit seine integrierten Standardeinstellungen: Schaltkreise werden transpiliert und geplant, die Standard-DD-Strategie wird eingefügt, die Daten werden an den Dienst übermittelt und die Metadaten zur DD-Einfügung werden dem Ergebnis hinzugefügt.
Eingaben
Bei einem typischen Aufruf werden PUBs übermittelt, eine Primitive ausgewählt, optional ein Backend ausgewählt und optional Orbit-spezifische Optionen übergeben:
job = orbit.run(
primitive="sampler",
pubs=[pub, pub, pub],
backend_name="ibm_boston",
options={
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True,
},
]
},
)
result = job.result()pubs stellt die Schaltkreise und die für den Betrieb erforderlichen Eingangsdaten bereit. primitive wählt den Primitivvertrag „ IBM Quantum “ aus. backend_name Wählt das Backend „ IBM Quantum “ aus; diese Angabe kann auch weggelassen werden, damit Orbit ein Backend mit der geringsten Auslastung auswählt. options Steuert die DD-Einfügung in Orbit, die Optionen für Quantencomputing, das Verhalten der Vorschau/des Simulators sowie die Metadaten-Funktionen. Nachstehend finden Sie alle Einzelheiten zu den einzelnen Eingaben.
pubs
Typ: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
Ein oder mehrere PUBs, die mit dem ausgewählten Primitiv übereinstimmen.
- Erforderlich: Ja
- Zulässige Eingabetypen: Iterable von Objekten vom Typ „Sampler“ PUB oder Iterable von Objekten vom Typ „Estimator“ PUB
Jedes „ PUB “ muss mit dem Eingabevertrag des ausgewählten Primitivs übereinstimmen.
primitive="sampler"Für: Jedes „ PUB “ folgt der „Sampler“ PUB -Form, wie zum Beispiel(circuit, parameter_values, shots).primitive="estimator"Für: Jedes PUB folgt der Schätzerform PUB, wie beispielsweise(circuit, observables, parameter_values, precision).- Schaltkreise müssen im Standardpfad
options.transpilation_mode="optimize"keine ISA-Schaltkreise sein; Orbit transpiliert und plant sie intern.
primitive
Typ: str
Legt fest, welche „ IBM Quantum “-Primitive Orbit zur Ausführung verwendet.
- Erforderlich: Ja
- Zulässige Eingabetypen:
str
Die Primitive legt fest, welche Elemente jede „ PUB “ enthalten muss und welche Ergebnisdaten jede PubResult zurückgibt.
- Auswahlmöglichkeiten:
"sampler"/"estimator" - Verwenden Sie
"sampler"für abgetastete Bitstring-Daten. - Verwenden Sie
"estimator"für Erwartungswerte und Standardfehler.
backend_name
Typ: str or None
Standardwert: None
Name des „ IBM Quantum “-Backends, auf dem das Programm ausgeführt werden soll.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
stroderNone -
least_busy()Wird dies weggelassen oderNone, wählt Orbit ein geeignetes, nicht auf einem Simulator basierendes Backend mit aus. -
Beispiel:
"ibm_boston"
options
Typ: dict or None
Standardwert: None
Funktionsspezifische Optionen zur Steuerung des Ausführungsverhaltens von Orbit.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
dictoderNone
Die Optionen steuern die Transpilierung, das Einfügen von DD, die Optionen für Quantum Compute, die qiskit-ibm-runtime Stapelverarbeitung, den Vorschaumodus, den Simulator-Modus, den Export von Backend-Informationen sowie die Minderung von Messfehlern.
- Unbekannte Optionsschlüssel werden abgelehnt.
- Geben Sie
None,{}, oder nichtsoptionsan, um alle Standardeinstellungen zu verwenden. - Beispiel:
{
"pub_options": [
{"mode": "raw"},
{"mode": "orbit"},
{
"mode": "custom",
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"transpilation_mode": "optimize",
"mem": True
}
]
}Optionsliste
preview
Typ: bool
Standardwert: False
Ob Orbit einen DD-Einfügungsbericht zurückgibt, ohne einen Quantum-Compute-Auftrag zu übermitteln.
-
Erforderlich: Nein
-
Standardwert:
False -
Zulässige Eingabetypen:
bool -
In
Truediesem Fall wird keine QPU-Zeit verbraucht; Orbit führt lediglich eine Vorverarbeitung der Schaltkreise inpubsdurch und liefert einen Einfügebericht. -
Wenn
False(Standardwert) ein Quantum-Compute-Auftrag mit durch Orbit modifizierten Schaltkreisen übermittelt und verarbeitet wird. -
TrueWenn sowohlpreviewals auchsimulatorsind, hat der Vorschaumodus Vorrang und die Ausführung im Simulator wird ignoriert.
debug_return_circuits
Typ: bool
Standardwert: False
Ob im Vorschaumodus die vorbereitete Post-Orbit-Schaltung für jeden „ PUB “ in den Metadaten enthalten ist.
-
Erforderlich: Nein
-
Standardwert:
False -
Zulässige Eingabetypen:
bool -
Wird nur verwendet, wenn
preview=True. -
debugCircuit.circuit``TrueIn jedem „ PUB “-Bericht sind die Anzahl derdebugCircuit.usedQubits,, sowie die Anzahl der Vorgänge enthalten. Außerdem wird nach bestem BemühendebugCircuit.qasmversucht, die Schaltung zu exportieren, sofern Qiskit dazu in der Lage ist. -
Lassen Sie diese Option bei normalen Durchläufen deaktiviert, da die Datenmengen der Schaltkreise sehr groß sein können.
transpilation_mode
Typ: string
Standardwert: optimize
Wie Orbit die „ PUB “-Schaltkreise vor dem Einfügen der DD vorbereitet.
-
Erforderlich: Nein
-
Standardwert:
"optimize" -
Gültige Eingabewerte:
"optimize","prepare", oder"validate" -
optimization_level=2``"optimize"führt wiederholte Qiskit-Transpilationen durch und behält den Kandidaten mit der geringsten Zwei-Qubit-Tiefe für statische und dynamische Schaltungen bei. -
optimization_level=0``"prepare"führt die Qiskit-Vorbereitung und die ALAP-Planung durch. Wirdphysical_layoutangegeben, bildet Orbit die Schaltung zunächst auf diesen physikalischen Leiterbahnindizes ab und verwendet dabei die „trivial layout“-Methode von Qiskit. -
"validate"geht davon aus, dass die Eingangsschaltung bereits physikalisch eingerichtet ist. Orbit überprüft die Backend-Kompatibilität, soweit dies praktikabel ist, führt vor dem Einfügen in den DD keine Neuzuordnung, Umleitung, Optimierung oder Zeitplananpassung durch und ignoriertphysical_layoutdies mit einer Warnung.
physical_layout
Typ: object or null
Standardwert: None
Optionale Zuordnung von logischen zu physikalischen Qubits.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen: Objekt mit nicht-negativen ganzzahligen Schlüsseln und Werten oder
None
Beispiel: {"0": 85, "1": 89} Ordnet das logische Qubit 0 dem physikalischen Qubit 85 und das logische Qubit 1 dem physikalischen Qubit 89 zu. Python Aufrufer können ganzzahlige Schlüssel verwenden; JSON-Objektschlüssel sind Zeichenketten.
- Im
"optimize"Modus wird dies als anfänglicher Layout-Startwert übergeben, und die endgültige Zuordnung kann sich während der Optimierung/des Routings ändern. - Im
"prepare"Modus bildet Orbit den Schaltkreis anhand dieser physikalischen Drahtindizes ab und nutzt anschließend die „ level-0 “-Vorbereitung mitlayout_method="trivial". Auch bei explizitem Routing können SWAPs während der Ausführung den Quantenzustand verschieben. - Im
"validate"Modus sind die mitgelieferten Schaltungsleitungen maßgeblich, sodassphysical_layoutmit einer Warnung ignoriert wird.
num_transpilation_steps
Typ: int
Standardwert: 300
Anzahl der stochastischen Transpilations-Startwerte Orbit-Versuche in transpilation_mode="optimize".
- Erforderlich: Nein
- Standardwert:
300 - Zulässige Eingabetypen: positive ganze Zahl
mem
Typ: bool or None
Standardwert: None
Ob Orbit die Reduzierung von Messfehlern ausschließlich mittels Sampler unter Verwendung von „ M3 “ anwendet.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
booloderNone -
samplerWennTrue, wird die Minderung von Messfehlern auf Aufnahmen aus angewendet. -
Wenn
False, werden die Aufnahmen nicht nachbearbeitet. -
NoneIm Orbit-Modus wird MEM für ausgeführte Sampler-PUBs aktiviert, während im Raw- und Custom-Modus MEM übersprungen wird, sofern nicht anders konfiguriert. -
simulator=False„Explicit“Truesetztprimitive="sampler",preview=False, und voraus. -
Die Rohwerte der Sampler-Zählungen werden beibehalten, und die bereinigten Zählwerte werden den Orbit-Metadaten hinzugefügt.
-
Sollte die Fehlerbehebung während der Nachbearbeitung fehlschlagen, bewahrt Orbit das Rohergebnis auf und vermerkt den Fehlschlag der Fehlerbehebung in den Metadaten.
pub_options
Typ: list[dict] or None
Standardwert: None
Ausführungsmodi und Überschreibungen pro „ PUB “.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
list[dict]oderNone -
Ein Eintrag wird an alle PUBs gesendet; andernfalls wird ein Eintrag pro „ PUB “ übergeben.
-
{"mode": "raw"}verwendet einen einzigenoptimization_level=0Qiskit-Transpilation- und Scheduling-Durchlauf für statische oder dynamische Schaltungen und überspringt die Orbit-Optimierung, Orbit-DD, dynamisches DD und MEM. -
{"mode": "orbit"}verwendet die Orbit-Standardeinstellungen. -
transpilation_mode``{"mode": "custom"}kann,physical_layout,dd_qubits,dd_strategy,dynamic_dd_seq, undmemfür diese PUB überschreiben. -
physical_layout=NoneIm „Raw“-Modus wirdtranspilation_mode="prepare"immer mit verwendet, „Orbit DD“ wird übersprungen und globale Vorbereitungsoptionen werden ignoriert. -
Orbit und benutzerdefinierte PUBs übernehmen die globalen Einstellungen
transpilation_modeundphysical_layout, sofern sie diese nicht gemäß PUB überschreiben. -
Verwenden Sie duplizierte PUBs mit,
pub_optionsum in einem einzigen Quantum-Compute-Job die Rohdaten, die Orbit-Standardeinstellungen und eine benutzerdefinierte DD-Strategie miteinander zu vergleichen. Für eine naive CPMG-Basislinie verwenden Sie innerhalb{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}der benutzerdefinierten „ PUBdd_strategy“.
Verwenden transpilation_mode="validate" Sie für vom Anrufer vorbereitete Verbindungen bei den Orbit-fähigen PUBs:
options = {
"pub_options": [
{"mode": "raw"},
{"mode": "orbit", "transpilation_mode": "validate"},
{
"mode": "custom",
"transpilation_mode": "validate",
"dd_qubits": None,
"dd_strategy": [[{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}]],
"mem": False,
},
]
}dd_strategy
Typ: list[list[dict]]
Geordnete DD-Strategien zur Anwendung auf „ PUB “-Schaltungen.
-
Erforderlich: Nein
-
Standardwert:
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
Zulässige Eingabetypen:
list[list[dict]] -
Auswahlmöglichkeiten: Eine nicht leere äußere Liste aus nicht leeren Strategielisten.
-
Die äußere Liste verweist auf PUBs oder Schaltkreise. Wird nur eine Strategie angegeben, sendet Orbit diese an alle PUBs.
-
Jede innere Liste wird Runde für Runde auf denselben Schaltkreis angewendet.
-
dd_sequenceFür jede Runde ist erforderlich;pulse_densityder Standardwert ist0.25;dd_repsder Standardwert ist1.
dd_strategy runde Felder
Typ: str or dict or list
dd_sequenceFeld: Einzufügende Sequenz für eine DD-Runde.- Erforderlich: Ja
- Zulässige Eingabetypen:
str,dict, oder benutzerdefinierte Impulsgruppelist {"name": "ur", "variant": "8"}Auswahlmöglichkeiten:"auto", ein integrierter Sequenzname, ein Variantenwörterbuch wie z. B. oder eine benutzerdefinierte Liste von Impulsgruppen wie z. B.[[0.0], ["Y"], ["Xb", 0.5]].- Feste integrierte Namen, geordnet nach Puls-Slots: Sequenzen mit zwei Slots sind
"CPMG","pureY", und"superHahn"; Sequenzen mit vier Slots sind"XY4"und"superCPMG"; Sequenzen mit acht Slots sind"XY8"; Sequenzen mit sechzehn Slots sind"superEuler"; Sequenzen mit zwanzig Slots sind"KDD". - Parametrisierte integrierte Familien:
"CDD-n"mit einer ganzen Zahln >= 1("CDD-1"entspricht"XY4"und die Folge wächst rekursiv);"UR-n"oder"URn"mit einer geraden ganzen Zahln >= 4(zum Beispiel"UR-8"oder"URn8"); sowie"T-n"oder"Tn"mit einer geraden ganzen Zahln >= 2(zum Beispiel"T-8"oder"Tn8"). - RGA-Einbauvarianten:
"RGA-2x","RGA-4","RGA-4p","RGA-8a""RGA-8c","RGA-16a","RGA-16b",,"RGA-32a","RGA-32c","RGA-64a","RGA-64c", und"RGA-256a". - Bei den integrierten Sequenznamen wird die Groß-/Kleinschreibung nicht berücksichtigt, und Trennzeichen wie Bindestriche und Unterstriche werden ignoriert. Beispielsweise sind und
"rga8a"gleichwertig,"RGA-8a"ebenso wie"UR-n-8"und"UR8". - Benutzerdefinierte numerische Eingaben sind Phasen in Pi-Einheiten für Pi-Drehungen in der xy-Ebene.
0.0ist +X und0.5ist +Y. - Zu den benutzerdefinierten String-Aliasen gehören
"X","Y","Xb", und"Yb".
Typ: float
- Feld:
pulse_densityAnteil der jeweiligen Leerlauflücke, der für die DD-Impulse dieser Runde zur Verfügung steht. - Erforderlich: Nein
- Standardwert:
0.25 - Zulässige Eingabetypen:
floatoderint - Auswahlmöglichkeiten: Von
0.0bis schweben1.0 0.0lässt die Lücken in dieser Runde ungefüllt.1.0packt Impulse so dicht, wie es der Zeitablauf der Sequenz zulässt.
Typ: int
Standardwert: 1
- Feld:
dd_repsAnzahl der Wiederholungen der DD-Sequenz dieser Runde innerhalb jeder zulässigen Leerlaufpause. - Erforderlich: Nein
- Standardwert:
1 - Zulässige Eingabetypen:
int - Auswahlmöglichkeiten: Ganzzahl >= 1
dynamic_dd_seq
Typ: str or dict or list or None
Standardwert: XY8
DD-Sequenz, die für die dynamische Schaltkreis-Feedforward-DD-Einfügung von Orbit verwendet wird.
-
Erforderlich: Nein
-
Standardwert:
"XY8" -
Zulässige Eingabetypen:
str,dict, benutzerdefinierte ImpulsgruppelistoderNone -
Optionen: Die gleiche Sequenz wie
dd_strategy[].dd_sequence, oderNonewird gebildet, um die dynamische Feedforward-Einfügungsstufe zu deaktivieren. -
Gilt, wenn Orbit bedingte Logik oder Kontrollflüsse erkennt und die DD-Pipeline für dynamische Schaltungen verwendet.
-
Zunächst wird der normale
dd_strategyDurchlauf ausgeführt, anschließend wendet Orbit diese Sequenz auf die gekennzeichneten dynamischen Feedforward-Bereiche an.
dd_qubits
Typ: list[int] or None
Standardwert: None
Globale Standard-Zulassungsliste der Qubit-Indizes, die für die Einfügung in Orbit DD in Frage kommen.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
list[int]oderNone -
Möglichkeiten:
Noneoder eine Liste von ganzen Zahlen >= 0 -
Nonezielt ausschließlich auf aktive bzw. berührte Qubits ab. -
Eine Liste kann ausschließlich inaktiv befindliche Qubits enthalten und schließt nicht aufgeführte Qubits aus.
-
pub_options[i].dd_qubitsDieser Wert kann inorbitden Einträgen unter odercustom„ PUB “ überschrieben werden. -
"validate"Explizite Zulassungslisten dürfen nur für Orbit-fähige PUBs bereitgestellt werden, deren aufgelöster Werttranspilation_modeist, sodass der Aufrufer Eigentümer der physikalischen Qubit-Indizes ist.dd_qubitsRaw-PUBs überspringen Orbit DD und akzeptieren keine.
save_backend_info
Typ: bool
Standardwert: False
Ob Orbit die Kalibrierungseigenschaften des Backends nach der Ausführung eines Quantum-Compute-Jobs speichert.
-
Erforderlich: Nein
-
Standardwert:
False -
Zulässige Eingabetypen:
bool -
Auswahlmöglichkeiten:
True/False -
service.job(job_id).properties()Wenn diese Option aktiviert ist, fragt Orbit die Daten ab, schreibt die serialisierten Backend-Eigenschaften unter ab/dataund meldet den gespeicherten Pfad in den Orbit-Metadaten. -
Im Batch-Modus erstellt Orbit für jeden untergeordneten Job einen Snapshot und meldet diese in
backendInfo.snapshots. -
Fehler werden als Warnungen gemeldet und führen nicht dazu, dass ansonsten erfolgreiche Ergebnisse der Primitiven verworfen werden.
default_shots
Typ: int
Standardwert: 4096
Standard-Shots für Sampler-PUBs, in denen keine Shots ausdrücklich angegeben sind.
-
Erforderlich: Nein
-
Standardwert:
4096 -
Zulässige Eingabetypen:
int -
Auswahlmöglichkeiten: Ganzzahl > 0
-
Gilt nur für
primitive="sampler".
default_precision
Typ: float
Standardwert: 0.015625
Standardmäßige Zielgenauigkeit für Estimator-PUBs, bei denen die Genauigkeit nicht explizit angegeben ist.
-
Erforderlich: Nein
-
Standardwert:
0.015625 -
Zulässige Eingabetypen:
floatoderint -
Auswahlmöglichkeiten: Float > 0
-
Gilt nur für
primitive="estimator".
runtime_options
Typ: dict
IBM Quantum Primitive Optionen, die an die zugrunde liegende Primitive „ SamplerV2 “ oder „ EstimatorV2 “ weitergegeben werden.
-
Erforderlich: Nein
-
Standardwert:
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
Zulässige Eingabetypen:
dict -
Verschachtelte Optionswörterbücher werden akzeptiert, einschließlich erweiterter und experimenteller Optionen für die ausgewählte Primitive.
-
Die dynamische Entkopplung zur Laufzeit ist standardmäßig deaktiviert, sodass der DD-Einfügevorgang von Orbit der einzige DD-Durchlauf ist, sofern der Benutzer diese Funktion nicht aktiviert.
Erfahrene Sampler-Anwender können beispielsweise Felder zur Fehlersuche in dynamischen Schaltkreisen aktivieren:
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- Warnung: Man sollte diesen Wert daher mit Bedacht ändern und bestimmte Funktionen wie das Twirling manuell aktivieren, während DD weiterhin ausgeschlossen bleibt.
resilience_level
Typ: int or None
Standardwert: 0
Ausfallsicherheitsstufe der Schätzroutine.
-
Erforderlich: Nein
-
Standardwert:
0 -
Zulässige Eingabetypen:
intoderNone -
Auswahlmöglichkeiten:
0/1/2/None -
Gilt für
primitive="estimator". -
Verwenden
NoneSie, um die Option „Runtime“ nicht festzulegen. -
primitive="sampler"Wenn diese Option auf gesetzt ist, ignoriert Orbit sie und fügt eine Warnung zu den Orbit-Metadaten hinzu.
dynamical_decoupling
Typ: dict
Optionen zur dynamischen Entkopplung wurden an Quantum Compute weitergeleitet.
- Erforderlich: Nein
- Standardwert:
{"enable": false} - Zulässige Eingabetypen:
dict
enable
Typ: bool
Standardwert: False
Ob qiskit-ibm-runtime DD zusätzlich zur Orbit-DD-Einfügung aktiviert werden soll.
-
Erforderlich: Nein
-
Standardwert:
False -
Zulässige Eingabetypen:
bool -
Auswahlmöglichkeiten:
True/False -
Wenn diese Option aktiviert ist, gibt Orbit eine Warnung aus, da die gleichzeitige Anwendung von Runtime DD und Orbit DD zu unerwartetem Verhalten führen kann.
sequence_type
Typ: str or None
Standardwert: None
Optionaler DD-Sequenztyp zur Laufzeit.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
stroderNone
Wird an Quantum Compute weitergeleitet, sobald es bereitgestellt wird.
scheduling_method
Typ: str or None
Standardwert: None
Optionale Methode zur DD-Planung zur Laufzeit.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
stroderNone
Wird an Quantum Compute weitergeleitet, sobald es bereitgestellt wird.
extra_slack_distribution
Typ: str or None
Standardwert: None
Optionale „DD extra-slack“-Distribution für die Laufzeitumgebung.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
stroderNone
Wird an Quantum Compute weitergeleitet, sobald es bereitgestellt wird.
skip_reset_qubits
Typ: bool or None
Standardwert: None
Optionale Runtime-DD-Einstellung, die steuert, ob Reset-Qubits übersprungen werden.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
booloderNone
Wird an Quantum Compute weitergeleitet, sobald es bereitgestellt wird.
max_execution_time
Typ: int or None
Standardwert: None
Weiche Obergrenze für die maximale Ausführungszeit jedes „Quantum Compute“-Primitiv-Jobs.
- Erforderlich: Nein
- Standardwert:
None - Zulässige Eingabetypen:
intoderNone
Der Wert wird in Sekunden angegeben.
- Möglichkeiten:
Noneoder eine ganze Zahl > 0 - In
Nonediesem Fall wird die Standard-Laufzeit verwendet. - Im Batch-Modus wird die Obergrenze auf jeden untergeordneten Primitiv-Job angewendet.
batch
Typ: dict or None
Standardwert: None
Serverseitige qiskit-ibm-runtime Batch -Konfiguration.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
dictoderNone -
Wenn diese Angabe weggelassen wird oder
None, übermittelt Orbit alle vorbereiteten PUBs als einen einzigen „Quantum Compute“-Primitiv-Job. -
Bei der Übergabe teilt Orbit die vorbereiteten PUBs in der Reihenfolge ihrer Eingabe auf, erstellt den authentifizierten Batch innerhalb der Remote-Funktion, übermittelt alle untergeordneten Jobs, schließt den Batch und sammelt und führt anschließend die Ergebnisse der untergeordneten Jobs in der ursprünglichen Reihenfolge von „ PUB “ zusammen.
-
Der Batch-Modus ist für eigenständige Arbeitslasten vorgesehen, deren PUBs im Voraus bekannt sind, wie beispielsweise Parameterdurchläufe oder die Erstellung von Kurven. Verwenden Sie stattdessen den Sitzungsmodus, wenn spätere Eingaben von früheren Ergebnissen abhängen.
-
Der Batch-Modus erfordert die Ausführung auf einem echten „ IBM Quantum “-Backend und ist nicht kompatibel mit oder
preview=Truesimulator=True. -
Die Konfiguration muss JSON-serialisierbar sein. Erstellen Sie kein lokales
qiskit_ibm_runtime.BatchObjekt und übergeben Sie es nicht anorbit.run(...); ein vom Aufrufer erstellter Batch kann die asynchrone Ausführungsumgebung von Qiskit-Funktionen nicht steuern. -
Wenn der Wert von „ PUB “ kleiner oder gleich ist
max_pubs_per_job, erstellt Orbit einen untergeordneten Job, und der Batch bietet keine Partitionsparallelität.
max_pubs_per_job
Typ: int
Maximale Anzahl aufeinanderfolgender PUBs, die in jedem untergeordneten Job übermittelt werden dürfen.
- Erforderlich: Ja, wenn angegeben
batchwird - Zulässige Eingabetypen:
int - Auswahlmöglichkeiten: Ganzzahl > 0
Für jede N Eingabe-PUB erstellt Orbit einen untergeordneten ceil(N / max_pubs_per_job) Job. Der letzte untergeordnete Job kann weniger PUBs enthalten.
max_time
Typ: int or str or None
Standardwert: None
Optionale maximale Lebensdauer der Charge qiskit-ibm-runtime .
-
Erforderlich: Nein
-
Standardwert:
None -
Gültige Eingabetypen:
int,str, oderNone -
Eine positive ganze Zahl gibt die Sekunden an, zum Beispiel
7200. -
Eine Zeitangabe besteht aus einem oder mehreren Paaren aus einer positiven Zahl und einer Einheit, wobei
s,m,h, oder verwendet werdend, wie beispielsweise"2h"oder"1h30m". -
Eine Zahlenfolge wie ist
"7200"ungültig; verwende stattdessen7200die Ganzzahl.
Beispielsweise unterteilt der folgende Aufruf ordered_pubs in Unteraufträge mit jeweils höchstens 300 PUBs, die alle innerhalb eines Batches ausgeführt werden:
job = orbit.run(
primitive="sampler",
pubs=ordered_pubs,
backend_name="ibm_brisbane",
options={
"batch": {
"max_pubs_per_job": 300,
"max_time": "2h",
}
},
)
result = job.result()
batch_report = result.metadata["quantum_elements_orbit"]["batch"]simulator
Typ: bool
Standardwert: False
Ob Orbit die Arbeitslast auf einem lokalen Aer-Simulator statt auf einer echten QPU ausführt.
- Erforderlich: Nein
- Standardwert:
False - Zulässige Eingabetypen:
bool
Der Simulator läuft innerhalb des Funktionscontainers.
- Auswahlmöglichkeiten:
True/False TrueWird ignoriert, wennpreviewist.- Es wird ein „normal“
PrimitiveResultzurückgegeben, dem Orbit-Metadaten beigefügt sind.
simulator_noise
Typ: str
Standardwert: backend
TrueDas Rauschmodell wird verwendet, wenn simulator ist.
-
Erforderlich: Nein
-
Standardwert:
"backend" -
Zulässige Eingabetypen:
str -
Auswahlmöglichkeiten:
"backend"/"ideal" -
"backend"verwendetAerSimulator.from_backend(backend), wann immer möglich. -
"ideal"verwendet ein einfaches, rauschfreiesAerSimulator.
gate_dur
Typ: int or None
Standardwert: None
Dauer eines DD-Gates oder -Impulses.
-
Erforderlich: Nein
-
Standardwert:
None -
Zulässige Eingabetypen:
intoderNone -
Warnung: Verwenden Sie einen expliziten Wert nur für kontrollierte Tests oder wenn Sie einen kalibrierten, backend-spezifischen Grund dafür haben.
-
Der Wert wird in denselben Einheiten angegeben, die das Backend für Verzögerungen verwendet, in der Regel
dt. -
Möglichkeiten:
Noneoder eine ganze Zahl > 0 -
In
Nonediesem Fall ermittelt Orbit einen backend-abhängigen Wert ausbackend.targetunter Verwendung der längeren kalibrierten X- oder sqrt(X)-Gate-Dauer.
Ausgaben
Die Funktion gibt ein Qiskit zurück, das für PubResult jeden Eingangs PUB einen enthält PrimitiveResult . Orbit speichert die Normaldaten des ausgewählten Primitivs und fügt unter quantum_elements_orbit. Orbit-Metadaten hinzu. Im Batch-Modus werden die Ergebnisse der untergeordneten Jobs so zusammengeführt, dass die Anzahl und Reihenfolge der zurückgegebenen „ PUB “ mit den ursprünglichen Eingabe-PUBs übereinstimmen, unabhängig von den Grenzen der untergeordneten Jobs.
Typ: PrimitiveResult
Standardmäßig PrimitiveResult mit angehängten Orbit-Metadaten.
- Denn
primitive="sampler"jedesPubResult.dataenthält Sampler-Ergebnisdaten wie beispielsweise Bit-Arrays des klassischen Registers. - Denn
primitive="estimator"jedesPubResult.dataenthält Schätzungsergebnisse wie Erwartungswerte und Standardfehler. - Im Vorschaumodus ist
PubResult.datajedes Feld leer, da kein „ IBM Quantum “-Primitiv übermittelt wurde.
Metadaten der obersten Ebene
metadata["quantum_elements_orbit"]
Typ: dict[str, Any]
Aggregierter Orbit-Bericht für den gesamten Funktionsaufruf.
functionVersion
Typ: str
Orbit-Core-Version, mit der das Ergebnis erzielt wurde.
preview
Typ: bool
Ob das Ergebnis im Vorschaumodus erstellt wurde.
simulator
Typ: bool
Ob der Simulator-Modus angefordert wurde.
simulatorNoise
Typ: str
Geräuschmodus des Simulators: "backend" oder "ideal".
executionMode
Typ: str
Wert angeben, "batch" wenn Orbit die serverseitige qiskit-ibm-runtime Stapelverarbeitung verwendet.
batch
Typ: dict[str, Any]
Im Batch-Modus anzeigen. Enthält die Runtime-Batch-ID in id, sortierte IDs der untergeordneten Jobs jobIds in und sortierte Partitionsdatensätze in partitions. Jeder Partitionsdatensatz enthält index, pubStart, pubCount, und jobId.
primitive
Typ: str
Ausgewählte Primitive: "sampler" oder "estimator".
ddStrategy
Typ: list[list[dict]]
Für den Lauf wurde eine normalisierte DD-Strategie verwendet.
pubOptions
Typ: list[dict[str, Any]]
Ausführungsmodi und Überschreibungen pro „ PUB “ wurden geklärt. ddStrategy``transpilationModeJeder Eintrag enthält den Index „ PUB “, den Modus, „resolved“, physicalLayout, mem, orbitEnabled ddQubits, dynamicDdSeq,, sowie gegebenenfalls den Wert „resolved“ pro „ PUB “.
dynamicDdSeq
Typ: str or dict or list or None
Für den Lauf wurde eine DD-Sequenz mit dynamischer Schaltung und Vorwärtskopplung verwendet.
ddQubits
Typ: list[int] or None
Für den Lauf verwendete globale DD-Qubit-Standardzulassungsliste. Die Berichte unter „Per- PUB “ enthalten die endgültige Zulassungsliste für jeden „ PUB “.
runtimeOptions
Typ: dict[str, Any]
Laufzeitoptionen, die Orbit anzuwenden versuchte, darunter resilienceLevel und dynamicalDecoupling.
transpilationMode
Typ: string
Für Orbit-fähige PUBs wurde der globale Schaltungsvorbereitungsmodus angefordert.
physicalLayout
Typ: dict or None
Für Orbit-fähige PUBs wird eine globale Zuordnung vom logischen zum physikalischen Layout angefordert.
numTranspilationSteps
Typ: int
Anzahl der für die optimierte Transpilierung konfigurierten stochastischen Transpilierungs-Startwerte.
backendInfo
Typ: dict[str, Any]
Status des Exports der Backend-Kalibrierung. Enthält enabled, saved, sowie – sofern verfügbar – den Backend-Namen, die Job-ID, den Speicherpfad und Warnungen. Im Batch-Modus enthält snapshots [Datei] einen Exportbericht für jeden untergeordneten Job pro Partition.
warnings
Typ: list[str]
Warnungen auf Laufebene, wie z. B. das Überschreiben des Simulator-Modus durch die Vorschau, die gleichzeitige Aktivierung von Runtime DD und Orbit DD oder das Ignorieren von resilience_level. durch den Sampler.
pubs
Typ: list[dict[str, Any]]
Pro Eingabe- PUB ein Bericht über den Eintritt in die Umlaufbahn.
metadata["resource_usage"]
Typ: dict[str, dict[str, float]]
Ressourcenauslastung pro Phase mit Einträgen zur Hardware-Optimierung, zum Warten auf die QPU, zur QPU-Ausführung und zur Nachbearbeitung.
- Zu den Phasen gehören
RUNNING: OPTIMIZING_FOR_HARDWARE,RUNNING: WAITING_FOR_QPU,RUNNING: EXECUTING_QPU, undRUNNING: POST_PROCESSING. RUNNING: EXECUTING_QPUumfasstQPU_TIME.
Stapelausgabe
Bei einem Batch-Lauf result.metadata["quantum_elements_orbit"]["batch"] wird jeder zurückgegebene Bereich von „ PUB “ dem untergeordneten Job zugeordnet, der ihn ausgeführt hat:
result = job.result()
orbit_report = result.metadata["quantum_elements_orbit"]
batch_report = orbit_report["batch"]
print(orbit_report["executionMode"]) # "batch"
print(batch_report["id"])
print(batch_report["jobIds"])
for partition in batch_report["partitions"]:
start = partition["pubStart"]
stop = start + partition["pubCount"]
child_results = list(result)[start:stop]
print(partition["index"], partition["jobId"], start, stop)job.runtime_jobs() stellt die IDs der untergeordneten Jobs über den Qiskit-Function-Job bereit und job.runtime_sessions() stellt die Batch-ID bereit. Die Batch-Metadaten werden mit dem übermittelt PrimitiveResult. Verwenden Sie diese daher, wenn bei einer späteren Analyse PUBs den untergeordneten Jobs zugeordnet werden müssen, ohne das ursprüngliche „Function“-Job-Objekt beizubehalten.
Wenn Orbit versucht save_backend_info=True, pro untergeordnetem Job einen Snapshot zur Backend-Kalibrierung zu erstellen, und die Erfassung auf der obersten Ebene meldet backendInfo.snapshots. Wenn MEM für Sampler-PUBs aktiviert ist, verwendet Orbit den Kalibrierungs-Snapshot jedes untergeordneten Jobs für die PUBs in dieser Partition, bevor die Ergebnisse erneut zusammengeführt werden.
Der Eintrag zur Ressourcenauslastung RUNNING: EXECUTING_QPU gibt die Summe der verfügbaren QPU-Zeiten der untergeordneten Jobs an. Untergeordnete Prozesse, für die keine QPU-Zeitdaten vorliegen, können dazu führen, dass diese Messung unvollständig ist.
Metadaten zu „Per- PUB -Orbit“
Jede Datei PubResult.metadata["quantum_elements_orbit"] enthält den Einfügungsbericht für die jeweilige „ PUB “.
pubIndex
Typ: int
Index des „ PUB “ in der übermittelten Arbeitslast.
mode
Typ: str
Aufgelöster Ausführungsmodus pro „ PUB “: "raw", "orbit", oder "custom".
orbitEnabled
Typ: bool
Ob die Orbit-DD-Einfügung für die „ PUB “ aktiviert war.
transpilationMode
Typ: string
Der Modus zur Schaltungsvorbereitung für diese PUB wurde festgelegt.
physicalLayout
Typ: dict or None
Die Zuordnung vom logischen zum physikalischen Layout für dieses PUB wurde festgelegt. Im validate Modus wird dieser Wert ignoriert, wobei eine Warnung ausgegeben wird.
mem
Typ: bool or None
Einstellung zur Minderung von Messfehlern für dieses PUB festgelegt.
dynamicDdSeq
Typ: str or dict or list or None
Aufgelöste DD-Sequenz mit dynamischer Schaltung und Vorwärtskopplung für diesen PUB.
ddQubits
Typ: list[int] or None
Die Liste der zulässigen DD-Qubits für dieses PUB wurde festgelegt.
status
Typ: str
Status der DD-Einfügung für diese „ PUB “, z. B. ob DD angewendet oder übersprungen wurde.
numRounds
Typ: int
Anzahl der DD-Strategierunden, die auf die „ PUB “ angewendet wurden.
warnings
Typ: list[str]
PUB -Stufe-Warnungen im Zusammenhang mit der Einfügung von DD und der Kompatibilitätsbehandlung.
insertionSummary
Typ: dict[str, Any]
Gesamtübersicht über die DD-Einfügungen für diese „ PUB “. Umfasst den Status, die Anzahl der anfänglichen und gefüllten Lücken, die Anzahl der hinzugefügten DD-Sequenzen, die Anzahl der hinzugefügten Gatter, die Gatterdauer, die Schaltungstiefe und -größe vor und nach der Einfügung sowie Einfügungswarnungen.
perRoundSummaries
Typ: list[dict[str, Any]]
Zusammenfassungen der DD-Einfügungen nach Runden. Jeder Eintrag enthält den Rundenindex, die Sequenz, die Impulsdichte, die Wiederholungsanzahl, die Anzahl der Pausen, die Anzahl der hinzugefügten Gates, die Gate-Dauer, die Schaltungstiefe und -größe vor und nach dieser Runde sowie Warnmeldungen.
measurementErrorMitigation
Typ: dict[str, Any]
Liegt vor, wenn „Resolved MEM“ für mindestens einen „ PUB “ aktiviert ist. Gibt an, ob die „ M3 “-Abwehrmaßnahme angewendet, teilweise angewendet, übersprungen oder fehlgeschlagen ist. Per- PUB -Einträge behalten die Zahlen vor der Minderung bei und beziehen die geminderten Zahlen mit ein, wenn die Minderung erfolgreich ist.
DD fügt echte Impulse und Teilverzögerungen in geplante Leerlauffenster ein, sodass sich die gemeldete Schaltungstiefe und -größe in der Regel erhöhen. Bei der Einfügung wird die geplante Dauer des Leerlauffensters beibehalten; die Gate-Tiefe wird dabei nicht beibehalten.
Vorschau der Ausgabe
Wenn gilt options.preview``True , gibt Orbit ein reines Metadaten-Objekt zurück PrimitiveResult. Es wird kein Quantum-Compute-Auftrag übermittelt, es werden keine Sampler-Zählwerte oder Estimator-Werte ausgefüllt, und die QPU-Zeit wird als 0.0. gemeldet. Verwenden Sie den Vorschaumodus, um DD-Einfügungsberichte zu überprüfen, bevor Sie sie auf der Hardware ausführen.
Simulatorausgabe
FalseWenn options.simulator gilt True und options.preview ist, führt Orbit die Post-DD-Workload mit einem lokalen Aer-Simulator innerhalb des Funktionscontainers aus. Das Ergebnis ist nach wie vor ein normaler PrimitiveResult; Orbit-Datensatz simulator=True und der ausgewählte simulatorNoise Modus in den Metadaten der obersten Ebene.
Ergebnis der Minderung von Messfehlern
Wenn für mindestens eine „ PUB “ die Funktion „MEM“ aktiviert ist, fügt measurementErrorMitigation Orbit Metadaten hinzu. Wenn MEM erfolgreich ist, gibt die Methode des get_counts() Sampler-Registers das MEM-korrigierte Histogramm zurück. Die unbereinigten Laufzeitwerte stehen weiterhin als measurementErrorMitigation["rawCounts"]. zur Verfügung.
Zu den erfolgreichen Einträgen zur Abwehr von „Per- PUB “-Angriffen gehören:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
Bei dynamischen Schaltungen wendet Orbit MEM auf die zurückgegebene Ausgangsbitstring als Histogramm-Nachbearbeitung an. Orbit lässt keine Rückschlüsse darauf zu, ob jedes Bit aus einer Endmessung oder einer Messung in der Schaltung stammt, und es ändert weder nachträglich noch in Echtzeit bedingte Verzweigungen, bei denen unbearbeitete Messergebnisse verwendet wurden. Diese Behandlung eignet sich für Bitfolgen, die als Schaltungsausgänge gedacht sind; Benutzer sollten sie jedoch nicht als Korrektur des dynamischen Kontrollflusses interpretieren, der diese Ausgänge erzeugt hat.
Sollte die Fehlerbehebung fehlschlagen, speichert Orbit das Rohergebnis und protokolliert den Fehlerstatus sowie die Fehlermeldung in den Metadaten.
Fehlerbehandlung
Orbit löst bei schwerwiegenden Fehlern strukturierte qiskit_serverless.ServerlessError Fehler aus. Jeder Fehler enthält eine code, message, und Nutzlast details . Orbit ordnet Fehler nach Möglichkeit den bestehenden Fehlerkategorien von IBM Quantum zu; für Validierungsfehler wird der Code verwendet 1221. Orbitspezifische Fehler nutzen den für QE reservierten Code-Bereich 4700 bis 4709 nur dann, wenn kein vorhandener „ IBM Quantum “-Code besser passt. Allgemeine Hinweise zu Fehlercodes finden Sie in der Fehlercode-Übersicht unter „ IBM Quantum “.
Überprüfen Sie zunächst die Felder details „Fehler“ message und „“. Sie identifizieren das ungültige Feld, das Backend, den „ PUB “-Index oder einen Fehler im vorgelagerten Quantum Compute, sofern Orbit dies feststellen kann.
- Bei Fehlern bei der Eingabevalidierung wird der Code verwendet
1221. Dazu gehören ungültige Optionstypen, unbekannte Optionsschlüssel, leerepubs, ungültigedd_strategy, ungültigepub_optionsLängen,dd_qubitsbei denen die Auflösung anderstranspilation_modeals ist"validate", vom Aufrufer vorbereitete Verbindungen, die nicht mit dem ausgewählten Backend-Ziel kompatibel sind, ungültigephysical_layoutWerte, ein fehlender oder nicht-positiver Wertbatch.max_pubs_per_job, ein ungültiger Wertbatch.max_time, der Batch-Modus in Kombination mit dem Vorschau- oder Simulator-Modus sowie inkompatible MEM-Anforderungen wiemem=Truemitprimitive="estimator"``preview=True, odersimulator=True. 1211Bei Fehlern aufgrund nicht unterstützter Primitive wird der Code verwendet. Orbit akzeptiert nurprimitive="sampler"undprimitive="estimator".1009Bei Fehlern bei der Backend-Auswahl oder bei der Backend-Funktionalität wird der Code1007oder verwendet. Dazu gehören nicht verfügbare Backend-Namen, das Fehlen eines geeigneten, am wenigsten ausgelasteten Backends oder ein Backend, das nicht über die für die DD-Einfügung erforderlichen Zeitangaben verfügt.- Für DD-Einfügung, Basisübersetzung nach DD, Transpilierung und QASM-Roundtrip-Fehler wird der Code verwendet
1003. Diese können auftreten, wenn eine Schaltung für das ausgewählte Backend und die ausgewählte DD-Strategie nicht konsistent transpiliert, eingeplant, konvertiert oder aufgefüllt werden kann. - Bei Fehlern bei der Übermittlung von Quantum-Compute-Aufträgen wird der Code verwendet
1245; bei Aufträgen, die fehlschlagen, bevor ein Ergebnis erzeugt wird, wird der Code verwendet5203. Orbit speichert einen von einer vorgelagerten Quantum-Compute-Instanz zurückgegebenen Fehlercode, sobald ein solcher auftritt, wobei der Orbit-Fallback-Code indetails. enthalten ist. Bei Batch-Fehlerndetailskönnen auchbatch_id,failed_partition,failed_job_id,completed_job_ids, und enthalten seinremaining_job_ids. - Fehler bei der Vorbereitung vor der Übermittlung an Orbit, bei denen es sich nicht um Eingabe-, Backend- oder DD-Fehler handelt, werden mit dem QE-Code gekennzeichnet
4701. Das Felddetails.stagekennzeichnet die Grenze, beispielsweise oderruntime_servicepre_submit_preparation. - Fehler bei der Ergebnisgestaltung von Umlaufbahnen nutzen den QE-Code
4702. Diese treten auf, wenn Quantum Compute ein Ergebnis mit einer falschen „ PUB “-Form zurückgibt oder Orbit die erforderlichen Metadaten nicht anhängen kann;details.stageidentifiziertresult_iteration,result_shape,pub_metadata,result_metadata, oderbatch_result_merge. - Die QE-Codes bis
47034709sind für zukünftige Orbit-spezifische Kategorien reserviert und derzeit nicht vergeben.
Nicht schwerwiegende Fehler werden als Warnungen gemeldet, anstatt den Auftrag abzubrechen, sofern Orbit das Ergebnis sicher beibehalten kann. Warnungen auf Run-Ebene werden unter PUB angezeigt metadata["quantum_elements_orbit"]["warnings"]– Warnungen auf Level-Ebene erscheinen in jedem Bericht unter PUB. Warnereignisse, die wiederhergestellt werden können, verwenden den Code, wenn 1300 die Umgebung „ Qiskit Functions “ Warnereignisse akzeptiert. Beispiele hierfür sind: preview=True hat Vorrang vor simulator=True, qiskit-ibm-runtime DD ist neben Orbit DD aktiviert, der Sampler ignoriert oder der Export der Backend-Kalibrierung schlägt fehl runtime_options.resilience_level, obwohl das Ergebnis der Primitive ansonsten verfügbar ist.
Auch Fehler bei der Minderung von Messfehlern sind nicht schwerwiegend. Wenn die „ M3 “-Abwehr nicht angewendet werden kann, speichert Orbit das Rohergebnis des Samplers und protokolliert measurementErrorMitigation.status="failed" dies zusammen mit einer Fehlermeldung in den Orbit-Metadaten.