Vai al contenuto principale

Introduzione alle opzioni

Puoi passare opzioni alle primitive per personalizzarle in base alle tue esigenze. Questa sezione si concentra sulle opzioni delle primitive di Qiskit Runtime. Sebbene l'interfaccia del metodo run() delle primitive sia comune a tutte le implementazioni, le relative opzioni non lo sono. Consulta i riferimenti API corrispondenti per informazioni sulle opzioni di qiskit.primitives e qiskit_aer.primitives.

Panoramica​

Struttura​

Quando chiami le primitive, puoi passare le opzioni usando una classe di opzioni o un dizionario. Le opzioni più comuni, come resilience_level, si trovano al primo livello. Le altre opzioni sono raggruppate in diverse categorie, come execution. Consulta la sezione Impostare le opzioni delle primitive per tutti i dettagli.

Valori predefiniti​

Se non specifichi un valore per un'opzione, le viene assegnato il valore speciale Unset e viene utilizzato il valore predefinito del server. Pertanto, il valore predefinito sarà lo stesso indipendentemente dalla versione del codice.

Le tabelle nella sezione Riepilogo delle classi di opzioni elencano i valori predefiniti.

Impostare le opzioni​

Le opzioni possono essere definite prima che una primitiva venga costruita e passate alla primitiva, che ne creerà una copia. Ciò può essere fatto sia come dizionario annidato, sia usando le classi di opzioni. Inoltre, dopo che la primitiva è stata costruita, le sue opzioni possono essere modificate. Usa il flusso di lavoro più adatto alla tua applicazione. Consulta Specificare le opzioni per tutti i dettagli.

Riepilogo delle classi di opzioni​

  • Dynamical decoupling: Opzioni per il dynamical decoupling.
  • Environment: Opzioni dell'ambiente di esecuzione, come il livello di logging da impostare e i tag del job da aggiungere.
  • Execution: Opzioni di esecuzione delle primitive, incluso se inizializzare i qubit e il ritardo di ripetizione.
  • Resilience: Opzioni avanzate per configurare metodi di mitigazione degli errori come la mitigazione degli errori di misura, ZNE e PEC.
  • Simulator: Opzioni del simulatore, come i gate di base, il seed del simulatore e la mappa di accoppiamento. Si applica solo alla modalità di test locale.
  • Twirling: Opzioni di twirling, come se applicare il twirling ai gate a due qubit e il numero di shot da eseguire per ogni campione casuale.

Opzioni disponibili​

La tabella seguente documenta le opzioni dell'ultima versione di qiskit-ibm-runtime. Per vedere versioni precedenti delle opzioni, visita il riferimento API di qiskit-ibm-runtime e seleziona una versione precedente.

default_shots​

Il numero totale di shot da utilizzare per circuit per configurazione.

Scelte: Intero >= 0

Predefinito: None

default_shots documentazione API

default_precision​

La precisione predefinita da utilizzare per qualsiasi PUB o chiamata run() che non ne specifica una.

Scelte: Float > 0

Predefinito: 0.015625 (1 / sqrt(4096))

default_precision documentazione API

dynamical_decoupling​

Controlla le impostazioni di mitigazione degli errori tramite dynamical decoupling.

dynamical_decoupling documentazione API

dynamical_decoupling.enable​

Scelte: True, False

Predefinito: False

dynamical_decoupling.extra_slack_distribution​

Scelte: middle, edges

Predefinito: middle

dynamical_decoupling.scheduling_method​

Scelte: asap, alap Predefinito: alap

dynamical_decoupling.sequence_type​

Scelte: XX, XpXm, XY4 Predefinito: XX

dynamical_decoupling.skip_reset_qubits​

Scelte: True, False Predefinito: False

environment​

environment documentazione API

environment.callback​

Funzione callable che riceve il Job ID e il Job result.

Scelte: None

Predefinito: None

environment.job_tags​

Elenco di tag.

Scelte: None

Predefinito: None

environment.log_level​

Scelte: DEBUG, INFO, WARNING, ERROR, CRITICAL

Predefinito: WARNING

environment.private​

Scelte: True, False

Predefinito: False

execution​

execution documentazione API

execution.init_qubits​

Se reimpostare i qubit allo stato fondamentale per ogni shot.

Scelte: True, False

Predefinito: True

execution.rep_delay​

Il ritardo tra una misura e il successivo circuito quantistico.

Scelte: Valore nell'intervallo fornito da backend.rep_delay_range

Predefinito: Fornito da backend.default_rep_delay

max_execution_time​

Scelte: Numero intero di secondi nell'intervallo [1, 10800]

Predefinito: 10800 (3 ore)

