Skip to main content
IBM Quantum Platform

Riferimento all'API di Quantum Elements Orbit

  • Qiskit Functions

    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.

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 ).

Comportamento predefinito

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: str o None

  • Se omesso o None, Orbit individua un backend operativo idoneo (non simulatore) tramite least_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: dict o None

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 omettere options per 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 in pubs e 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 preview che simulator sono True, 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 di True, debugCircuit.usedQubits, e operazioni. Include inoltre la modalità "best-effort debugCircuit.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 Qiskit optimization_level=2 e 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 Qiskit optimization_level=0 e la pianificazione di ALAP. Se physical_layout viene 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 ignora physical_layout l'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 con layout_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, pertanto physical_layout viene 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: bool o None

  • Quando Truesi applica la riduzione dell'errore di misurazione ai scatti provenienti da sampler.

  • 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 True richiede primitive="sampler", preview=False, e simulator=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] o None

  • 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 Qiskit optimization_level=0 per 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ò sovrascrivere transpilation_mode, physical_layout, dd_qubits, dd_strategy, dynamic_dd_seq, e mem per quell' PUB e.

  • La modalità Raw utilizza transpilation_mode="prepare" sempre con physical_layout=None, salta Orbit DD e ignora le opzioni di preparazione globali.

  • Orbit e i PUB personalizzati ereditano le impostazioni globali transpilation_mode e physical_layout a meno che non le sovrascrivano tramite PUB.

  • Utilizza i PUB duplicati con pub_options per 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 personalizzato dd_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_density il valore predefinito è 0.25; dd_reps il valore predefinito è 1.

dd_strategy campi circolari

Tipo: str or dict or list

  • Campo: dd_sequence sequenza da inserire per un round DD.
  • Obbligatorio: sì
  • Tipi di input validi: str, dict, oppure un gruppo di impulsi personalizzato list
  • 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 intero n >= 1 ("CDD-1" è equivalente a "XY4" e la sequenza cresce in modo ricorsivo); "UR-n" oppure "URn" con intero pari n >= 4 (ad esempio, "UR-8" o "URn8"); e "T-n" oppure "Tn" con intero pari n >= 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 e 0.5 è +Y.
  • Gli alias personalizzati per le stringhe includono "X", "Y", "Xb", e "Yb".

Tipo: float

  • Campo: pulse_density Frazione di ciascun intervallo di inattività disponibile per gli impulsi DD di questo ciclo.
  • Obbligatorio: No
  • Valore predefinito: 0.25
  • Tipi di input validi: float o int
  • Opzioni: Scorrere da 0.0 a 1.0
  • 0.0 lascia degli spazi vuoti non riempiti per quel round. 1.0 raggruppa i impulsi con la massima densità consentita dalla temporizzazione della sequenza.

Tipo: int

Valore predefinito: 1

  • Campo: dd_reps Numero 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, oppure None

  • Opzioni: la stessa sequenza si presenta come dd_strategy[].dd_sequence, oppure None per 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] o None

  • Opzioni: None oppure un elenco di numeri interi >= 0

  • None si 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'interno orbit delle voci o custom PUB.

  • È possibile fornire liste di autorizzazione esplicite solo per i PUB abilitati per Orbit il cui risolto transpilation_mode sia "validate", in modo che il chiamante possieda gli indici dei qubit fisici. I PUB Raw ignorano Orbit DD e non accettano dd_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: float o int

  • 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: int o None

  • Opzioni: 0 / 1 / 2 / None

  • Si applica a primitive="estimator".

  • Utilizzare None per 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: str o None

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: str o None

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: str o None

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: bool o None

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: int o None

Il valore è specificato in secondi.

  • Opzioni: None oppure 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 PrimitiveResult con 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" utilizza AerSimulator.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: int o None

  • 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: None oppure un numero intero > 0

  • NoneQuando Orbit risolve un valore "backend-aware" da backend.target utilizzando 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 essi PubResult.data contiene i dati dei risultati del campionatore, quali gli array di bit del registro classico.
  • primitive="estimator"Infatti, ciascuno di essi PubResult.data contiene i dati relativi ai risultati degli stimatori, quali i valori attesi e gli errori standard.
  • In modalità anteprima, ogni campo è PubResult.data vuoto 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, e RUNNING: POST_PROCESSING.
  • RUNNING: EXECUTING_QPU include QPU_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.

Profondità del circuito dopo il DD

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:

  • enabled
  • method
  • status
  • register
  • rawCounts
  • quasiDistribution
  • mitigatedCounts
  • measurementMapping
  • mappingSource
  • rawCountsPreserved

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.

Errori fatali comuni

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 non pub_options valida, dd_qubits con risoluzione transpilation_mode diversa da "validate", circuiti preparati dal chiamante non compatibili con la destinazione backend selezionata, valori non physical_layout validi e richieste MEM incompatibili quali mem=True con primitive="estimator", preview=True, o simulator=True.
  • Gli errori relativi a primitive non supportate utilizzano il codice 1211. Orbit accetta solo primitive="sampler" e primitive="estimator".
  • Gli errori relativi alla selezione del backend o alle funzionalità del backend utilizzano il codice 1007 o 1009. 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 codice 5203. Orbit conserva un codice di errore di Quantum Compute a monte quando ne viene rilevato uno, con il codice di fallback di Orbit in details.
  • 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.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.