Riferimento all'API di Quantum Elements Orbit
Qiskit Functions — strumenti predefiniti creati da organizzazioni partner — astraggono alcune parti del flusso di lavoro di sviluppo software per semplificare e accelerare la scoperta di algoritmi su scala industriale e lo sviluppo di applicazioni. Clicca qui per visualizzare la guida relativa a questa funzione di Qiskit.
Guida all'orbita di Quantum Elements
Quantum Elements Orbit è una funzione di Qiskit che prepara i circuiti quantistici per un backend IBM Quantum® selezionato, inserisce il disaccoppiamento dinamico (DD) nelle finestre di inattività programmate ed esegue il carico di lavoro risultante tramite una primitiva IBM Quantum. Orbit accetta PUB di tipo Sampler ed Estimator e restituisce uno standard PrimitiveResult con metadati specifici di Orbit allegati al risultato di primo livello e a ciascun risultato di tipo Primitive Unified Bloc ( PUB ).
Se backend_name viene omesso, Orbit seleziona un backend IBM Quantum idoneo e meno trafficato disponibile per il servizio di elaborazione IBM Quantum. Se options viene omesso o None, Orbit utilizza le impostazioni predefinite integrate: transpila e pianifica i circuiti, inserisce la strategia DD predefinita, invia il tutto al servizio e allega i metadati relativi all'inserimento DD al risultato.
Input
La chiamata tipica invia i PUB, seleziona una primitiva, seleziona facoltativamente un backend e, sempre facoltativamente, passa opzioni specifiche di Orbit:
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 fornisce i circuiti e gli input primitivi necessari per l'esecuzione. primitive seleziona il contratto primitivo “ IBM Quantum ”. backend_name seleziona il backend IBM Quantum oppure può essere omesso per consentire a Orbit di scegliere il backend meno trafficato. options gestisce l'inserimento del DD in Orbit, le opzioni di Quantum Compute, il comportamento dell'anteprima/simulatore e le funzionalità relative ai metadati. Di seguito sono riportati tutti i dettagli relativi a ciascun dato di input.
pubs
Tipo: Iterable[SamplerPubLike] or Iterable[EstimatorPubLike]
Uno o più PUB corrispondenti alla primitiva selezionata.
- Obbligatorio: sì
- Tipi di input validi: iterabile di oggetti simili a Sampler PUB oppure iterabile di oggetti simili a Estimator PUB
Ogni " PUB " deve corrispondere al contratto di input della primitiva selezionata.
primitive="sampler"Per: ogni PUB segue la forma del campionatore PUB, ad esempio(circuit, parameter_values, shots).- Per
primitive="estimator": ogni PUB segue la forma Estimator PUB, come ad esempio(circuit, observables, parameter_values, precision). - I circuiti non devono necessariamente essere circuiti ISA nel percorso predefinito
options.transpilation_mode="optimize"; Orbit li traspone e li pianifica internamente.
primitive
Tipo: str
Seleziona quale primitiva IBM Quantum Orbit utilizza per l'esecuzione.
- Obbligatorio: sì
- Tipi di input validi:
str
La primitiva definisce quali elementi deve contenere ogni PUB e quali dati di risultato deve restituire ciascuna PubResult di esse.
- Opzioni:
"sampler"/"estimator" - Utilizzare
"sampler"per i dati sotto forma di stringhe di bit campionate. - Utilizzare
"estimator"per i valori attesi e gli errori standard.
backend_name
Tipo: str or None
Valore predefinito: None
Nome del backend di IBM Quantum su cui eseguire l'operazione.
-
Obbligatorio: No
-
Valore predefinito:
None -
Tipi di input validi:
stroNone -
Se omesso o
None, Orbit individua un backend operativo idoneo (non simulatore) tramiteleast_busy(). -
Esempio:
"ibm_boston"
options
Tipo: dict or None
Valore predefinito: None
Opzioni specifiche per ciascuna funzione che regolano il comportamento di esecuzione di Orbit.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
dictoNone
Le opzioni consentono di gestire la transpilazione, l'inserimento di DD, le opzioni di Quantum Compute, la modalità di anteprima, la modalità simulatore, l'esportazione delle informazioni sul backend e la mitigazione degli errori di misurazione.
- I tasti di opzione sconosciuti vengono ignorati.
- Inserire
None,{}, oppure omettereoptionsper utilizzare tutte le impostazioni predefinite. - Esempio:
{
"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
}
]
}Elenco opzioni
preview
Tipo: bool
Valore predefinito: False
Se Orbit restituisce un report di inserimento DD senza inviare un’attività di calcolo quantistico.
-
Obbligatorio: No
-
Valore predefinito:
False -
Tipi di input validi:
bool -
TrueIn questo caso, non viene impiegato alcun tempo di elaborazione della QPU; Orbit si limita a pre-elaborare i circuiti inpubse fornisce un rapporto di inserimento. -
Quando
False(valore predefinito), viene inviato ed elaborato un lavoro di calcolo quantistico con circuiti modificati da Orbit. -
Se sia
previewchesimulatorsonoTrue, la modalità anteprima ha la precedenza e l'esecuzione del simulatore viene ignorata.
debug_return_circuits
Tipo: bool
Valore predefinito: False
Se la modalità di anteprima include il circuito post-Orbit predisposto per ciascun PUB nei metadati.
-
Obbligatorio: No
-
Valore predefinito:
False -
Tipi di input validi:
bool -
Si usa solo quando
preview=True. -
debugCircuit.circuitOgni report PUB include il numero diTrue,debugCircuit.usedQubits, e operazioni. Include inoltre la modalità "best-effortdebugCircuit.qasm" quando Qiskit è in grado di esportare il circuito. -
Lasciare questa opzione disattivata durante le esecuzioni normali, poiché i carichi utili dei circuiti possono essere di grandi dimensioni.
transpilation_mode
Tipo: string
Valore predefinito: optimize
Come Orbit prepara i circuiti " PUB " prima dell'inserimento del DD.
-
Obbligatorio: No
-
Valore predefinito:
"optimize" -
Valori di input validi:
"optimize","prepare", oppure"validate" -
"optimize"esegue ripetutamente la transpilazione con Qiskitoptimization_level=2e seleziona il candidato con la profondità a due qubit più bassa sia per i circuiti statici che per quelli dinamici. -
"prepare"gestisce la preparazione di Qiskitoptimization_level=0e la pianificazione di ALAP. Sephysical_layoutviene specificato, Orbit materializza innanzitutto il circuito su tali indici di cavi fisici e utilizza il metodo di layout "trivial" di Qiskit. -
"validate"considera il circuito di ingresso come già fisicamente predisposto. Orbit verifica la compatibilità del backend ove possibile, non esegue rimappature, reindirizzamenti, ottimizzazioni né riparazioni della pianificazione prima dell'inserimento del DD, e ignoraphysical_layoutl'operazione emettendo un avviso.
physical_layout
Tipo: object or null
Valore predefinito: None
Mappatura opzionale da qubit logici a qubit fisici.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi: oggetto con chiavi e valori interi non negativi, oppure
None
Esempio: {"0": 85, "1": 89} associa il qubit logico 0 al qubit fisico 85 e il qubit logico 1 al qubit fisico 89. Python Chi effettua la chiamata può utilizzare chiavi intere; le chiavi degli oggetti JSON sono stringhe.
- In
"optimize"questa modalità, questo valore viene passato come seme iniziale del layout e la mappatura finale potrebbe subire variazioni durante l'ottimizzazione/il routing. - In
"prepare"questa modalità, Orbit materializza il circuito su questi indici di fili fisici, quindi utilizza una preparazion level-0 a conlayout_method="trivial". Gli SWAP di instradamento esplicito possono comunque spostare lo stato quantistico durante l'esecuzione. - In
"validate"modalità, i cavi del circuito forniti sono quelli di riferimento, pertantophysical_layoutviene ignorato con un avviso.
num_transpilation_steps
Tipo: int
Valore predefinito: 300
Numero di semi di transpilazione stocastica e di tentativi Orbit in transpilation_mode="optimize".
- Obbligatorio: No
- Valore predefinito:
300 - Tipi di input validi: numero intero positivo
mem
Tipo: bool or None
Valore predefinito: None
Se Orbit applica la mitigazione degli errori di misurazione esclusivamente tramite Sampler utilizzando l' M3.
-
Obbligatorio: No
-
Valore predefinito:
None -
Tipi di input validi:
booloNone -
Quando
Truesi applica la riduzione dell'errore di misurazione ai scatti provenienti dasampler. -
Quando
False, non esegue la post-elaborazione delle immagini. -
NoneQuando è attiva la modalità Orbit, la funzione MEM viene abilitata per i PUB del Sampler in esecuzione, mentre le modalità raw e custom ignorano la funzione MEM, salvo diversa configurazione. -
Explicit
Truerichiedeprimitive="sampler",preview=False, esimulator=False. -
I conteggi grezzi del campionatore vengono conservati, mentre i conteggi corretti vengono allegati ai metadati di Orbit.
-
Se la mitigazione fallisce durante la post-elaborazione, Orbit conserva il risultato grezzo e registra il fallimento della mitigazione nei metadati.
pub_options
Tipo: list[dict] or None
Valore predefinito: None
Modalità di esecuzione e impostazioni di override per " PUB ".
-
Obbligatorio: No
-
Valore predefinito:
None -
Tipi di input validi:
list[dict]oNone -
Una voce viene trasmessa a tutti i PUB; in caso contrario, inviare una voce per ogni PUB.
-
{"mode": "raw"}utilizza un unico ciclo di transpilazione e pianificazione di Qiskitoptimization_level=0per i circuiti statici o dinamici, tralasciando l'ottimizzazione Orbit, Orbit DD, DD dinamico e MEM. -
{"mode": "orbit"}utilizza le impostazioni predefinite di Orbit. -
{"mode": "custom"}può sovrascriveretranspilation_mode,physical_layout,dd_qubits,dd_strategy,dynamic_dd_seq, ememper quell' PUB e. -
La modalità Raw utilizza
transpilation_mode="prepare"sempre conphysical_layout=None, salta Orbit DD e ignora le opzioni di preparazione globali. -
Orbit e i PUB personalizzati ereditano le impostazioni globali
transpilation_modeephysical_layouta meno che non le sovrascrivano tramite PUB. -
Utilizza i PUB duplicati con
pub_optionsper confrontare i dati grezzi, le impostazioni predefinite di Orbit e una strategia DD personalizzata in un unico lavoro di calcolo quantistico. Per un modello di riferimento CPMG semplice, utilizzare{"dd_sequence": "CPMG", "pulse_density": 1.00, "dd_reps": 1}all’interno del file. PUB personalizzatodd_strategy.
Per i circuiti predisposti dal chiamante, utilizzare transpilation_mode="validate" per i PUB compatibili con Orbit:
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
Tipo: list[list[dict]]
Strategie DD ordinate da applicare ai circuiti di tipo “ PUB ”.
-
Obbligatorio: No
-
Valore predefinito:
[[{"dd_sequence": "auto", "pulse_density": 0.25, "dd_reps": 1}]] -
Tipi di input validi:
list[list[dict]] -
Scelte: lista esterna non vuota di liste di strategie non vuote.
-
L'elenco esterno indicizza i PUB o i circuiti. Se viene fornita una sola strategia, Orbit la trasmette a tutti i PUB.
-
Ogni lista interna viene applicata, ciclo dopo ciclo, allo stesso circuito.
-
Ogni round richiede
dd_sequence;pulse_densityil valore predefinito è0.25;dd_repsil valore predefinito è1.
dd_strategy campi circolari
Tipo: str or dict or list
- Campo:
dd_sequencesequenza da inserire per un round DD. - Obbligatorio: sì
- Tipi di input validi:
str,dict, oppure un gruppo di impulsi personalizzatolist - Opzioni:
"auto", un nome di sequenza predefinito, un dizionario di varianti come{"name": "ur", "variant": "8"}, oppure un elenco personalizzato di gruppi di impulsi come[[0.0], ["Y"], ["Xb", 0.5]]. - Nomi predefiniti fissi, organizzati in base agli slot di impulso: le sequenze a due slot sono
"CPMG","pureY", e"superHahn"; quelle a quattro slot sono"XY4"e"superCPMG"; quelle a otto slot sono"XY8"; quelle a sedici slot sono"superEuler"; quelle a venti slot sono"KDD". - Famiglie integrate parametrizzate:
"CDD-n"con interon >= 1("CDD-1"è equivalente a"XY4"e la sequenza cresce in modo ricorsivo);"UR-n"oppure"URn"con intero parin >= 4(ad esempio,"UR-8"o"URn8"); e"T-n"oppure"Tn"con intero parin >= 2(ad esempio,"T-8"o"Tn8"). - Varianti integrate di RGA:
"RGA-2x","RGA-4","RGA-4p","RGA-8a""RGA-8c","RGA-16a","RGA-16b",,"RGA-32a","RGA-32c","RGA-64a","RGA-64c", e"RGA-256a". - I nomi delle sequenze predefinite non distinguono tra maiuscole e minuscole e ignorano i separatori quali trattini e caratteri di sottolineatura. Ad esempio,
"RGA-8a"e"rga8a"sono equivalenti, così come"UR-n-8"e"UR8". - I valori numerici personalizzati rappresentano fasi espresse in unità di pi greco per rotazioni di pi greco nel piano xy.
0.0è +X e0.5è +Y. - Gli alias personalizzati per le stringhe includono
"X","Y","Xb", e"Yb".
Tipo: float
- Campo:
pulse_densityFrazione di ciascun intervallo di inattività disponibile per gli impulsi DD di questo ciclo. - Obbligatorio: No
- Valore predefinito:
0.25 - Tipi di input validi:
floatoint - Opzioni: Scorrere da
0.0a1.0 0.0lascia degli spazi vuoti non riempiti per quel round.1.0raggruppa i impulsi con la massima densità consentita dalla temporizzazione della sequenza.
Tipo: int
Valore predefinito: 1
- Campo:
dd_repsNumero di ripetizioni della sequenza DD di questo giro all'interno di ciascun intervallo di inattività valido. - Obbligatorio: No
- Valore predefinito:
1 - Tipi di input validi:
int - Opzioni: numero intero >= 1
dynamic_dd_seq
Tipo: str or dict or list or None
Valore predefinito: XY8
Sequenza DD utilizzata per l'inserimento DD con feedforward a circuito dinamico di Orbit.
-
Obbligatorio: No
-
Valore predefinito:
"XY8" -
listTipi di input validi:str,dict, gruppo di impulsi personalizzato, oppureNone -
Opzioni: la stessa sequenza si presenta come
dd_strategy[].dd_sequence, oppureNoneper disabilitare la fase di inserimento dinamico a feedforward. -
Si applica quando Orbit rileva una logica condizionale o un flusso di controllo e utilizza la pipeline DD a circuito dinamico.
-
Viene eseguito prima il passaggio normale
dd_strategy, poi Orbit applica questa sequenza alle regioni dinamiche di feedforward etichettate.
dd_qubits
Tipo: list[int] or None
Valore predefinito: None
Elenco globale degli indici di qubit ammessi all'inserimento nell'Orbit DD.
-
Obbligatorio: No
-
Valore predefinito:
None -
Tipi di input validi:
list[int]oNone -
Opzioni:
Noneoppure un elenco di numeri interi >= 0 -
Nonesi applica solo ai qubit attivi/toccati. -
Un elenco può includere solo i qubit in stato di riposo ed esclude i qubit non presenti nell'elenco.
-
pub_options[i].dd_qubitsÈ possibile sovrascrivere questo valore all'internoorbitdelle voci ocustomPUB. -
È possibile fornire liste di autorizzazione esplicite solo per i PUB abilitati per Orbit il cui risolto
transpilation_modesia"validate", in modo che il chiamante possieda gli indici dei qubit fisici. I PUB Raw ignorano Orbit DD e non accettanodd_qubits.
save_backend_info
Tipo: bool
Valore predefinito: False
Se Orbit salva le proprietà di calibrazione del backend dopo l'esecuzione di un processo di calcolo quantistico.
-
Obbligatorio: No
-
Valore predefinito:
False -
Tipi di input validi:
bool -
Opzioni:
True/False -
service.job(job_id).properties()Quando è abilitata, Orbit esegue le query, scrive le proprietà del backend serializzate in/datae riporta il percorso di salvataggio nei metadati di Orbit. -
Gli errori vengono segnalati come avvisi e non invalidano i risultati delle primitive che sono andate a buon fine.
default_shots
Tipo: int
Valore predefinito: 4096
Immagini predefinite utilizzate per i PUB di Sampler che non specificano esplicitamente le immagini.
-
Obbligatorio: No
-
Valore predefinito:
4096 -
Tipi di input validi:
int -
Opzioni: numero intero > 0
-
Si applica solo a
primitive="sampler".
default_precision
Tipo: float
Valore predefinito: 0.015625
Precisione predefinita utilizzata per i PUB dell'Estimator che non specificano esplicitamente la precisione.
-
Obbligatorio: No
-
Valore predefinito:
0.015625 -
Tipi di input validi:
floatoint -
Opzioni: Float > 0
-
Si applica solo a
primitive="estimator".
runtime_options
Tipo: dict
IBM Quantum opzioni primitive trasmesse alla primitiva sottostante SamplerV2 o EstimatorV2.
-
Obbligatorio: No
-
Valore predefinito:
{"resilience_level": 0, "dynamical_decoupling": {"enable": false}} -
Tipi di input validi:
dict -
Sono ammessi dizionari di opzioni annidati, comprese le opzioni avanzate e sperimentali relative alla primitiva selezionata.
-
Il disaccoppiamento dinamico in fase di esecuzione è disabilitato per impostazione predefinita, pertanto l'inserimento DD di Orbit costituisce l'unico passaggio DD, a meno che l'utente non scelga di attivarlo.
Ad esempio, gli utenti esperti di Sampler possono abilitare i campi di debug dei circuiti dinamici:
options = {
"runtime_options": {
"experimental": {
"execution": {
"scheduler_timing": True,
"stretch_values": True,
}
}
}
}- Attenzione: è quindi opportuno modificare questo valore con cautela, attivando manualmente alcune funzionalità specifiche, come il "twirling", pur continuando a escludere il DD.
resilience_level
Tipo: int or None
Valore predefinito: 0
Livello di resilienza del tempo di esecuzione dello stimatore.
-
Obbligatorio: No
-
Valore predefinito:
0 -
Tipi di input validi:
intoNone -
Opzioni:
0/1/2/None -
Si applica a
primitive="estimator". -
Utilizzare
Noneper lasciare l'opzione Runtime disattivata. -
Se impostato su
primitive="sampler", Orbit lo ignora e aggiunge un avviso ai metadati di Orbit.
dynamical_decoupling
Tipo: dict
Opzioni di disaccoppiamento dinamico trasmesse a Quantum Compute.
- Obbligatorio: No
- Valore predefinito:
{"enable": false} - Tipi di input validi:
dict
enable
Tipo: bool
Valore predefinito: False
Se abilitare il DD qiskit-ibm-runtime oltre all'inserimento Orbit DD.
-
Obbligatorio: No
-
Valore predefinito:
False -
Tipi di input validi:
bool -
Opzioni:
True/False -
Quando è abilitato, Orbit visualizza un avviso poiché l'applicazione combinata di Runtime DD e Orbit DD può causare comportamenti imprevisti.
sequence_type
Tipo: str or None
Valore predefinito: None
Tipo di sequenza DD opzionale in fase di esecuzione.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
stroNone
Inoltrato a Quantum Compute quando disponibile.
scheduling_method
Tipo: str or None
Valore predefinito: None
Metodo opzionale di pianificazione DD in fase di esecuzione.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
stroNone
Inoltrato a Quantum Compute quando disponibile.
extra_slack_distribution
Tipo: str or None
Valore predefinito: None
Distribuzione opzionale Runtime DD con margine aggiuntivo.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
stroNone
Inoltrato a Quantum Compute quando disponibile.
skip_reset_qubits
Tipo: bool or None
Valore predefinito: None
Impostazione DD di runtime opzionale che determina se i qubit di reset vengono saltati.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
booloNone
Inoltrato a Quantum Compute quando disponibile.
max_execution_time
Tipo: int or None
Valore predefinito: None
Limite flessibile al tempo massimo di esecuzione del processo Quantum Compute.
- Obbligatorio: No
- Valore predefinito:
None - Tipi di input validi:
intoNone
Il valore è specificato in secondi.
- Opzioni:
Noneoppure un numero intero > 0 NoneIn tal caso, viene utilizzato il valore predefinito di Runtime.
simulator
Tipo: bool
Valore predefinito: False
Se Orbit esegue il carico di lavoro su un simulatore Aer locale anziché su una QPU reale.
- Obbligatorio: No
- Valore predefinito:
False - Tipi di input validi:
bool
Il simulatore viene eseguito all'interno del contenitore delle funzioni.
- Opzioni:
True/False - Viene ignorato quando
previewèTrue. - Viene restituito un valore normale
PrimitiveResultcon i metadati di Orbit allegati.
simulator_noise
Tipo: str
Valore predefinito: backend
Modello di rumore utilizzato quando simulator è True.
-
Obbligatorio: No
-
Valore predefinito:
"backend" -
Tipi di input validi:
str -
Opzioni:
"backend"/"ideal" -
"backend"utilizzaAerSimulator.from_backend(backend), quando possibile. -
AerSimulator``"ideal"utilizza un file semplice e privo di rumore.
gate_dur
Tipo: int or None
Valore predefinito: None
Durata di un gate o di un impulso DD.
-
Obbligatorio: No
-
Valore predefinito:
None -
Tipi di input validi:
intoNone -
Avvertenza: utilizzare un valore esplicito solo per test controllati o quando si ha una motivazione specifica e ben definita relativa al backend.
-
Il valore utilizza le stesse unità impiegate dal backend per i ritardi, in genere
dt. -
Opzioni:
Noneoppure un numero intero > 0 -
NoneQuando Orbit risolve un valore "backend-aware" dabackend.targetutilizzando la durata più lunga calibrata del gate X o di sqrt(X).
Output
La funzione restituisce un oggetto Qiskit PrimitiveResult contenente un PubResult PUB per ogni input. Orbit conserva i dati relativi alle normali della primitiva selezionata e aggiunge i metadati di Orbit nella sezione quantum_elements_orbit.
Tipo: PrimitiveResult
Standard PrimitiveResult con metadati Orbit allegati.
primitive="sampler"Infatti, ciascuno di essiPubResult.datacontiene i dati dei risultati del campionatore, quali gli array di bit del registro classico.primitive="estimator"Infatti, ciascuno di essiPubResult.datacontiene i dati relativi ai risultati degli stimatori, quali i valori attesi e gli errori standard.- In modalità anteprima, ogni campo è
PubResult.datavuoto poiché non è stata inviata alcuna primitiva IBM Quantum.
Metadati di primo livello
metadata["quantum_elements_orbit"]
Tipo: dict[str, Any]
Report aggregato di Orbit relativo alla chiamata di funzione completa.
functionVersion
Tipo: str
Versione principale di Orbit che ha generato il risultato.
preview
Tipo: bool
Se il risultato è stato generato in modalità anteprima.
simulator
Tipo: bool
Se è stata richiesta la modalità simulatore.
simulatorNoise
Tipo: str
Modalità rumore del simulatore: "backend" o "ideal".
primitive
Tipo: str
Primitiva selezionata: "sampler" o "estimator".
ddStrategy
Tipo: list[list[dict]]
Strategia DD normalizzata utilizzata per la simulazione.
pubOptions
Tipo: list[dict[str, Any]]
Sono state risolte le modalità di esecuzione e le sostituzioni relative a " PUB ". Ogni voce include l'indice " PUB ", la modalità, il valore risolto transpilationMode, physicalLayout, mem, orbitEnabled ddQubits, dynamicDdSeq,, e, se applicabile, il valore risolto per PUB ddStrategy.
dynamicDdSeq
Tipo: str or dict or list or None
Sequenza DD con feedforward a circuito dinamico utilizzata per l'esecuzione.
ddQubits
Tipo: list[int] or None
Elenco predefinito globale dei qubit DD utilizzato per l'esecuzione. I report "Per- PUB " includono l'elenco delle autorizzazioni risolte per ciascun PUB.
runtimeOptions
Tipo: dict[str, Any]
Opzioni di esecuzione che Orbit ha tentato di applicare, tra cui resilienceLevel e dynamicalDecoupling.
transpilationMode
Tipo: string
È richiesta la modalità di preparazione del circuito globale per i PUB abilitati per Orbit.
physicalLayout
Tipo: dict or None
Si richiede una mappatura globale dal layout logico a quello fisico per i PUB abilitati per Orbit.
numTranspilationSteps
Tipo: int
Numero di semi di transpilazione stocastica configurati per una transpilazione ottimizzata.
backendInfo
Tipo: dict[str, Any]
Stato dell'esportazione della calibrazione del backend. Include enabled, saved, e, se disponibili, il nome del backend, l'ID del processo, il percorso di salvataggio e gli avvisi.
warnings
Tipo: list[str]
Avvisi relativi al livello di esecuzione, quali la modalità di anteprima che sovrascrive la modalità simulatore, l’abilitazione di Runtime DD insieme a Orbit DD o il fatto che Sampler ignori resilience_level.
pubs
Tipo: list[dict[str, Any]]
Un rapporto di inserimento in orbita per ogni PUB di input.
metadata["resource_usage"]
Tipo: dict[str, dict[str, float]]
Utilizzo delle risorse per fase, con voci relative all'ottimizzazione hardware, all'attesa della QPU, all'esecuzione sulla QPU e alla post-elaborazione.
- Le fasi comprendono
RUNNING: OPTIMIZING_FOR_HARDWARE,RUNNING: WAITING_FOR_QPU,RUNNING: EXECUTING_QPU, eRUNNING: POST_PROCESSING. RUNNING: EXECUTING_QPUincludeQPU_TIME.
Metadati dell'orbita "Per- PUB "
Ciascuno PubResult.metadata["quantum_elements_orbit"] contiene il rapporto di inserimento relativo a quel PUB e.
pubIndex
Tipo: int
Indice dell’ PUB e nel carico di lavoro inviato.
mode
Tipo: str
Modalità di esecuzione risolta per PUB : "raw", "orbit", oppure "custom".
orbitEnabled
Tipo: bool
Se l'inserimento di Orbit DD era abilitato per l' PUB.
transpilationMode
Tipo: string
Modalità di preparazione del circuito risolta per questo PUB.
physicalLayout
Tipo: dict or None
È stata definita la mappatura dal layout logico a quello fisico per questo PUB. In validate questa modalità, il valore viene ignorato e viene visualizzato un avviso.
mem
Tipo: bool or None
È stata risolta l'impostazione relativa alla mitigazione degli errori di misurazione per questo PUB.
dynamicDdSeq
Tipo: str or dict or list or None
Sequenza DD di feedforward a circuito dinamico risolta per questo PUB.
ddQubits
Tipo: list[int] or None
È stato definito l'elenco dei qubit DD consentiti per questo PUB.
status
Tipo: str
Stato dell'inserimento del DD per questo PUB, ovvero se il DD è stato applicato o saltato.
numRounds
Tipo: int
Numero di cicli della strategia DD applicati all' PUB e.
warnings
Tipo: list[str]
PUB - avvisi relativi all'inserimento di DD e alla gestione della compatibilità.
insertionSummary
Tipo: dict[str, Any]
Riepilogo generale dell'inserimento dei dati DD per questo PUB. Include lo stato, il conteggio degli spazi iniziali e di quelli riempiti, il numero di sequenze DD aggiunte, il conteggio dei gate aggiunti, la durata dei gate, la profondità e le dimensioni del circuito prima e dopo l'inserimento, nonché gli avvisi relativi all'inserimento.
perRoundSummaries
Tipo: list[dict[str, Any]]
Riepiloghi dell'inserimento dei dati DD round per round. Ogni voce include l'indice del round, la sequenza, la densità degli impulsi, le ripetizioni, il numero di intervalli, il numero di gate aggiunti, la durata dei gate, la profondità e le dimensioni del circuito prima e dopo quel round, nonché eventuali avvisi.
measurementErrorMitigation
Tipo: dict[str, Any]
È presente quando la funzione MEM è abilitata per almeno un' PUB e. Indica se la mitigazione “ M3 ” è stata applicata, applicata parzialmente, saltata o se l’applicazione non è andata a buon fine. Le voci "Per- PUB " conservano i conteggi non mitigati e includono i conteggi mitigati quando la mitigazione ha esito positivo.
DD inserisce impulsi reali e sub-delay nelle finestre di inattività programmate, pertanto la profondità e le dimensioni del circuito riportate tendono ad aumentare. L'inserimento mantiene la durata prevista della finestra di inattività; non cerca di mantenere la profondità del gate.
Visualizza in anteprima l'output
Quando è options.preview True, Orbit restituisce un oggetto contenente solo metadati PrimitiveResult. Non viene inviato alcun lavoro di calcolo quantistico, non vengono popolati né i conteggi del campionatore né i valori dello stimatore e il tempo di QPU viene riportato come 0.0. Utilizza la modalità di anteprima per verificare i report di inserimento DD prima di eseguirli sull'hardware.
Risultati del simulatore
Quando options.simulator è True e options.preview è False, Orbit esegue il carico di lavoro post-DD utilizzando un simulatore Aer locale all'interno del container della funzione. Il risultato è comunque un normale PrimitiveResult; Orbit registra simulator=True e la modalità selezionata simulatorNoise nei metadati di primo livello.
Risultati relativi alla riduzione degli errori di misurazione
Quando la funzione MEM è abilitata per almeno un PUB, Orbit associa measurementErrorMitigation i metadati. Quando MEM ha esito positivo, il metodo del get_counts() registro Sampler restituisce l'istogramma corretto da MEM. I conteggi Runtime non corretti rimangono disponibili come measurementErrorMitigation["rawCounts"].
Tra le voci di mitigazione efficaci relative a " PUB " figurano:
enabledmethodstatusregisterrawCountsquasiDistributionmitigatedCountsmeasurementMappingmappingSourcerawCountsPreserved
Per i circuiti dinamici, Orbit applica il MEM alla stringa di bit di output restituita come post-elaborazione dell'istogramma. Orbit non deduce se ogni bit provenga da una misurazione terminale o da una misurazione intermedia, e non modifica né retroattivamente né in tempo reale i rami condizionali che hanno utilizzato risultati di misurazione non mitigati. Questo trattamento è appropriato per le stringhe di bit destinate a fungere da uscite dei circuiti, ma gli utenti non dovrebbero interpretarlo come una correzione del flusso di controllo dinamico che ha generato tali uscite.
Se la mitigazione non va a buon fine, Orbit conserva il risultato grezzo e registra lo stato di errore e il messaggio di errore nei metadati.
Gestione degli errori
Orbit genera errori strutturati qiskit_serverless.ServerlessError in caso di errori irreversibili. Ogni errore include un code, message, e details payload. Orbit associa gli errori alle categorie di codici di errore esistenti di IBM Quantum, ove possibile; per gli errori di convalida viene utilizzato il codice 1221. Gli errori specifici dell'orbita utilizzano l'intervallo 4700 di codici riservato al QE da a 4709 quando nessun codice esistente dell' IBM Quantum e risulta più pertinente. Consultare il manuale di riferimento sui codici di errore IBM Quantum per indicazioni generali sui codici di errore.
Controlla innanzitutto i campi details "errore" e message "". Indicano il campo non valido, il backend, l'indice " PUB " o un errore di Quantum Compute a monte, qualora Orbit sia in grado di individuarlo.
- Gli errori di convalida degli input utilizzano il codice
1221.dd_strategy``pubsTra questi figurano tipi di opzione non validi, chiavi di opzione sconosciute, valori vuoti, non validi, lunghezza nonpub_optionsvalida,dd_qubitscon risoluzionetranspilation_modediversa da"validate", circuiti preparati dal chiamante non compatibili con la destinazione backend selezionata, valori nonphysical_layoutvalidi e richieste MEM incompatibili qualimem=Trueconprimitive="estimator",preview=True, osimulator=True. - Gli errori relativi a primitive non supportate utilizzano il codice
1211. Orbit accetta soloprimitive="sampler"eprimitive="estimator". - Gli errori relativi alla selezione del backend o alle funzionalità del backend utilizzano il codice
1007o1009. Tra questi figurano nomi di backend non disponibili, l’assenza di un backend idoneo con il minor carico di lavoro o un backend privo delle informazioni temporali necessarie per l’inserimento DD. - Per gli errori di inserimento DD e di round-trip QASM, utilizzare il codice
1003. Tali errori possono verificarsi quando un circuito non può essere transpilato, pianificato, convertito o riempito in modo coerente per il backend e la strategia DD selezionati. - Gli errori di invio su Quantum Compute utilizzano il codice
1245; i lavori che falliscono prima di produrre un risultato utilizzano il codice5203. Orbit conserva un codice di errore di Quantum Compute a monte quando ne viene rilevato uno, con il codice di fallback di Orbit indetails. - I guasti imprevisti specifici dell'orbita vengono segnalati come errori strutturati nell'intervallo riservato QE (
4700--4709) quando non è applicabile alcun codice di errore esistente dell' IBM Quantum.
Le condizioni non gravi vengono segnalate come avvisi anziché comportare il fallimento dell'operazione, qualora Orbit sia in grado di preservare il risultato in modo sicuro. Gli avvisi relativi al livello di esecuzione vengono visualizzati in metadata["quantum_elements_orbit"]["warnings"]; PUB -level gli avvisi vengono riportati in ogni report PUB. Gli eventi di avviso recuperabili utilizzano il codice 1300 quando l'ambiente Qiskit Functions accetta gli eventi di avviso. Tra gli esempi figurano: la preview=True precedenza di su simulator=True, l'attivazione di DD qiskit-ibm-runtime insieme a Orbit DD, l'ignoramento di runtime_options.resilience_levelda parte di Sampler o il fallimento dell'esportazione della calibrazione del backend mentre il risultato primitivo è comunque disponibile.
Anche i fallimenti nella mitigazione degli errori di misurazione non sono critici. Se non è possibile applicare una mitigazione di tipo “ M3 ”, Orbit conserva il risultato grezzo del Sampler e registra measurementErrorMitigation.status="failed" un messaggio di errore nei metadati di Orbit.