max_execution_time documentazione API

resilience​

Opzioni avanzate di resilienza per ottimizzare la strategia di resilienza.

resilience documentazione API

resilience.layer_noise_learning​

Opzioni per l'apprendimento del rumore a strati.

resilience.layer_noise_learning documentazione API

resilience.layer_noise_learning.layer_pair_depths​

Scelte: list[int] di 2-10 valori nell'intervallo [0, 200]

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

resilience.layer_noise_learning.max_layers_to_learn​

Scelte: None, Intero >= 1

Predefinito: 4

resilience.layer_noise_learning.num_randomizations​

Scelte: Intero >= 1

Predefinito: 32

resilience.layer_noise_learning.shots_per_randomization​

Scelte: Intero >= 1

Predefinito: 128

resilience.layer_noise_model​

Scelte: NoiseLearnerResult, Sequence[LayerError]

Predefinito: None

resilience.measure_mitigation​

Scelte: True, False

Predefinito: True

resilience.measure_noise_learning​

Opzioni per l'apprendimento del rumore di misura.

resilience.measure_noise_learning documentazione API

resilience.measure_noise_learning.num_randomizations​

Scelte: Intero >= 1

Predefinito: 32

resilience.measure_noise_learning.shots_per_randomization​

Scelte: Intero, auto

Predefinito: auto

resilience.pec_mitigation​

Scelte: True, False

Predefinito: False

resilience.pec​

Opzioni di mitigazione tramite cancellazione probabilistica degli errori.

resilience.pec documentazione API

resilience.pec.max_overhead​

Scelte: None, Intero >= 1

Predefinito: 100

resilience.pec.noise_gain​

Scelte: auto, float nell'intervallo [0, 1]

Predefinito: auto

resilience.zne_mitigation​

Scelte: True, False

Predefinito: False

resilience.zne​

resilience.zne.amplifier​

Scelte: gate_folding, gate_folding_front, gate_folding_back, pea

Predefinito: gate_folding

resilience.zne.extrapolated_noise_factors​

Scelte: Lista di float

Predefinito: [0, *noise_factors]

resilience.zne.extrapolator​

Scelte: Uno o più tra: exponential, linear, double_exponential, polynomial_degree_(1 <= k <= 7), fallback

Predefinito: (exponential, linear)

resilience.zne.noise_factors​

Scelte: Lista di float; ogni float >= 1

Predefinito: (1, 1.5, 2) per PEA, e (1, 3, 5) altrimenti

resilience_level​

Quanta resilienza costruire contro gli errori. Livelli più alti producono risultati più accurati a scapito di tempi di elaborazione più lunghi.

Scelte: 0, 1, 2

Predefinito: 1

resilience_level documentazione API

seed_estimator​

Scelte: Intero

Predefinito: None

seed_estimator

simulator​

Opzioni da passare durante la simulazione di un backend

simulator documentazione API

simulator.basis_gates​

Scelte: Elenco di nomi di gate di base su cui eseguire l'unrolling

Predefinito: L'insieme di tutti i gate di base supportati dal simulatore Qiskit Aer

simulator.coupling_map​

Scelte: Elenco di interazioni dirette a due qubit

Predefinito: None, che implica nessun vincolo di connettività (connettività completa).

simulator.noise_model​

Scelte: Qiskit Aer NoiseModel, o la sua rappresentazione

Predefinito: None

simulator.seed_simulator​

Scelte: Intero

Predefinito: None

twirling​

Opzioni di twirling

twirling documentazione API

twirling.enable_gates​

Scelte: True, False

Predefinito: False

twirling.enable_measure​

Scelte: True, False

Predefinito: True

twirling.num_randomizations​

Scelte: auto, Intero >= 1

Predefinito: auto

twirling.shots_per_randomization​

Scelte: auto, Intero >= 1

Predefinito: auto

twirling.strategy​

Scelte: active, active-circuit, active-accum, all

Predefinito: active-accum

experimental​

Opzioni sperimentali, quando disponibili.

Compatibilità delle funzionalità​

A causa delle differenze nel processo di compilazione del dispositivo, alcune funzionalità di runtime non possono essere utilizzate insieme in un singolo job. Clicca sulla scheda appropriata per un elenco delle funzionalità incompatibili con la funzionalità selezionata:

Incompatibile con:

  • ZNE con gate folding
  • PEA
  • PEC
  • Dynamical decoupling

Altre note:

  • Può essere utilizzato con il gate twirling per gate non condizionali.
  • Compatibile con i gate frazionari quando si usa qiskit-ibm-runtime v0.42.0 o versioni successive.

Passi successivi​

Raccomandazioni